使用Python IMAP获取发件人电子邮件地址

Sou*_*man 3 python email imap

我有这个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,现在已弃用.