腾讯云服务器宝塔面板,Python发送计划任务失败报错信息邮件

老丁

背景:腾讯云服务器计划任务运行失败的时候,发送邮件提醒;

但是由于腾讯云25端口默认是没有开通,所以无法部署到服务器上;

注:腾讯云25端口申请解封链接:https://cloud.tencent.com/document/product/213/40436


163邮箱设置:

image.png



本地测试效果:

用163邮箱向自己的qq邮箱发送邮件。

image.png

需求安装的库:

pip install PyEmail


代码如下:

import smtplib
from email.mime.text import MIMEText


def post_mail(title,content):
    #163邮箱服务器地址
    mail_host = 'smtp.163.com'  
    #163用户名
    mail_user = 'm***0'  
    #密码(部分邮箱为授权码) 
    mail_pass = 'R*****L'  
    #邮件发送方邮箱地址
    sender = '*****@163.com'
    #邮件接受方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发
    receivers = ['****@qq.com']  

    #设置email信息
    #邮件内容设置
    message = MIMEText(content,'plain','utf-8')
    #邮件主题       
    message['Subject'] = title
    #发送方信息
    message['From'] = sender 
    #接受方信息     
    message['To'] = receivers[0]  

    #登录并发送邮件
    try:
        smtpObj = smtplib.SMTP()
        #连接到服务器
        smtpObj.connect(mail_host,25)
        #登录到服务器
        smtpObj.login(mail_user,mail_pass)
        #发送
        smtpObj.sendmail(
            sender,receivers,message.as_string())
        #退出
        smtpObj.quit()
        print('success')
    except smtplib.SMTPException as e:
        print('error',e) #打印错误


代码来源:zhuanlan.zhihu.com/p/24180606


title,可以取任务名称;

content,利用traceback获取到报错信息(traceback.format_exc()),作为邮件content发送

import traceback

...

try:
    ....
except Exception as e:
    content=traceback.format_exc()
    post_mail('计划任务名称错误',content)


腾讯云工程师提醒:启用25端口注意合规使用,请勿发送垃圾邮件等违规信息,避免后续检查处违规内容后对服务器进行封禁处置。

Dingtalk_20220722171027.jpg



发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,689人围观)

还没有评论,来说两句吧...