Python邮件每171个字符插入一次空格

Pro*_*man 7 python email whitespace

我正在尝试编写一个python脚本来发送一个使用HTML格式的电子邮件,并涉及许多不间断的空格.但是,当我运行它时,一些字符串被每171个字符出现的空格打断,这个例子可以看出:

#!/usr/bin/env python
import smtplib
import socket
from email.mime.text import MIMEText

emails = ["my@email.com"]
sender = "test@{0}".format(socket.gethostname())

message = "<html><head></head><body>"
for i in range(20):
        message += "&nbsp;" * 50
        message += "<br/>"
message += "</body>"
message = MIMEText(message, "html")
message["Subject"] = "Test"
message["From"] = sender
message["To"] = ", ".join(emails)
mailer = smtplib.SMTP("localhost")
mailer.sendmail(sender, emails, message.as_string())
mailer.quit()
Run Code Online (Sandbox Code Playgroud)

该示例应该生成一个仅包含空格的空白电子邮件,但最终看起来像这样:

         &nbsp ;                                    


                       &nb sp;                      


                                     & nbsp;        






             &nbs p;                                


                           &n bsp;          
Run Code Online (Sandbox Code Playgroud)

编辑:如果它很重要,我正在运行带有Postfix的Ubuntu 15.04用于smtp客户端,并使用python2.6.

小智 5

我可以用某种方式复制它,但我的换行符每999个字符.RFC 821表示一行的最大长度为1000个字符,包括换行符,这可能就是原因.

这篇文章提供了一种在python中发送html电子邮件的不同方式,我相信mime类型"multipart/alternative"是正确的方法. 使用Python发送HTML电子邮件

  • 这就是问题所在,所以在每一个之后添加一个\n来使这个问题消失是微不足道的. (3认同)