我正在尝试使用python发送电子邮件。我正在尝试以HTML格式格式化我的电子邮件。以下是代码: -
sender = 'dummy@dummy.com'
receivers = ['abc@abc.com']
message = message = """From: team <team@temp.com>
To: To Person <me@me.com>
MIME-Version: 1.0
Content-type: text/html
Subject: Daily Report
<html>
<table>
Report
<% for i in rows: %>
<tr>
<td> <%= rows[0][1] %>
</tr>
<% end %>
</table>
<b>This is HTML message.</b>
<h1>This is headline.</h1>
</html>
"""
smtpObj = smtplib.SMTP('SMTP mailer')
smtpObj.sendmail(sender, receivers, message)
我是根据某些条件从数据库中提取行并将其存储在&#34;行&#34;变量。我试图根据返回的行数循环HTML表创建。
每当我发送电子邮件时,它都不会识别我写的for循环。 它确实标识了&#34;这是HTML消息&#34;大胆的形式和&#34;这是标题&#34; H1格式
我做错了什么?
答案 0 :(得分:2)
您想使用template engine来创建HTML。对于Python,您使用的消息字符串只是一个字符串,没有别的。 `&lt;%for i in rows:%&gt;'就是这个文本,Python不会对它进行任何处理。
根据RFC2822
,您的邮件消息格式不正确为了使用Python发送HTML格式的消息,我建议您使用email.mime
中的功能,c.f。 How to send an email with style in Python3?