python - 从原始电子邮件中读取正文
问题描述
我怎样才能阅读任何邮件的正文,它不能以这种方式正确发送
我试过这个:
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login(email_user, email_pass)
mail.select('Inbox')
type, data = mail.search(None, 'ALL')
mail_ids = data[0]
id_list = mail_ids.split()
for num in data[0].split():
typ, data = mail.fetch(num, '(RFC822)' )
raw_email = data[0][1] # converts byte literal to string removing b''
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
subject = str(email_message).split("Subject: ", 1)[1].split("\nTo:", 1)[0]
#body = str(email_message).split("body: ", 1)[1].split("\nTo:", 1)[0]
print(email_message);
解决方案
如果您只是想解析电子邮件并访问正文,请考虑使用 mail-parser。这是一个简单的邮件解析器,它将原始电子邮件作为输入并生成一个解析的对象。
import mailparser
mail = mailparser.parse_from_file(f)
mail = mailparser.parse_from_file_obj(fp)
mail = mailparser.parse_from_string(raw_mail)
mail = mailparser.parse_from_bytes(byte_mail)
如何使用:
mail.body #use this to access the body contents
mail.to
推荐阅读
- python-3.x - 如何查询一个 Django 模型(表)并从另一个模型(表)添加两个相关字段?- 注释 - 左外连接
- r - 如何根据字符向量中的元素过滤 dplyr 表?
- postman - 在 Postman 模拟响应中使用请求数据
- mapbox - 离线使用 Mapbox GL JS 2.x,使用自托管瓦片
- ajax - 为什么此 AJAX 请求失败
- ios - xamarin ios 包中不需要的可执行文件
- python - 如何使用 self 和 other 在 pygame 中让多个球随机移动?
- typescript - 对象数组中键列表的 TypeScript 类型定义
- pytorch - 如何在 GAN Pytorch 中将图像输入到生成器
- direct2d - 有没有办法从不同于 x=0 / y=0 的位置开始渲染 IDWriteTextLayout?