![](/img/trans.png)
[英]How to maintain mail conversion (reply / forward / reply to all like gmail) of email using Python pop/imap lib?
[英]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.