smtplib模块,
smtplib提供了一种很方便的途径发送电子邮件,它对smtp协议进行了简单的封装。
smtplib是用来发送邮件用的
一.这个模块分别有什么方法? 二.模块的方法怎么用?
smtplib发邮件时
# 导入第三方模块
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
email是用来构建邮件内容
Python MIMEText.MIMEText方法
# 需要导入模块: from email import MIMEText [as 别名]
# 或者: from email.MIMEText import MIMEText [as 别名]
msg = MIMEText(‘‘)
构造MIMEText对象时,
第一个参数就是邮件正文,
第二个参数是MIME的subtype,传入‘plain‘,最终的MIME就是‘text/plain‘,
第三个参数:记住一定要用utf-8编码保证多语言兼容性。
# 必须将邮件内容做一次MIME转换--发送含链接的邮件
msg = MIMEText(mail_msg, ‘html‘, ‘utf-8‘)
formataddr
formataddr()来格式化一个邮件地址。
类下面又有一些方法,如下:
其中SMTP 是一个类(class),再往下面滑可以看到其中包含了很多函数;
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
SMTP (Simple Mail Transfer Protocol)翻译过来是“简单邮件传输协议”的意思,
SMTP 协议是由源服务器到目的地服务器传送邮件的一组规则。
SMTP类方法:
SMTP.connect(host=‘localhost‘,port=0) :链接到远程SMTP主机的方法,host为远程主机地址,port为远程主机smtp端口,默认为25,也可以直接使用host:port形式来表示:如:SMTP.connect(‘smtp.163.com‘,‘25‘)
SMTP.login(user,password):登陆需要认证的SMTP服务器,参数为用户名与密码,如SMTP.login(‘python@163.com‘,‘123‘)
SMTP.sendmail(from_addr,to_addrs,msg,mail_options=[],rcpt_options=[]):实现邮件的发送功能,参数from_addr为发件人,to_addrs为收件人,msg为邮件内容,如:SMTP.sendmail(‘python@163.com‘,‘demo@qq.com‘,body)。
SMTP.starttls(keyfile=None,certfile=None):启用TLS安全传输模式,所有SMTP指令都将加密传输,如使用gmail的smtp服务时需哟啊启动此项才能正常发送邮件。
SMTP.quit():断开smtp服务器链接
SMTP.set_debuglevel(level):设置调试输出级别,值为1,2或True,发送调试消息到服务器
SMTP.send_message(msg,from_addr=None,to_addrs=None,mail_options=[],rcpt_options=[]):这是使用有email.message.Message对象表示的消息进行调用的便捷方法使用sendmail(),参数的含义与sendmail()相同,只有msg是一个Message对象;如果from_addr是None或者to_addrs是None,则send_message用从msg头部提取的地址填充那些参数,from设置为发件人自动,TO设置为to_addrs。
# 配置python与邮件的SMPT服务器的连接通道( qq邮箱)
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 模拟登录
server.login(my_sender, my_pass)
server.sendmail(my_sender, [to_user, ], msg.as_string())
原文:https://www.cnblogs.com/fanglijiao/p/15035778.html