![](/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.