用Python自动发送邮件
用Python来编写自动化是一种挺有趣的事情,上次提过通过定位元素、切换窗口等自动登录博客园,今天给大家讲讲用Python来自动发送邮件
首先呢,先导入email框架,具体如下
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.base import MIMEBase
from email import encoders
from email.mime.multipart import MIMEMultipart
其次,登录邮箱来确定SMIP、POP3口令,这个下面要用到
接下来呢,你要准备好自己的账号密码以及收件人的邮箱账号,以及要发送的邮件
最后就是根据基本的框架结构,对着数据进行输入
具体操作如下:
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.base import MIMEBase
from email import encoders
from email.mime.multipart import MIMEMultipart
SMIP=" "
POP3=" "
# 发件人邮箱账号
my_sender=" "
# 发件人邮箱密码
my_pass=POP3
# 收件人邮箱账号
my_user=" "
def mail():
ret=True
try:
# 实例化添加邮件附件对象
msg=MIMEMultipart()
# 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg["from"]=formataddr([" 发件人邮箱昵称",my_sender])
# 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg["to"]=formataddr(["收件人邮箱昵称",my_user])
# 邮件的主题,也可以说是标题
msg["subject"]="自动化邮件"
# MIMEText(邮件正文描述, 邮件类型, 编码)
msg.attach(MIMEText('今天的自动化报告', 'html', 'utf-8'))
# 添加邮件
with open("D:\oy.test\自动化\\web_test.html","rb")as a:
# 设置附件的MIME和文件名
mime=MIMEBase("image","html",filename="web_test.html")
# 添加协议的头部信息
mime.add_header("Content-Disposition","attachment",filename="web_test.html")
mime.add_header("Content-ID","<0>")
mime.add_header("X-Attachment-id","0")
# 读取附件内容
mime.set_payload(a.read())
# 用Base64编码
encoders.encode_base64(mime)
# 添加到MIMEMultipart
msg.attach(mime)
server = smtplib.SMTP_SSL("smtp.qq.com", 465)
# 发件人账号,密码
server.login(my_sender, my_pass)
# 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.sendmail(my_sender, [my_user], msg.as_string())
server.quit()
except Exception as e:
print(e)
ret = False
return ret
if __name__ == "__main__":
ret = mail()
if ret:
print("发送成功")
else:
print("发送失败")