我有这个python IMAP脚本,但我的问题是,每次我想获取发件人的电子邮件地址(From)时,我总是得到发件人的名字,后跟他们的电子邮件地址:
例:
Souleiman Benhida <souleb@gmail.com>
Run Code Online (Sandbox Code Playgroud)
我怎样才能提取电子邮件地址(souleb@gmail.com)
我之前用PHP做过这个:
$headerinfo = imap_headerinfo($connection, $count)
or die("Couldn't get header for message " . $count . " : " . imap_last_error());
$from = $headerinfo->fromaddress;
Run Code Online (Sandbox Code Playgroud)
但是,在python中我只能得到全名w /地址,我怎么能单独获取地址?我目前使用这个:
typ, data = M.fetch(num, '(RFC822)')
mail = email.message_from_string(data[0][1])
headers = HeaderParser().parsestr(data[0][1])
message = parse_message(mail) #body
org = headers['From']
Run Code Online (Sandbox Code Playgroud)
谢谢!
dka*_*arp 14
再过一步,使用email.utils:
email.utils.parseaddr(address)解析地址 - 应该是某些包含地址的字段(如To或Cc)的值到其组成的真实姓名和电子邮件地址部分中.返回该信息的元组,除非解析失败,在这种情况下返回2元组('','').
注意:最初引用rfc822,现在已弃用.