IMAPClient和BODY [HEADER.FIELDS(FROM)]字段

时间:2012-11-03 21:15:57

标签: python imap imaplib imapclient

我真的开始了解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'])

2 个答案:

答案 0 :(得分:3)

不 - 你不能用IMAP请求做到这一点,如果你查看我的其他帖子,你会注意到使用parseaddr的内容,但这里又是你的例子:

>>> from email.utils import parseaddr
>>> a = 'From: First Last <first.last@domain.com>'
>>> parseaddr(a)
('First Last', 'first.last@domain.com')

答案 1 :(得分:0)

IMAPLIB不会为您解析大部分协议。它按原样从服务器返回该行。

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