繁体   English   中英

并非所有MIME文本都显示在邮件服务器上

[英]Not all MIME text showed on mail server

我使用Python email.mime lib编写电子邮件,并创建了两个MIMEText对象,然后将它们作为文本(而不是作为附件)附加到Message上,结果如下所示,我得到了MIME文档,如您所见是两个文本对象,一个是普通类型,另一个是html类型,我的问题是我只能在某些邮件客户端中看到后一个文本对象(这里是html),而在某些邮件客户端中却可以看到两个文本对象其他邮件客户端(例如live.com),这是什么原因引起的?

Content-Type: multipart/mixed; boundary="===============0542266593=="
MIME-Version: 1.0
FROM: john.smith@NYU.com
TO: john.smith@live.com, john.smith@gmail.com
SUBJECT: =?utf-8?q?A_Greeting_From_Postman?=

--===============0542266593==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

SGkhCkhvdyBhcmUgeW91PwpIZXJlIGlzIHRoZSBsaW5rIHlvdSB3YW50ZWQ6Cmh0dHA6Ly93d3cu
cHl0aG9uLm9yZw==

--===============0542266593==
Content-Type: text/html; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

ICAgICAgICA8aHRtbD4KICAgICAgICAgIDxoZWFkPjwvaGVhZD4KICAgICAgICAgIDxib2R5Pgog
ICAgICAgICAgICA8cD5IaSE8YnI+CiAgICAgICAgICAgICAgIEhvdyBhcmUgeW91Pzxicj4KICAg
ICAgICAgICAgICAgSGVyZSBpcyB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5weXRob24ub3JnIj5s
aW5rPC9hPiB5b3Ugd2FudGVkLgogICAgICAgICAgICA8L3A+CiAgICAgICAgICA8L2JvZHk+CiAg
ICAgICAgPC9odG1sPgogICAgICAgIA==

--===============0542266593==--

您已将“ multipart / mixed”指定为mime类型。 如果只希望显示一项,请指定“多部分/替代”,如下所示:

email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.encoders import encode_base64

# Note: 'alternative' means only display one of the items. 
msg = MIMEMultipart('alternative')
msg['Subject'] = "Hello"
msg['From'] = 'me@example.com'
msg['To'] = 'you@example.com'

msg.attach(MIMEText('Hello!', 'plain'))
msg.attach(MIMEText('<b>Hello!</b>', 'html'))

# Not required, but you had it in your example, so I kept it.
for i in msg.get_payload():
    encode_base64(i)

print msg.as_string()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM