我正在尝试设置自动发送电子邮件脚本。我正在使用电子邮件模块和EmailMessage
模块中的email.message
对象,并使用smtplib
模块发送电子邮件。我希望能够将.pdf文件附加到电子邮件中,但add_attachment()
EmailMessage()
方法的文档不是很有用,我甚至不确定我应该使用它。
到目前为止,我已删除了无关的信息:
import time
import smtplib
from email.message import EmailMessage
FROM = 'my email'
s = smtplib.SMTP('smtp.gmail.com', 587)
s.ehlo()
s.starttls()
s.login('my email', 'password')
for line in open('to.csv'):
line = line.strip()
fields = line.split(',')
subject = 'subject'
email = EmailMessage()
email['Subject'] = 'subject'
email['From'] = FROM
email['To'] = 'to email'
s.send_message(email)
print('Sent to {0}'.format(fields[TO]))
time.sleep(5)
s.quit()
如何附加pdf文件?我搜索并看到一个答案是使用MIMEText对象添加附件,但它似乎不起作用pdf。
答案 0 :(得分:3)
等待答案...但这是我要做的事情
email = EmailMessage()
email['Subject'] = 'subject'
email['From'] = FROM
email['To'] = 'to email'
with open('example.pdf', 'rb') as content_file:
content = content_file.read()
email.add_attachment(content, maintype='application/pdf', subtype='pdf', filename='example.pdf')
s.send_message(email)
顺便说一句,这不是一个重复的问题,在这个问题中,他使用EmailMessage而不使用MIMEText / MIMEPart等。