Docker 部署 _實現每日情話 定時推送(apscheduler)
由于最近工作比較忙,后續(xù)博客可能更新不及時,哈哈
前言:
由于python對于微信推送不夠友好,需要掃碼登錄,短信接口需要RMB。我就想到了qq郵箱發(fā)送到好友,然而微信有qq郵箱提醒功能,就實現了我需要定時推送消息的需求。
import smtplib,requests from email.mime.text import MIMEText from email.utils import formataddr from apscheduler.schedulers.blocking import BlockingScheduler def send_mail(recipients,content): #收件人 內容 ret=True try: msg=MIMEText(content,'plain','utf-8') msg['From']=formataddr(["每日一樂",'396961930@qq.com']) # 括號里的對應發(fā)件人郵箱昵稱、發(fā)件人郵箱賬號 msg['To']=formataddr(["",recipients]) # 括號里的對應收件人郵箱昵稱、收件人郵箱賬號 msg['Subject']="開心每一天" # 郵件的主題,也可以說是標題 server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 發(fā)件人郵箱中的SMTP服務器,端口是465 server.login('396961930@qq.com', '自己的秘鑰') # smtp秘鑰 server.sendmail('396961930@qq.com',[recipients,],msg.as_string()) # 括號中對應的是發(fā)件人郵箱賬號、收件人郵箱賬號、發(fā)送郵件 server.quit()# 關閉連接 except Exception:# 如果 try 中的語句沒有執(zhí)行,則會執(zhí)行下面的 ret=False ret=False return ret def get_lovelive_info(): ''' 從土味情話中獲取每日一句。 :return: str,土味情話 ''' print('獲取土味情話...') resp = requests.get("https://api.lovelive.tools/api/SweetNothings") if resp.status_code == 200: return resp.text + "\n" else: print('每日一句獲取失敗') return None def send(): send_mail('396961930@qq.com',get_lovelive_info()+"\t\t"+"(@Xcsg消息來自互聯網)") send_mail('768158105@qq.com',get_lovelive_info()+"\t\t"+"(@Xcsg消息來自互聯網)") send_mail('595829154@qq.com',get_lovelive_info()+"\t\t"+"(@Xcsg消息來自互聯網)") send_mail('312161486@qq.com',get_lovelive_info()+"\t\t"+"(@Xcsg消息來自互聯網)") if __name__ == "__main__": #定時任務 scheduler = BlockingScheduler() scheduler.add_job(send, 'cron', hour='7,22', minute='0') scheduler.start()
dokcerfile
FROM python:3.7 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY requirements.txt /usr/src/app/ RUN pip install -r /usr/src/app/requirements.txt RUN rm -rf /usr/src/app COPY . /usr/src/app CMD [ "python3", "./message.py"]
requirements:
apscheduler
requests
打包好運行如下:

***** 里面有時區(qū)問題坑,注意
效果如下:


浙公網安備 33010602011771號