qq自动发信息机器

qq自动发信息机器

需求背景分析

设想我们想要设计一个定时任务,例如每天定时使用Python来检测服务是否正常运行,但又不希望每天都需要登录到系统后台查看服务状态。我们可以采用Python的TP模块进行任务结果广播,通过申请一个公共邮箱,每次Python执行完定时的测试任务后,都调用TP接口将测试结果发送到指定邮箱。这样,我们就能在移动端实时监测系统的状态。

QQ邮箱的TP服务配置流程详解

我们需要通过浏览器登录QQ邮箱。在邮箱的设置-账户页面中,找到POP3/TP服务并开启。开启后,系统会生成一个长度为16的随机口令,这个口令将用于第三方登录代替密码。接着,配置TP服务器地址和端口号。

使用授权码登录TP并发送邮件的步骤

这里我们直接展示完成代码,部分隐私信息已做处理:

python

smtp_test.py

!/usr/bin/python

— coding: UTF-8 —

import smtplib

from email.mime.text import MIMEText

from email.header import Header

第三方 TP 服务配置

mail_host = “smtp.” 设置服务器地址

mail_user = “” 填入用户名

mail_pass = “your_authorization_code” 填入授权码

sender = ”

receivers = [”] 邮件接收方,可以是自己的QQ邮箱或其他邮箱

message = MIMEText(‘Python TP 邮件发送测试…’, ‘plain’, ‘utf-8’)

message[‘From’] = Header(“TP发件人”, ‘utf-8’)

message[‘To’] = Header(“收件人”, ‘utf-8’)

subject = ‘Python TP 邮件测试’

message[‘Subject’] = Header(subject, ‘utf-8’)

try:

smtpObj = smtplib.TP()

smtpObj.connect(mail_host, 25) TP端口号为25

smtpObj.login(mail_user, mail_pass)

smtpObj.sendmail(sender, receivers, message.as_string())

print(“邮件发送成功”)

except smtplib.TPException:

import traceback

traceback.print_exc()

print(“无法发送邮件”)

请注意,这里的服务器配置为QQ邮箱的TP服务器smtp.,端口号为25。读者需要将脚本中的帐号和授权码替换为自己的。程序的正常输出应该是:“邮件发送成功”。由于使用了traceback进行错误日志采集,即使出现错误,程序也能继续运行,但会广播错误日志。


qq自动发信息机器