python: 使用TLS的smtp未发送任何消息

6 投票
2 回答
3231 浏览
提问于 2025-04-18 08:53

我正在尝试通过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 
"""

撰写回答