smtplib.SMTPNotSupportedError:服务器不支持SMTP AUTH扩展

时间:2019-04-22 20:44:54

标签: python-3.7 smtplib

我是一名Python新手,尝试使用Python 3.7通过电子邮件发送。 我指的是以下python网页来整理我的代码。 https://docs.python.org/3.7/library/email.examples.html 我无法理解哪里出了问题。我是否需要更新Outlook中的任何设置才能通过电子邮件?很奇怪以上文档没有提及我的电子邮件密码

    #!/usr/bin/env python3
    import smtplib
    from email.message import EmailMessage 
    body = "Hello User,\nThis is to notify you that...."
    msg = EmailMessage()
    msg.set_content(body)
    msg['Subject'] = 'Name Clash.....'
    msg['From'] = 'pukav@outlook.com'
    msg['To'] = 'iampukav@gmail.com'
    s = smtplib.SMTP('smtp-mail.outlook.com', 587)
    s.login('pukav@outlook.com', 'mypassword')
    s.send_message(msg)
    s.quit()

错误:

登录“服务器不支持SMTP AUTH扩展名。”

smtplib.SMTPNotSupportedError:服务器不支持SMTP AUTH扩展名。

2 个答案:

答案 0 :(得分:2)

创建SMTP连接后,您应该登录:s.login('email', 'password')

编辑: 这是我使用多年的代码。我用它来从G-Suite帐户发送电子邮件:

server = smtplib.SMTP_SSL(serverAddress, portNumber)
server.ehlo()
server.login(username, password)

答案 1 :(得分:1)

我对Gmail服务器有同样的错误,并在下面找到了解决方案。
(我不确定此解决方案是否适合Outlook)

import smtplib
from typing import List

SMTP_HOST = "smtp.gmail.com"
SMTP_PORT = 587


def send_email(from_addr: str, to_addr: List[str], subject: str) -> None:
    msg = f"From: {from_addr}\r\nTo: {','.join(to_addr)}\r\nSubject: {subject}\r\n"

    with smtplib.SMTP(host=SMTP_HOST, port=SMTP_PORT) as server:
        server.starttls()
        server.login(SMTP_USER, SMTP_PASSWORD)
        server.sendmail(from_addr, to_addr, msg)

重要说明:
使用Gmail时,请记住打开access for less secure apps