Python学习笔记(四十七)SMTP发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记(四十七)SMTP发送邮件相关的知识,希望对你有一定的参考价值。

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005226355aadb8d4b2f3f42f6b1d6f2c5bd8d5263000

 

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。

Python对SMTP支持有smtplibemail两个模块,email负责构造邮件,smtplib负责发送邮件。

首先,我们来构造一个最简单的纯文本邮件:

from email.mime.text import MIMEText
msg = MIMEText(hello, send by Python..., plain, utf-8)

注意到构造MIMEText对象时,第一个参数就是邮件正文,第二个参数是MIMEsubtype,传入‘plain‘表示纯文本,最终的MIME就是‘text/plain‘,最后一定要用utf-8编码保证多语言兼容性。

然后,通过SMTP发出去:

from email.mime.text import MIMEText

msg = MIMEText(Hello, send by Python..., plain, utf-8)

# 输入Email地址和口令:
from_addr = input(From:)
password = input(Password:)
# 输入收件人地址:
to_addr = input(To:)
# 输入SMTP服务器地址:
smtp_server = input(SMTP server:)

import smtplib
# SMTP 协议默认端口是25
server = smtplib.SMTP(smtp_server, 25)
server.set_debuglevel(1)
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string())
server.quit()

我们用set_debuglevel(1)就可以打印出和SMTP服务器交互的所有信息。SMTP协议就是简单的文本命令和响应。login()方法用来登录SMTP服务器,sendmail()方法就是发邮件,由于可以一次发给多个人,所以传入一个list,邮件正文是一个stras_string()MIMEText对象变成str

如果一切顺利,就可以在收件人信箱中收到我们刚发送的Email:

 

以上是关于Python学习笔记(四十七)SMTP发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

[python]《Python编程快速上手:让繁琐工作自动化》学习笔记6

Python学习笔记-邮件模块SMTP

python学习笔记之电子邮件模块smtplib

python学习笔记:发送邮件

python笔记- 发送邮件

学习笔记(二十一)—— 使用SMTP发送电子邮件