背景
生活中有许多信息需要及时知晓,例如
我们需要一个生活小助手,给我们推送天气情况重要的程序结果、预警信息或新闻产生时,希望即时了解
都需要推送服务。这些时候我们只想用最低的成本实现消息推送,也不需要考虑太多适配性的问题。目前实现信息推送的方法较多,主流的包括:
微信公众平台:微信提供了订阅号和服务号,但存在推送频率的限制,同时消息提醒不明显企业微信:主要面向企业用户,功能侧重办公管理。其注册和设置流程较为复杂,普通用户日常使用场景较少,和个人日常接收消息的需求契合度不高微信机器人:相当于把一个微信账号跑在云端,这不是官方推荐的方法,限制也比较多,还可能被封号。而且现在微信号注册页越来越难了手机系统自带推送:像个推、友盟推送等,功能强大,但大多按推送量收费。最主要的是需要自己开发一个 app,这样开发起来很麻烦邮箱推送:用户通过手机邮箱 APP 接收邮件通知。虽然邮件能承载较多内容,但实时性差
有没有简单、低成本且适合个人使用的推送方法?答案是肯定的。下面介绍一种通过邮箱与微信绑定,借助简单程序代码实现微信推送的方法,无需复杂开发,就能搭建起个人信息推送通道。
注册发件邮箱并获取授权码(AK)
以 126 邮箱为例,访问126 邮箱官网,点击 “注册”,按页面提示填写信息完成注册。注册成功后登录邮箱,进入设置页面,在 “POP3/SMTP/IMAP” 相关设置中开启 SMTP 服务,开启时系统会生成授权码,这个授权码后续发送邮件时会用到,一定要妥善保存。
将微信与 QQ 邮箱绑定并置顶
打开微信,搜索 “QQ 邮箱提醒” 公众号并关注。进入公众号,点击底部菜单栏 “更多设置” - “绑定邮箱账号”,输入 QQ 邮箱账号和密码完成绑定。绑定后,在微信聊天列表中找到 “QQ 邮箱提醒” 公众号,长按选择 “置顶聊天”,方便及时查看新邮件提醒。
程序发送邮件实现微信推送
以 Python 为例,利用smtplib库和email库可以实现邮件发送,进而完成微信推送。具体代码如下:
import smtplib
from email.mime.text import MIMEText
from email.header import Header
# 发件人邮箱账号,换成你自己注册的126邮箱
sender_email = "your_126_email@126.com"
# 发件人邮箱授权码,即前面获取的授权码
sender_password = "your_authorization_code"
# 收件人邮箱账号,填绑定微信的QQ邮箱
receiver_email = "your_qq_email@qq.com"
# 邮件主题
subject = "微信推送测试"
# 邮件内容
message = MIMEText('这是一条通过程序发送的微信推送消息', 'plain', 'utf-8')
message['From'] = Header("推送通知", 'utf-8')
message['To'] = Header("接收者", 'utf-8')
message['Subject'] = Header(subject, 'utf-8')
try:
# 创建SMTP对象,连接到126邮箱的SMTP服务器
server = smtplib.SMTP('smtp.126.com', 25)
# 登录发件人邮箱
server.login(sender_email, sender_password)
# 发送邮件
server.sendmail(sender_email, receiver_email, message.as_string())
print("邮件发送成功")
# 关闭连接
server.quit()
except smtplib.SMTPException as e:
print("Error: 无法发送邮件", e)