Python将信息发送到指定邮箱
目的:将Python执行脚本结果发送到指定邮箱
使用场景:可将每天、每周定时任务python跑的结果汇总,定时发送到小组成员/领导邮箱中
1、以下163邮箱为例,设置发件人是163邮箱,接收人是qq邮箱。
由于163邮箱的安全机制,Python登陆163邮件客户端不是使用邮箱密码而是使用客户端授权密码。授权码是用于登录第三方邮件客户端的专用密码。
163客户端授权路径:设置->常规设置->客户端授权密码
发送邮件开启IMAP服务即可,POP3可不用开启
开启服务,如果像我曾经操作过客户端授权密码的会出现“开启”/“关闭”按钮,如果没授权过服务的则需要先操作客户端授权密码。
如下我直接开启服务就能出现授权密码,将此密码保存下面python脚本会使用到。
2、Python脚本代码
# -*- coding:utf-8 -*- import smtplib import time from email.mime.text import MIMEText from email.header import Header def mail(): sender = 'xxx@163.com' #发送人邮箱 receiver = 'xxx@qq.com' #接收人邮箱 smtpserver = 'smtp.163.com' #邮件服务器 password = 'xxx' #此处密码不是指邮箱密码,而是指发件人邮箱客户端授权码 #邮件标题 subject = 'Python邮件发送测试-2023' body = "这是一封Python脚本自动发送邮件,发送人'"+sender+"',收件人'"+receiver+"'" #发送邮件正文 msg = MIMEText(body, 'plain', 'utf-8') msg['Subject'] = Header(subject, 'utf-8') try: smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(sender, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() print("Success: 邮件发送成功!") except smtplib.SMTPException: print("Fail: 邮件发送失败!") if __name__ == '__main__': mail()
3、执行脚本,成功通过Python发送脚本到指定邮箱