我正在尝试使用python发送Outlook电子邮件。但是我遇到了这个错误。我尝试使用Win 32和许多其他方式,但是它们都不起作用,我不确定这个问题。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
fromaddr = "anc@abc.com"
toaddr = "abc@abc.com"
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg['Subject'] = "datalerty"
body = "sample"
msg.attach(MIMEText(body, 'plain'))
server = smtplib.SMTP('smtp-mail.outlook.com',587)
server.starttls()
server.login(fromaddr, "abc")
text = msg.as_string()
server.sendmail(fromaddr, toaddr, text)
server.quit()
答案 0 :(得分:2)
“名称解析临时失败”通常表示DNS问题。检查您使用的主机名smtp-mail.outlook.com
是否真正解析。你能ping通吗?您可以使用netcat
或其他电子邮件程序连接到它吗?
如果问题是间歇性的,那是因为网络不可靠。一般来说,您需要预料到这类问题,并在发生时重试。或者让您的应用程序崩溃,并假设其他内容将重试。但是通常最好是在接近错误的地方完成。
如果错误始终存在,则可能是某个地方的DNS服务器配置错误。也许您使用的主机名不正确,并且操作系统错误地报告了该错误。
无论如何,这可能可能与您的Python代码无关。