smtplib 模块与 email 模块
日常办公中正式文件的发送都需要用到邮件,以及在互联网工作中,月度总结、销售报表、考评表等等都需要邮件进行发送。在不考虑办公自动化之前,你发送一封邮件的步骤是如何呢?
- 第一步打开浏览器进入到邮箱登录界面,如 163、QQ、Sina 等;
- 输入邮箱用户名和密码进行登录;
- 登录后在邮箱主界面点击发件,编辑发送内容;
- 点击发送按钮,完成一封邮件的发送。
如果有一种方式不需要你打开浏览器,所有操作都在代码中完成,还可以灵活配置发送内容,实现定时发送、自动监听等操作,想起来是不是更酷了。这些都属于办公自动化的范畴。本小节将介绍利用 Python 实现邮件自动化。首先介绍所需模块 smtplib 与 email 的使用。
1. smtplib 与 email 模块介绍
介绍 smtplib 之前,可以先拆分下,介绍什么是 SMTP,SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。Python 内置对 SMTP 的支持,可以发送纯文本邮件、HTML 邮件以及带附件的邮件,Python 对 SMTP 支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件。
2. 模块使用
smtplib 和 email 模块是 Python 的内置模块,无需额外安装,可以直接进行使用。使用步骤如下:
步骤 1:模块导入
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
代码解释:
-
smtplib:smtplib 为负责发送邮件的模块;
-
MIMEText:构建邮件主体内容时使用;
-
MIMEMultipart:构建包含多个部分的邮件体的 MIME 对象,如带附件的邮件。
-
MIMEApplication:用来表示主要类型的 MIME 消息对象。
步骤 2:初始化 SMTP 对象
s=smtplib.SMTP([host [,port [,local_hostname]])
参数解释:
-
host:SMTP 服务器主机的 IP 地址或者是域名;
-
port:服务的端口号(默认是 25);
-
local_hostname:服务器的地址(默认是 localhost)。
下面为构建好的 SMTP 对象示例:
s=smtplib.SMTP("smtp.qq.com")
步骤 3:构建邮件内容
通过 Python 提供 email 模块构建邮件内容;
步骤 4:发送邮件
通过 smtplib 模块实现发送邮件。
3. 小结
本节课程我们主要学习了 smtplib 与 email 模块介绍。本节课程的重点如下:
- 了解 smtplib 与 email 模块的作用;
- 掌握 smtplib 与 email 模块实现邮件发送的使用步骤;