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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记之电子邮件模块smtplib相关的知识,希望对你有一定的参考价值。

    在系统管理领域,我们常常用邮件来发送管理信息、业务质量报表等,方便运维人员第一时间了解业务的服务状态。通过python的smtplib模块来实现邮件的发送功能,模拟一个smtp客户端,通过与smtp服务器交互来实现邮件发送的功能。

smtplib模块的常用类与方法

  • SMTP.connect([host[,port]])方法,连接远程smtp主机方法,host为远程主机地址,port为远程主机smtp端口,默认为25,也可以直接使用host:port形式来表示,例如:SMTP.connect("smtp.qq.com","25")

  • SMTP.login(user, password)方法,远程主机的校验方法。

  • SMTP.sendmail(from_addr, to_addrs, msg, mail_options=[],rcpt_options=[])方法,实现邮件的发送功能,参数依次为发件人、收件人、邮件内容,例如:SMTP.sendmail("[email protected]","[email protected]",body),其中body内容如下:

  • SMTP.starttls()方法,启用TLS(安全传输)模式,所有SMTP指令都将加密传输。

  • SMTP.quit()方法,断开与smtp服务器的连接。


注意:QQ邮箱需要生成授权码。

技术分享


示例:

#!/usr/bin/env python

import smtplib

HOST = "smtp.qq.com"
SUBJECT = "Test email from python"
TO = "[email protected]"
FROM = "[email protected]"
test = "Just a test txt!"
BODY = "\r\n".join((
        "From: %s" %FROM,
        "To: %s" %TO,
        "Subject: %s" %SUBJECT,
        "",
        test))

server = smtplib.SMTP()
server.connect(HOST,"25")
server.starttls()
server.login("[email protected]","password")
server.sendmail(FROM,[TO],BODY)
server.quit()



以上是关于python学习笔记之电子邮件模块smtplib的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记之邮件发送篇

python之使用smtplib模块发送邮件

python学习笔记:发送邮件

python学习-smtplib模块

python3之模块SMTP协议客户端与email邮件MIME对象

python学习笔记——实现收发Email