背景:腾讯云服务器计划任务运行失败的时候,发送邮件提醒;
但是由于腾讯云25端口默认是没有开通,所以无法部署到服务器上;
注:腾讯云25端口申请解封链接:https://cloud.tencent.com/document/product/213/40436
163邮箱设置:
本地测试效果:
用163邮箱向自己的qq邮箱发送邮件。
需求安装的库:
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端口注意合规使用,请勿发送垃圾邮件等违规信息,避免后续检查处违规内容后对服务器进行封禁处置。
还没有评论,来说两句吧...