1

我真的开始掌握 IMAPClient 的窍门了。代码:'BODY[HEADER.FIELDS (FROM)]'返回

From: First Last <first.last@domain.com>

我真的很希望它返回这样的电子邮件地址:

first.last@lbox.com

我需要先将它传递给一个变量并修剪它还是fetch我可以使用另一个修饰符?

response = server.fetch(messages, ['FLAGS', 'RFC822.SIZE', 'BODY[HEADER.FIELDS (FROM)]'])
for msgid, data in response.iteritems():
    print '   ID %d: %d bytes, From: %s flags=%s' % (msgid,
                                            data['RFC822.SIZE'],
                                            data['BODY[HEADER.FIELDS (FROM)]'],
                                            data['FLAGS'])
4

2 回答 2

3

不 - 你不能用 IMAP 请求来做到这一点,如果你看我的另一篇文章,你会注意到使用 的东西parseaddr,但这里又是你的例子:

>>> from email.utils import parseaddr
>>> a = 'From: First Last <first.last@domain.com>'
>>> parseaddr(a)
('First Last', 'first.last@domain.com')
于 2012-11-03T21:19:37.623 回答
0

IMAPLIB 不会为您解析很多协议。它按原样从服务器返回线路。

您可以并且应该使用email库中的解析器来帮助您。

于 2012-11-03T21:20:29.870 回答