繁体   English   中英

Python gmail imap-如何读取邮件并将其打印为原始标头

[英]Python gmail imap - How to read mail and print it as the original headers

我有一个脚本,可以从Gmail框中读取邮件,然后进行打印。 问题是它按以下方式打印:

'MIME版本:1.0 \\ r \\ n日期:2019年2月6日,星期三15:22:04 +0200 \\ r \\ n消息ID:CAES-+zqJ-zFh40JBvB3bbkX-Md0dFQ-dc1ECQMynj-yp8C5eg@mail.gmail.com> \\ r \\ n主题:test \\ r \\ n发件人:Ops \\ r \\ n收件人:test \\ r \\ n内容类型:multipart / alternative; boundary =“ 000000000000a56dd00581399c31” \\ r \\ n \\ r \\ n--000000000000a56dd00581399c31 \\ r \\ n内容类型:文本/纯文本; charset =“ UTF-8” \\ r \\ n \\ r \\ ngoogle.com \\ r \\ n \\ r \\ n56.36.36.36 \\ r \\ n \\ r \\ n--000000000000a56dd00581399c31 \\ r \\ n内容类型:text / html ; charset =“ UTF-8” \\ r \\ n \\ r \\ ngoogle.com

56.36.36.36 \\ r \\ n \\ r \\ n--000000000000a56dd00581399c31--'

我正在尝试将邮件打印为原始标题:

MIME版本:1.0

日期:2019年2月6日,星期三15:17:44 +0200

消息ID:

主题:测试

来自:测试

去测试

内容类型:多部分/替代; boundary =“ 00000000000020527b0581398d0e”

--00000000000020527b0581398d0e

内容类型:文本/纯文本; charset =“ UTF-8”

156.36.32.32

test.com

--00000000000020527b0581398d0e

内容类型:text / html; charset =“ UTF-8”

156.36.32.32
test.com

--00000000000020527b0581398d0e--

剧本:

import imaplib
import pprint

imap_host = 'imap.gmail.com'
imap_user = 'user@gmail.com'
imap_pass = 'password'

# connect to host using SSL
imap = imaplib.IMAP4_SSL(imap_host)

## login to server
imap.login(imap_user, imap_pass)

imap.select('Inbox')

tmp, data = imap.search(None, 'ALL')
for num in data[0].split():
        tmp, data = imap.fetch(num, '(RFC822)')
        pprint.pprint(data[0][1])
        imap.store(num, '+FLAGS', '\\Deleted')
    break

如您所见, pprint表示形式\\r\\n表示物理回车+换行符。 要将其分成几行,

message = data[0][1].split('\r\n')

为了正确处理生成的MIME消息,您可能需要将其解析为email.message并从那里获取。

但是直接的解决方法是,如果您不喜欢pprint ,请不要使用pprint

您可以使用email.message更好地表示电子邮件(包括标题)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM