发送电子邮件模块smtplib,是内置模块,用来发送邮件
在不同的python版本中涉及到的方法有所不同,具体要参考各个版本的标准库文档进行查看,哪些方法能使用,哪些不能使用
email模块,管理电子邮件消息的模块,是内置模块,通过email模块特性来构造电子邮件消息,然后通过smtplib模块发送消息
1、SMTP类
1、SMTP类定义
SMTP类定义:smtplib.SMTP
smtplib.SMTP是SMTP的构造函数,作用是与SMTP服务器建立连接,建立连接后,可以发送相关操作请求,登录,校验,发送,退出等等,
import smtplib
smtplib.SMTP(host='',port='',local_hostname='',timeout='',source_address='')
说明
参数 | 说明 |
---|---|
host | 远程smtp的主机地址,如smtp.qq.com |
port | 连接端口,默认25 |
local_hostname | 本地主机的FQDN,就是完整域名,标识用户身份的指令 |
timeout | 多长时间超时,单位秒 |
source_address | 源地址 |
SMTP类方法
import smtplib
smtplib.SMTP.connect(host='smtp.qq.com',port='25')
#邮件的服务器地址与端口,端口默认25
smtplib.SMTP.starttls()
#使用TLS加密传输,现在都使用加密传输
smtplib.SMTP.login(user='',password='')
#校验方法,用户名,密码,密码是邮箱的授权码,不是登录密码,
#授权码一般在邮箱的设置里,不同邮箱服务器,所在的位置不同
smtplib.SMTP.sendmail(from_addr='',to_addrs='',msg=[])
#发件人,收件人,邮件内容,收件人可以是多个
#msg 是字符串,表示邮件,遵循smtp协议格式
smtplib.SMTP.quit()
#断开连接
方法 | 说明 |
---|---|
smtplib.SMTP.connect | |
smtplib.SMTP.starttls | |
smtplib.SMTP.login | |
smtplib.SMTP.sendmail | |
smtplib.SMTP.quit |
邮件结构
邮件结构
python2中发送文本邮件
版本:2.7版本
邮件发送有着其格式,在python2中可以通过string.join来构造主体结构,python3中取消了这个方法
import smtplib
import string
obj='邮件主题'
TO=['465103305@qq.com','758295559@qq.com']
#接收邮件地址
# 定义收件人列表
HOST='smtp.qq.com'
#发送邮件主机地址
FROM='465103305@qq.com'
TEST='这是文本内容'
BODY=string.join(("From:{}".format(FROM),
"TO:{}".format(TO),
"subject:{}".format(obj),
"",
TEST),"\r\n")
ser_smtp=smtplib.SMTP()
ser_smtp.connect(host=HOST,port=25)
ser_smtp.starttls()
ser_smtp.login(user='465103305@qq.com',password='lsulgxkpaieycbcg')
ser_smtp.sendmail(FROM,TO,BODY)
#发件人、收件人、结构
ser_smtp.quit()
最后邮箱协议
问题
电脑主机名
电脑主机名有中文可能会有下面报错