我正在尝试使用通用的python SMTP lib模块通过Python从Outlook Web应用程序(而非Office 365)发送电子邮件。我正在使用正确的主机服务器名称和端口号。但是,我仍然不确定为什么会收到身份验证错误。我知道这是一个常见问题,但是我仍然想知道为什么它无法进行身份验证。任何帮助,将不胜感激。谢谢。
我们的电子邮件配置了DUO设置(双重身份验证)。我最初认为这可能是原因。但是我使用的其他方法在没有进行任何其他设置的情况下也能很好地工作 我尝试过的一些方法。
代码非常简单明了。
import smtplib
from getpass import getpass
email = '********'
password =getpass("Enter your password")
with smtplib.SMTP('xxxx.xxx.xxx',25) as smtp:
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(email,password)
subject = 'Test'
body = 'Testing email'
msg = f'Subject:{subject}\n\n{body}'
smtp.sendmail(email,email,msg)
无论使用什么端口,它始终显示此错误。
引发SMTPAuthenticationError(代码,分别) smtplib.SMTPAuthenticationError:(535,b'5.7.8错误:身份验证失败:身份验证失败')
编辑: 好的!因此,如果我删除登录名和提示密码声明,则代码绝对可以正常运行。但这似乎很危险,我不确定为什么即使我们未登录也允许发送电子邮件。