在工作中,常常会遇到监控类的程序,需要满足某个条件的时候,发送提醒。
可以使用微信来提醒,参考我的文章python使用pushplus将消息推送到微信-CSDN博客
也可以使用发送邮件来提醒。
一、设置qq邮箱,获取授权码
(一)进入qq邮箱,点击设置
(二)找到账号并点击
(三) 将页面往下拉,找到如下图的地方,点击“管理服务”
(四)在“安全设置”的点击“生成授权码”,经过手机短信验证等,获取授权码。
授权码为如下样式:
caznbsycoydmbefg
(五)可以在下面的链接内看到如何配置参数
二、编写python代码发送邮件,我已经写成函数可以直接使用
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(subject, body):
# QQ邮箱账号和授权码
qq_email = 'xxxxxxx@qq.com' # 替换为你的QQ邮箱
qq_password = 'caznbsycoydmbefg' # 替换为你的授权码
# 收件人邮箱
to_email = 'yyyyyyy@qq.com' # 收件人邮箱。监控提醒的话,可以填写xxxxxxx@qq.com
# 创建邮件内容
subject = subject # 邮件标题
body = body # 邮件内容
# 构造邮件
msg = MIMEMultipart()
msg['From'] = qq_email
msg['To'] = to_email
msg['Subject'] = subject
# 添加邮件内容
msg.attach(MIMEText(body, 'plain'))
try:
# 连接QQ邮箱SMTP服务器
server = smtplib.SMTP('smtp.qq.com', 587) # QQ SMTP服务器及端口
server.starttls() # 启动TLS加密
server.login(qq_email, qq_password) # 登录
# 发送邮件
server.sendmail(qq_email, to_email, msg.as_string())
print('Email sent successfully!')
except Exception as e:
print(f'Failed to send email: {e}')
finally:
server.quit() # 退出服务
send_email('hello','你好,世界')