python: 使用TLS的smtp未发送任何消息
我正在尝试通过office365服务器发送电子邮件。邮件确实成功发送了,但是附件没有附上。
非常感谢任何帮助。
import smtplib
to = "me@gmail.com"
office365_user = 'announcement@somewhere.com'
office365_pwd = 'password'
smtpserver = smtplib.SMTP("smtp.office365.com",587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo()
smtpserver.login(office365_user,office365_pwd)
msg = "This is a test email \n"
smtpserver.sendmail(office365_user, to, msg)
smtpserver.close()
2 个回答
2
可以考虑按照Python文档中的方式来构建消息。
from email.mime.text import MIMEText
msg = MIMEText("This is a test email")
msg['Subject'] = 'Email Subject'
msg['From'] = 'announcement@somewhere.com'
msg['To'] = 'me@gmail.com'
另外,我不太确定使用smtpserver.close()
是否合适。看起来正确的做法是使用smtpserver.quit()
。
5
你的信息不是一个有效的邮件信息,邮件信息通常包括一个标题和一个正文。你可以试试这样写:
msg = """From: <me@example.com>
To: <you@example.com>
Subject: foo
This is a test email
"""