搬瓦工CN2-GIA-E套餐补货微信提醒

/ 2评 / 2

原理

微信可以绑定QQ邮箱提醒,和普通消息提醒一模一样,所以如果搬瓦工特定套餐补货的话,通过邮件发送到对应的QQ邮箱,就可以达到微信消息提醒的目的。当然也可以使用其他邮件客户端,比如网易邮件客户端,Gmail提醒都是一样的效果,只是微信用起来比较方便,适合大众。

为什么不使用shell
因为shell做http请求还需要wget活着curl还得专门安装,同时shell发邮件支持不太好。

提醒标题

提醒内容

日志运行

方法

下载脚本

下载下列脚本,存储在任意文件夹即可,我一般放在~文件夹方便查找。

git clone https://github.com/SoPudge/vpstellyou.git
你也可以直接复制文件内容,保存成py文件

修改对应的收发邮件信息

修改66-69行对应的邮箱信息即可,其中QQ邮箱的smtp功能不能使用原始的QQ邮箱密码,而需要独立申请SMTP的授权码,具体请参加QQ邮箱帮助SMTP授权码使用帮助

#邮件发送信息
sender = "发送邮箱xxx@qq.com"
password = "QQ邮箱的smtp授权码"
smtp_server = "smtp.qq.com"
receiver = "接收邮箱,格式带@qq.com"

测试发送是否成功

测试的时候,取消注释脚本最后两行,然后运行即可测试发送邮件

第一步,把最后两行的注释去掉

……
elif datetime.now().hour == 8 and datetime.now().minute == 0:
    msg['Subject'] = Header('%s 程序存活' % datetime.now().strftime('%m%d'), 'utf-8').encode()
    send_mail(sender, password, smtp_server, receiver, msg.as_string())
else:
    logging.info("没有补货,不发送邮件")
    #msg['Subject'] = Header('%s 程序存活' % datetime.now().strftime('%m%d'), 'utf-8').encode()
    #send_mail(sender, password, smtp_server, receiver, msg.as_string())

第二步,运行该脚本看是否收到邮件

python bwgtellyou.py

第三步,注释掉最后两行

务必注释掉最后两行,否则每五分都会收到邮件。

运行完毕之后,应该会收到一封名为“程序存活”标题的邮件,实际上就是每天早晨8:00会收到的确认程序运行良好的邮件,补货的时候,会收到标题为“已经补货”的邮件,并且邮件正文包含对应的购买链接和优惠码,直接点击就可以了。

使用Crontab定期执行

Crontab使用的坑还是很多的,比如说默认没有日志,需要使用绝对路径等,在这里也做一个完整的设置,方便debug,可选的步骤可以不用做,不影响程序的运行,此处仅作记录。

(可选)第一步,打开crontab日志

#Debian可用,centos类似
vi /etc/rsyslog.conf
#去掉如下行的注释即可
cron.*    /var/log/cron.log
#保存后如下命令重启日志服务
/etc/init.d/rsyslog restart
#重启crontab服务
/etc/init.d/cron restart

第二步,写入crontab命令

#运行如下命令开启crontab编辑
crontab -e
#最后一行添加下列指令,即5分钟运行一次检查脚本
#该脚本使用自带python2,如果python3无法运行成功的,于法有区别
*/5 * * * * /usr/bin/python ~/bwgtellyou.py
#保存后crontab会自动更新

(可选)第三步,检查运行情况

#方法一,直接等待五分钟,并检查脚本同目录下的bwgtellyou.log日志是否有变化
tail -f bwgtellyou.log
#方法二,等待五分钟,检查crontab的日志查找问题
#每5分钟应该会有执行的提示的
tail -f /var/log/cron.log
  1. 匿名说道:

    博主在武汉?情况可好?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据