簡體   English   中英

Python電子郵件標頭解析get_all()

[英]Python Email Header parsing get_all()

我正在使用Python解析郵箱文件,並在嘗試使用get_all()獲取所有“ To:”標頭時偶然發現一個奇怪的行為:

tos = message.get_all('to', [])
if tos:
    tos = getaddresses(tos)
    for to in tos:
        receiver = EmailInformant()
        receiver_email = to[1]

get_all()獲取所有“ to:”值,以逗號afaik分隔。 然后, getaddresses將單個收件人分為名稱和電子郵件值。 對於以下“ To:”標頭,它無法正常運行:

To: example@test.de <example@test.de>

在這里,電子郵件地址是作為名稱和電子郵件值提供的,但是解析器將其視為兩個單獨的“收件人:”條目,兩次運行for循環。 這是錯誤嗎?

解析電子郵件非常困難,因為存在多種不同的規范,許多行為定義不當或行為不當以及實現不遵循這些規范。 他們中的許多人在某些方面發生沖突。

我知道標准庫中的電子郵件模塊當前正在針對Python 3.3進行重寫,請參見http://www.bitdance.com/blog/ 重寫應該解決這樣的問題; 如果您具有以下選項,則當前在pypi for Python 3.2上可用: http : //pypi.python.org/pypi/email

同時,嘗試使用tos = set(getaddresses(tos))消除重復項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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