![](/img/trans.png)
[英]How to get line breaks in e-mail sent using Python's smtplib?
[英]How to decode encode e-mail subject line in python?
如何在 python 中检测编码电子邮件主题并对其进行解码? 我在 PHP mb_decode_mimeheader() 中看到代码; 但不是在 python 中映射代码。
这是我的代码:
print "=============Subject==============="
print mystr = email_message['Subject']
这是输出:
=============Subject===============
'=?UTF-8?Q?Fry=27s=2DDay=20Deal=20Alert=21=20 More=20Smokin?=^M
=?UTF-8?Q?=27=20HOT=20Summer=20Deals=20Have=20 Arrived=21=20=24299=205?=^M
=?UTF-8?Q?5=2DInch=20RCA=20Full=20HD=20 LED=20TV=20=7C=20FREE=20Kasper?=^M
=?UTF-8?Q?sky=20Internet=20 Security=202016=2A=20=26=20Much=20More?='
这是我想要获得的电子邮件显示主题(>75):Fry's-Day Deal Alert! 更多 Smokin' HOT 夏季特卖来了! 299 美元 55 英寸 RCA 全高清 LED 电视 | 免费 Kaspersky Internet Security 2016* 及更多 感谢您的帮助!
也许您可以像这样使用decode_header :
>>> from email.header import decode_header
>>> decode_header(email_message['Subject'])
[(b"Fry's-Day Deal Alert! More Smokin", 'utf-8'),
(b'^M', None),
(b"' HOT Summer Deals Have Arrived! $299 5", 'utf-8'),
(b'^M', None),
(b'5-Inch RCA Full HD LED TV | FREE Kasper', 'utf-8'),
(b'^M', None),
(b'sky Internet Security 2016* & Much More', 'utf-8')]
Python 3:遵循https://stackoverflow.com/a/65474977/13125111 :
from email.header import decode_header, make_header
def decode_mimeheader(h: str) -> str:
return str(make_header(decode_header(h)))
mystr = '''=?UTF-8?Q?Fry=27s=2DDay=20Deal=20Alert=21=20 More=20Smokin?=^M
=?UTF-8?Q?=27=20HOT=20Summer=20Deals=20Have=20 Arrived=21=20=24299=205?=^M
=?UTF-8?Q?5=2DInch=20RCA=20Full=20HD=20 LED=20TV=20=7C=20FREE=20Kasper?=^M
=?UTF-8?Q?sky=20Internet=20 Security=202016=2A=20=26=20Much=20More?='''
decoded_mystr = decode_mimeheader(mystr)
现在decoded_mystr
是"Fry's-Day Deal Alert! More Smokin ^M ' HOT Summer Deals Have Arrived! $299 5 ^M 5-Inch RCA Full HD LED TV | FREE Kasper ^M sky Internet Security 2016* & Much More"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.