Python自动发送邮件(可带附件)
2023年8月23日发(作者:2021最新版入党志愿书(范文30篇))
如何克隆旧手机资料到新手机-
Python⾃动发送邮件(可带附件)Python内置对SMTP的⽀持,可以发送纯⽂本邮件、HTML邮件以及带附件的邮件。Python对SMTP⽀持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送邮件。注意:使⽤前需要开启SMTP服务案例:使⽤163邮箱来结合smtp模块发送邮件 准备⼯作:注册或者登陆163邮箱,进⼊“设置”-->“POP3/SMTP/IMAP”,打开“POP3/SMTP服务”,短信验证后输⼊客户端授权密码保存Python代码:send_:import smtplibfrom import MIMETextfrom import Header# 发送邮箱服务器smtpserver = ""# 发送邮箱⽤户名密码user = "nancyrm2018@"password = "输⼊⾃⼰的客户端授权密码"# 发送和接收邮箱sender = "nancyrm2018@"receive = "nancyrm2018@"# 发送邮件主题和内容subject = "Web Selenium ⾃动化测试报告"content = "
⾃动化测试,⾃学成才
"# HTML邮件正⽂msg = MIMEText(content, 'html', 'utf-8')msg['Subject'] = Header(subject, 'utf-8')msg['From'] = "nancyrm2018@"msg['To'] = "nancyrm2018@"# SSL协议端⼝号要使⽤465smtp = _SSL(smtpserver, 465)# HELO向服务器标志⽤户⾝份(smtpserver)# 服务器返回结果确认(smtpserver)# 登录邮箱服务器⽤户名密码(user, password)print("Send ")il(sender, receive, _string())()print("email send end!")代码分析:我们可以使⽤SMTP对象的sendmail⽅法发送邮件,其中部分⽅法如下:login(user,password)⽅法参数说明如下:user:登录邮箱⽤户名password:登录邮箱密码sendmail(from_addr,to_addrs,msg,..)⽅法参数说明如下:from_addr:邮件发送者地址to_addrs:字符串列表,邮件发送地址msg:发送信息除SMTP模块,还⽤到了email模块,主要⽤来定义邮件的标题和正⽂:Header()⽅法⽤来定义邮件标题MIMETText()⽤于定义邮件正⽂,参数为html格式的⽂本。实现结果:登录126邮箱查看,显⽰内容如图:
带附件的邮件:Python代码:
from art import MIMEMultipart# ...send_file = open(r"E:python_", "rb").read()att = MIMEText(send_file, "base64", 'utf-8')att['Content-Type'] = 'application/octet-stream'att['Content-Disposition'] = 'attachment;filename=""'msgRoot = MIMEMultipart()(MIMEText(content, 'html', 'utf-8'))msgRoot['Subject'] = subjectmsgRoot['From'] = sendermsgRoot['To'] = ','.join(receives)(att)#...il(sender, receives, _string())