我是一名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扩展名。
答案 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