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、运行结果:

 

posted @ 2020-09-03 14:02  菌子石雨  阅读(210)  评论(0编辑  收藏  举报