python:带有TLS的smtp不会传递消息

2024-05-08 21:51:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: toimportcom电子邮件pwd邮件msggmail
2条回答

您的邮件不是由标头和正文组成的有效邮件。试试这样的方法:

msg = """From: <me@example.com>
To: <you@example.com>
Subject: foo

This is a test email 
"""

考虑用与Python documentation相同的方式构造消息。在

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()。在

相关问题 更多 >