跳到主要内容

smtplib 模块与 email 模块

日常办公中正式文件的发送都需要用到邮件,以及在互联网工作中,月度总结、销售报表、考评表等等都需要邮件进行发送。在不考虑办公自动化之前,你发送一封邮件的步骤是如何呢?

  1. 第一步打开浏览器进入到邮箱登录界面,如 163、QQ、Sina 等;
  2. 输入邮箱用户名和密码进行登录;
  3. 登录后在邮箱主界面点击发件,编辑发送内容;
  4. 点击发送按钮,完成一封邮件的发送。

如果有一种方式不需要你打开浏览器,所有操作都在代码中完成,还可以灵活配置发送内容,实现定时发送、自动监听等操作,想起来是不是更酷了。这些都属于办公自动化的范畴。本小节将介绍利用 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 模块实现邮件发送的使用步骤;

图片描述