用Python构建动态HTML电子邮件内容
我有一个python字典,我想以两列表的形式发送电子邮件,其中有一个标题和两列标题,以及填充到行中的字典的键、值对用Python构建动态HTML电子邮件内容,python,python-2.7,html-email,Python,Python 2.7,Html Email,我有一个python字典,我想以两列表的形式发送电子邮件,其中有一个标题和两列标题,以及填充到行中的字典的键、值对 <tr> <th colspan="2"> <h3><br>title</h3> </th> </tr> <th> Column 1 </th> <th> Column 2 </th> "Thn dynamic amount of <tr>
<tr>
<th colspan="2">
<h3><br>title</h3>
</th> </tr>
<th> Column 1 </th>
<th> Column 2 </th>
"Thn dynamic amount of <tr><td>%column1data%</td><td>%column2data%</td></tr>
头衔
第1栏
第2栏
%column1data%%column2data%的动态量
column1和column2数据是关联字典中的键、值对
有没有简单的方法可以做到这一点?这是一封通过cronjob发送的辅助电子邮件,在填充数据后每天发送一次
谢谢大家。
我对降价一无所知:/
p.S.S我正在使用Python 2.7基本示例:(带模板)
!/usr/bin/env python
从smtplib导入SMTP#发送电子邮件
从email.mime.text导入MIMEText#构建消息
来自jinja2导入环境#jinja2模板
模板=“”“
{{title}}
你好,世界!。
“”“#我们的HTML模板
#从呈现的模板创建文本/html消息
msg=MIMEText(
环境()。从字符串(模板)。呈现(
title='helloworld!'
),“html”
)
主题=“主题行”
发送方=”root@localhost"
收件人=”root@localhost"
msg['Subject']=主语
msg['From']=发件人
msg['To']=收件人
#通过我们自己的本地SMTP服务器发送邮件。
s=SMTP('localhost')
s、 sendmail(发件人,[收件人],msg.as_string())
s、 退出
相关文件:
我相信这些库与--SMTP for Humans一样,另一个你可以利用的工具(我的公司也在生产中使用)是Mandrill。它是Mailchimp提供的一项服务,但它提供的不是大量的电子邮件时事通讯,而是“事务性的”“电子邮件,即个人、个性化电子邮件。它对您每月发送的前10000封电子邮件是免费的,并且使您摆脱了管理私人电子邮件服务器的负担,还提供了一些非常好的WYSIWYG编辑工具、自动打开速率和点击速率跟踪,以及干净、简单的python API 我的公司正在使用的工作流是:
import mandrill
mandrill_client = mandrill.Mandrill(mandrill_api_key)
message = {
'from_email': 'gandolf@email.com',
'from_name': 'Gandolf',
'subject': 'Hello World',
'to': [
{
'email': 'recipient@email.com',
'name': 'recipient_name',
'type': 'to'
}
],
"merge_vars": [
{
"rcpt": "recipient.email@example.com",
"vars": [
{
"name": "merge1",
"content": "merge1 content"
}
]
}
]
}
result = mandrill_client.messages.send_template(template_name="Your Template", message=message)
您发送的电子邮件中是否有其他“静态”数据?换句话说,你会从模板工具中受益吗?现在电子邮件相当简单,但是,将来它可能包含一些数据分析组件,如图表,因此我欢迎任何可以提供这些功能的轻型框架。但是现在做一些简单的事情至少可以让事情顺利进行。Jinja是解决问题的方法。我能得到一个粗略的例子来说明我想做什么吗?我对python还不太熟悉general@gandolf完成;请参阅下面我的回复,以获得一个完整的工作示例,您可以根据需要进行修改。嗨,詹姆斯,谢谢您提供这个示例。在我想添加动态内容的特殊情况下,像“for key,value In dic.items():”这样的东西会出现在模板中添加行吗?好的,我知道了,谢谢James,我会把它标记为答案,因为它确实让我找到了我要找的答案。@gandolf没问题!很高兴它帮助了您:)对于其他人来说,相关文档下的smeplib应该是smtplib。大梭伦
import mandrill
mandrill_client = mandrill.Mandrill(mandrill_api_key)
message = {
'from_email': 'gandolf@email.com',
'from_name': 'Gandolf',
'subject': 'Hello World',
'to': [
{
'email': 'recipient@email.com',
'name': 'recipient_name',
'type': 'to'
}
],
"merge_vars": [
{
"rcpt": "recipient.email@example.com",
"vars": [
{
"name": "merge1",
"content": "merge1 content"
}
]
}
]
}
result = mandrill_client.messages.send_template(template_name="Your Template", message=message)