首页 > 解决方案 > 通过电子邮件发送文本文件的内容

问题描述

我编写了一个脚本,将活动和非活动 wifi 设备列表打印到文本文件中。我想通过电子邮件发送这个文本文件的内容。但是,消息是空的。

import smtplib
from email.mime.text import MIMEText

file = open('list_of_wifi_devices.txt')
file = file.read()

sender = ...
receiver = ...
password = ...

smtpObj = smtplib.SMTP('smtp.gmail.com', 587)
smtpObj.ehlo()
smtpObj.starttls()
smtpObj.login(sender, password)
smtpObj.sendmail(sender, receiver, file)
smtpObj.quit()

标签: python

解决方案


问题是您对电子邮件的构造不正确。具体来说,msg参数不能简单地是电子邮件的正文。它应该是一个 RFC822 消息头,后跟消息正文。

要跳过包含标题,您可以提供一个空行,因此建议尝试\n在消息开头插入。

更好的解决方案可能是使用 Python 中的email 包来正确构造消息。

感谢这个答案提供了很多帮助。


推荐阅读