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发送脚本到指定邮箱

  

 

posted @ 2023-02-01 10:44  dabeen  阅读(181)  评论(0编辑  收藏  举报