【发布时间】:2017-07-24 18:51:57
【问题描述】:
我从另一个网站存储库中找到了这段代码,它用于使用 python 发送电子邮件并附加一个文件。它在发送之前将文件编码为base64 br。在使用“.xlsx”文件之前,我已经测试了代码,并且发送时没有问题。但是现在程序由于某种原因没有发送它。该文件与代码位于同一文件夹中。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
fromaddr = "FROM EMAIL"
toaddr = "TO EMAIL"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "SUBJECT"
body = "MESSAGE"
msg.attach(MIMEText(body, 'plain'))
filename = "05-11-2016 - Saturday.xlsx"
attachment = open("05-11-2016 - Saturday", "rb")
part = MIMEBase('application', 'octet-stream')
part.set_payload((attachment).read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % filename)
msg.attach(part)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(fromaddr, "PASSWORD")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
当我运行它时,这是输出的错误:
line 21, in <module>
attachment = open("05-11-2016 - Saturday", "rb")
FileNotFoundError: [Errno 2] No such file or directory: '05-11-2016 - Saturday'
任何帮助将不胜感激。
【问题讨论】:
-
不应该是
open('05-11-2016 - Saturday.xlsx', 'rb')吗? -
当我这样做时,消息已发送,但没有扩展名。所以它是一个没有扩展名的文件
-
顺便说一句,谢谢你的提示,我只是尝试修改和使用你的脚本,它可以工作:)也许会有所帮助:)
标签: python email attachment mime smtplib