我有一个问题,当我在下面的python中使用“sendmail”函数发送电子邮件时,我的HTML代码@ http://pastie.org/8289379中出现了BANG(!),我已经阅读了HTML电子邮件解析中的@感叹号帖子是将它更改为base-64编码数据或在我的长行html代码上添加\ r \ n,我不知道如何将HTML代码更改为base-64编码?有没有人有任何其他想法摆脱这个砰(!)?
msg = MIMEText("%s" % body, 'html')
msg['Content-Type'] = "text/html; charset=ascii"
s = SMTP('localhost',25)
s.sendmail('userid@company.com', ['userid2@company.com'],msg=msg.as_string()
答案 0 :(得分:2)
此处提供了一些信息:http://bugs.python.org/issue6327
请注意,邮件服务器每行的限制为990个字符 包含在电子邮件中。如果发送了电子邮件消息 包含超过990个字符的行,这些行将是 由额外的行结束字符细分,这可能导致 电子邮件中的损坏,尤其是HTML内容。至 防止这种情况发生,添加自己的行结束字符 电子邮件中的适当位置以确保没有行 超过990个字符。
我认为你必须将你的HTML分成几行。您可以使用textwrap.wrap方法。