![](/img/trans.png)
[英]Python smtplib send_message() failing, returning AttributeError: 'str' object has no attribute '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.