SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。Python建立 SMTP 对象语法以下:html
import smtplib smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
如下为参数说明:
python
Python SMTP 对象使用 sendmail 方法发送邮件,语法以下:服务器
SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
如下为参数说明:spa
这里要注意一下第三个参数,msg 是字符串,表示邮件。咱们知道邮件通常由标题,发信人,收件人,邮件内容,附件等构成,发送邮件的时候,要注意 msg 的格式。这个格式就是 smtp 协议中定义的格式。如下执行实例须要你本机已安装了支持 SMTP 的服务,如:sendmail。如下是一个使用 Python 发送邮件简单的实例:
3d
咱们使用三个引号来设置邮件信息,标准邮件须要三个头部信息: From, To, 和 Subject ,每一个信息直接使用空行分割。咱们经过实例化 smtplib 模块的 SMTP 对象 smtpObj 来链接到 SMTP 访问,并使用 sendmail 方法来发送信息。执行以上程序,若是你本机安装 sendmail(邮件传输代理程序),就会输出:代理
$ python test.py 邮件发送成功
查看咱们的收件箱(通常在垃圾箱),就能够查看到邮件信息。若是咱们本机没有 sendmail 访问,也可使用其余邮件服务商的 SMTP 访问(QQ、网易、Google等)。code
Python发送HTML格式的邮件与发送纯文本消息的邮件不一样之处就是将MIMEText中_subtype设置为html。具体代码以下:htm
执行以上程序,若是你本机安装sendmail,就会输出:对象
$ python test.py 邮件发送成功
查看咱们的收件箱(通常在垃圾箱),就能够查看到邮件信息。发送带附件的邮件,首先要建立MIMEMultipart()实例,而后构造附件,若是有多个附件,可依次构造,最后利用smtplib.smtp发送。
blog
而后运行文件就能够看到结果了。接下来就是,邮件的 HTML 文本中通常邮件服务商添加外链是无效的,正确添加突破的实例以下所示:
运行文件以后来查看结果。若是在垃圾箱可能须要移动到收件箱才可正常显示。再来使用 QQ 邮箱(你也可使用 163,Gmail等)的 SMTP 服务,须要作如下配置:
QQ 邮箱经过生成受权码来设置密码:
QQ 邮箱 SMTP 服务器地址:smtp.qq.com,ssl 端口:465。如下实例你须要修改:发件人邮箱(你的QQ邮箱),密码,收件人邮箱(可发给本身):
运行以后就能够查看结果了。更多内容请参阅:https://docs.python.org/2/library/email-examples.html。
若是感受不错的话,请多多点赞支持哦。。。