python发邮件
1、如下代码演示
import smtplib #导入邮件模块 import time from email.mime.text import MIMEText #定义邮件内容 from email.header import Header #定义邮件标题 from email.mime.multipart import MIMEMultipart #用于传输附件 from password_2694 import * #该模块只是为了掩盖笔者的邮箱账号和密码,做的导入,读者可以忽略即可 rq=time.strftime("%Y-%m-%d %H-%M-%S") user=pwd().getuser()#这个是账号,填写自己的账号 smtpserver="smtp.qq.com"#发送邮箱服务器 pwd=pwd().getpwd()#这个是密码,填写自己的密码即可 #接收邮箱的账号 fom="填写自己的账号@163.com" foms=["填写自己的账号@163.com",user] #发送邮箱的主题和内容 subject=u"%r自动化报告发送给多人"%rq content='<html><h1>这是内容</h1></html>' #发送附件 filename=u"F:\\python\\UI_51zxw\\unitest模块学习\\基于unittest搭建测试小框架\\test_log\\2020-08-31 16-45-22报告.html"#附件的存放地址 file=open(filename,"rb").read()#取出附件 sfile=MIMEText(file,'base64','utf-8') sfile["Conten_Type"]='application/octet-stream' sfile["Content-Disposition"]='attachment;filename="%rlog.html"' %rq #99999为接收的文件名 #构建HTML邮件正文 发送文字邮件,不带文件 # msg=MIMEText(content,'html','utf-8') #邮件的正文 # msg['Subject']=Header(subject,'utf-8') #邮件的标题 # msg['From']=user #邮件发送方 # # msg['To']=fom#邮件发送方,目前邮件只发送给一个人 # msg['To']=','.join(foms)#邮件发送多人 #构建HTML邮件正文 发送邮件,带附件 msgroot=MIMEMultipart() msgroot.attach(MIMEText(content,'html','utf-8')) msgroot['Subject']=Header(subject,'utf-8') msgroot['From']=user # msgroot['To']=fom#邮件只发送给一个人 msgroot['To']=','.join(foms)#邮件发送多人 msgroot.attach(sfile) #附件文件 smtp=smtplib.SMTP_SSL(smtpserver,465)#SSL协议端口号要使用465 smtp.helo(smtpserver)#helo向邮箱标识用户身份 smtp.ehlo(smtpserver)#服务器返回结果确认 smtp.login(user,pwd)#登录邮箱服务器,用户账号和密码 print("开始发送邮件") smtp.sendmail(user,foms,msgroot.as_string())#邮件发送多人 # smtp.sendmail(user,fom,msg.as_string())#发送给个人的邮件 smtp.quit() print("邮件发送结束")
2、运行结果: