[英]Downloading a mail as pdf using imaplib module in python
mail.login(email_username, email_password)
mail.select('Inbox')
result, data = mail.search(None, '(FROM "abc@gmail.com" SUBJECT "Hello")' )
ids = data[0]
從收件箱中搜索特定郵件后,我想將郵件下載為 pdf。我在其他地方看過,但只能找到使用 get_payload() 方法解析郵件內容。 python有沒有像我們手動點擊gmail的打印按鈕保存郵件的模塊? 謝謝大家。
大多數 email 是 HTML,因此從這個問題中插入任何 HTML-to-PDF 轉換器都有效。
我還為您將imap_tools
換成了imaplib
,因為它有一個更簡單的 API:
import pdfkit
from imap_tools import MailBox
with MailBox('imap.gmail.com').login(email_username, email_password, 'INBOX') as mailbox:
for i, msg in enumerate(mailbox.fetch('ALL', limit=10)):
html = '<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>' + \
msg.html
pdfkit.from_string(html, str(i) + '.pdf')
筆記:
pdfkit
不處理非 ASCII ,除非你像我一樣添加 utf-8 headermsg.html or msg.text
來代替結果(這是從 2012 年開始的):
您可以嘗試使用ReportLab創建一個 pdf 文件,其中包含您從get_payload()
方法獲得的內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.