簡體   English   中英

如何在python中解碼編碼電子郵件主題行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM