【发布时间】:2015-10-24 15:14:45
【问题描述】:
我正在尝试发送带有 PDF 附件的电子邮件。我已经定义了下一个函数:
def mail(to, subject, text, attach):
gmail_user = "email@gmail.com"
gmail_name = "name <email@gmail.com>"
gmail_pwd = "password"
msg = MIMEMultipart()
msg['From'] = gmail_name
msg['To'] = to
msg['Subject'] = subject
msg.attach(MIMEText(text))
part = MIMEBase('application', 'octet-stream')
part.set_payload(open(attach, 'rb').read())
Encoders.encode_base64(part)
part.add_header('Content-Disposition',
'attachment; filename="%s"' % os.path.basename(attach))
msg.attach(part)
mailServer = smtplib.SMTP("smtp.gmail.com", 587)
mailServer.ehlo()
mailServer.starttls()
mailServer.ehlo()
mailServer.login(gmail_user, gmail_pwd)
mailServer.sendmail(gmail_name, to, msg.as_string())
mailServer.close()
问题是控制台显示如下错误
smtplib.SMTPServerDisconnected: Server not connected
但是,如果我只是将“msg.as_string”替换为“Whatever string”,它就可以正常工作。所以我认为当我尝试附加 PDF 文件时会发生此问题。
你能帮帮我吗?
谢谢
【问题讨论】: