我使用以下代码通过电子邮件发送Outlook中文本文件“gerrit.txt”@ http://pastie.org/8289257的内容, 然而,当我查看outlook中电子邮件的源代码(@ http://pastie.org/8289379)发送电子邮件后,我看到了不必要的 代码中的感叹号(!)在搞乱输出,任何人都可以提供输入,为什么会这样,以及如何避免这种情况?
from email.mime.text import MIMEText
from smtplib import SMTP
def email (body,subject):
msg = MIMEText("%s" % body, 'html')
msg['Content-Type'] = "text/html; charset=UTF8"
msg['Subject'] = subject
s = SMTP('localhost',25)
s.sendmail('userid@company.com', ['userid2@company.com'],msg=msg.as_string())
def main ():
# open gerrit.txt and read the content into body
with open('gerrit.txt', 'r') as f:
body = f.read()
subject = "test email"
email(body,subject)
print "Done"
if __name__ == '__main__':
main()
答案 0 :(得分:7)
此处提供了一些信息:http://bugs.python.org/issue6327
请注意,邮件服务器每行的限制为990个字符 包含在电子邮件中。如果发送了电子邮件消息 包含超过990个字符的行,这些行将是 由额外的行结束字符细分,这可能导致 电子邮件中的损坏,尤其是HTML内容。至 防止这种情况发生,添加自己的行结束字符 电子邮件中的适当位置以确保没有行 超过990个字符。
我认为你必须将你的HTML分成几行。您可以使用textwrap.wrap方法。
答案 1 :(得分:0)
在我的html字符串之间添加'\ n',在“!”之前添加一些随机的20个字符出现了解决我的问题