HTML代码中不必要的感叹号(!)

时间:2013-09-01 23:02:48

标签: python html email html-email

我使用以下代码通过电子邮件发送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()

2 个答案:

答案 0 :(得分:7)

此处提供了一些信息:http://bugs.python.org/issue6327

  

请注意,邮件服务器每行的限制为990个字符   包含在电子邮件中。如果发送了电子邮件消息   包含超过990个字符的行,这些行将是   由额外的行结束字符细分,这可能导致   电子邮件中的损坏,尤其是HTML内容。至   防止这种情况发生,添加自己的行结束字符   电子邮件中的适当位置以确保没有行   超过990个字符。

我认为你必须将你的HTML分成几行。您可以使用textwrap.wrap方法。

答案 1 :(得分:0)

在我的html字符串之间添加'\ n',在“!”之前添加一些随机的20个字符出现了解决我的问题