Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 仅从邮件头接收电子邮件值_Python_Imaplib - Fatal编程技术网

Python 仅从邮件头接收电子邮件值

Python 仅从邮件头接收电子邮件值,python,imaplib,Python,Imaplib,我正在解析电子邮件标题,需要使用其中的一些值 这将是我正在使用的代码的一部分,在本例中,用于最后收到的电子邮件: result, data = mail.fetch(mails_list[-1], "(RFC822)") raw_email = data[0][1] contenido = email.message_from_bytes(raw_email) print (contenido['From']) 我得到的值如下: Google <no-reply@ac

我正在解析电子邮件标题,需要使用其中的一些值

这将是我正在使用的代码的一部分,在本例中,用于最后收到的电子邮件:

result, data = mail.fetch(mails_list[-1], "(RFC822)")
raw_email = data[0][1]
contenido = email.message_from_bytes(raw_email)
print (contenido['From'])
我得到的值如下:

Google <no-reply@accounts.google.com>
=?UTF-8?Q?ihniwid_ingenier=C3=ADa?= <whatever@gmail.com>
Google
=?UTF-8?Q?ihniwid_ingenier=C3=ADa?=
我不知道如何将它们作为值接收,在本例中是电子邮件,没有前面的“名称”和“”包装

关于第二行的“=?UTF-8?Q?”符号,我不知道为什么会发生这种情况,但在这种情况下,每一个非英语字母,比如“í”,都会发生这种情况。我一直在搜索文本格式,我检查了我知道的每一个方面都设置了UTF-8,windows配置,环境变量


感谢您的帮助。

UTF-8业务是正确的;指示非ASCII字符的编码。您可以应用一个正则表达式来提取“”之间的内容。如果您不想使用正则表达式,您可以简单地分别在字符串中查找这两个字符,然后使用Python的字符串切片根据这两个位置提取名称(
str[p1+1:p2]
),我一直这样做是为了删除“”,处理字符串,但这似乎是一个“便宜”的方法解决方案,因为我认为有一种方法可以提取标题的“值”部分,但我想我错了。无论如何,谢谢大家。Python的较新版本有一个class.headerregistry.AddressHeader类,可用于解析(甚至可能已经使用)这种类型的头。它有一个
地址
对象,其中应该包括地址。电子邮件API非常丰富,但有时查找新信息有点棘手,因为它在过去几年中进行了大量扩展,许多示例都是针对Python的旧版本的,而Python的解析功能要差得多。