用 Python 发送电子邮件
Najwa Riyaz
2021年10月12日
2021年7月12日
要使用 Python 发送电子邮件,请使用 smtplib
库中的以下函数。
SMTP(SMTP_SERVER, SMTP_PORT)
- 根据 SMTP 服务器和 SMTP 端口详细信息创建 SMTP 会话。starttls()
- 为安全设置启动 TLS。login(SMTP_USERNAME, SMTP_PASSWORD)
- 用于提供电子邮件发件人的身份验证详细信息。sendmail(EMAIL_FROM, EMAIL_TO, the_message)
- 将消息从发送方发送到接收方。quit()
退出 SMTP 会话。
这是一个演示通过 Gmail SMTP 服务器发送邮件的示例。
import smtplib
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
SMTP_USERNAME = "sender_username_here@gmail.com"
SMTP_PASSWORD = "sender_password_here"
EMAIL_FROM = "sender_username_here@gmail.com"
EMAIL_TO = "receiver_username_here@gmail.com"
EMAIL_SUBJECT = "Attention:Subject here"
EMAIL_MESSAGE = "The message here"
s = smtplib.SMTP(SMTP_SERVER, SMTP_PORT)
s.starttls()
s.login(SMTP_USERNAME, SMTP_PASSWORD)
message = 'Subject: {}\n\n{}'.format(EMAIL_SUBJECT, EMAIL_MESSAGE)
s.sendmail(EMAIL_FROM, EMAIL_TO, message)
s.quit()
根据系统中该点建立的连接,输出可能如下所示 -
(221, b'2.0.0 closing connection t12sm4676768pfc.133 - gsmtp')
结果,发送了电子邮件。接收方成功接收消息。
笔记:
- 如果是 Gmail,请提供以下 SMTP 详细信息:
SMTP_SERVER = "smtp.gmail.com"
SMTP_PORT = 587
此外,在执行代码之前,需要在 Gmail 中启用以下设置。
https://myaccount.google.com/lesssecureapps
- 如果是 Yahoo Mail,请提供以下 SMTP 详细信息:
SMTP_SERVER = "smtp.mail.yahoo.com"
SMTP_PORT = 587
此外,在执行代码之前生成雅虎应用程序密码
。参考下面的链接。
https://help.yahoo.com/kb/generate-separate-password-sln15241.html
- 同样,如果你希望使用任何其他邮件提供商,请使用其各自的 SMTP 服务器详细信息和先决条件。