Python 邮件每 171 个字符插入 space
Python mail inserts space every 171 characters
我正在尝试编写一个 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 += " " * 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()
该示例应生成仅包含空格的空白电子邮件,但最终看起来像这样:
  ;
&nb sp;
& nbsp;
&nbs p;
&n bsp;
编辑:如果它很重要,我正在 运行ning Ubuntu 15.04 为 smtp 客户端使用 Postfix,并使用 python2.6.
我可以用某种方式复制它,但我的换行符每 999 个字符出现一次。 RFC 821 说一行的最大长度是 1000 个字符,包括换行符,所以这可能就是原因。
此 post 提供了一种在 python 中发送 html 电子邮件的不同方式,我相信 mime 类型 "multipart/alternative" 是正确的方式。
Sending HTML email using Python
我是 yagmail 的开发者,这是一个旨在简化电子邮件发送过程的软件包。
您可以使用以下代码:
import yagmail
yag = yagmail.SMTP('me@gmail.com', 'mypassword')
for i in range(20):
message += " " * 50
message += "<br/>"
yag.send(contents = message)
请注意,默认情况下它会发送 HTML 消息,并且它还会自动为非 HTML 浏览器添加替代部分。
此外,请注意,省略 subject
将留下一个空主题,如果没有 to
参数,它将把它发送给自己。
此外,请注意,如果您正确设置了 yagmail,您可以使用 yag.SMTP()
登录,而无需在脚本中输入用户名和密码(同时仍然是安全的)。省略密码将提示 getpass
.
添加附件就像指向本地文件一样简单,例如:
yag.send(contents = [message, 'previously a lot of whitespace', '/local/path/file.zip']
是不是很棒?感谢您允许我展示 yagmail 的一个很好的用例:)
如果您有任何功能请求、问题或想法,请通过 github 告诉我。
我正在尝试编写一个 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 += " " * 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()
该示例应生成仅包含空格的空白电子邮件,但最终看起来像这样:
  ;
&nb sp;
& nbsp;
&nbs p;
&n bsp;
编辑:如果它很重要,我正在 运行ning Ubuntu 15.04 为 smtp 客户端使用 Postfix,并使用 python2.6.
我可以用某种方式复制它,但我的换行符每 999 个字符出现一次。 RFC 821 说一行的最大长度是 1000 个字符,包括换行符,所以这可能就是原因。
此 post 提供了一种在 python 中发送 html 电子邮件的不同方式,我相信 mime 类型 "multipart/alternative" 是正确的方式。 Sending HTML email using Python
我是 yagmail 的开发者,这是一个旨在简化电子邮件发送过程的软件包。
您可以使用以下代码:
import yagmail
yag = yagmail.SMTP('me@gmail.com', 'mypassword')
for i in range(20):
message += " " * 50
message += "<br/>"
yag.send(contents = message)
请注意,默认情况下它会发送 HTML 消息,并且它还会自动为非 HTML 浏览器添加替代部分。
此外,请注意,省略 subject
将留下一个空主题,如果没有 to
参数,它将把它发送给自己。
此外,请注意,如果您正确设置了 yagmail,您可以使用 yag.SMTP()
登录,而无需在脚本中输入用户名和密码(同时仍然是安全的)。省略密码将提示 getpass
.
添加附件就像指向本地文件一样简单,例如:
yag.send(contents = [message, 'previously a lot of whitespace', '/local/path/file.zip']
是不是很棒?感谢您允许我展示 yagmail 的一个很好的用例:)
如果您有任何功能请求、问题或想法,请通过 github 告诉我。