yagmail 實現發郵件,以網頁郵箱為例
yagmail 可以超簡單的來實現自動發郵件功能。
安裝
pip install yagmail
pip install keyring
pip install schedule
pip install imbox
或者
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ 包名稱 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ 包名稱
發送郵件例子
import yagmail #鏈接郵箱服務器 yag = yagmail.SMTP( user="user@126.com", password="1234", host='smtp.126.com') # 郵箱正文 contents = ['第一段內容', '第二段內容' ] # 發送郵件 yag.send('test@126.com', '郵件主題', contents) #關閉 yag.close()
給多個用戶群發送郵件
# 群發郵件、只需要將接收郵箱 變成一個list即可 yag.send(['aa@126.com','bb@qq.com','cc@gmail.com'], '群發郵件', contents)
讀取密鑰形式發送,代碼中不明文密碼(安全,推薦)
打開Python shell將賬號密碼注冊到系統(只需要操作一次)
定時任務scedule
python中有一個輕量級的定時任務調度的庫:schedule。他可以完成每分鍾,每小時,每天,周幾,特定日期的定時任務。因此十分方便我們執行一些輕量級的定時任務。
代碼如下:
import schedule import time def job(): print("I'm working...") schedule.every(10).minutes.do(job) schedule.every().hour.do(job) schedule.every().day.at("09:30").do(job) schedule.every(5).to(10).days.do(job) schedule.every().monday.do(job) schedule.every().wednesday.at("13:15").do(job) while True: schedule.run_pending() time.sleep(1)
上面的意思就是:
每隔十分鍾執行一次任務
每隔一小時執行一次任務
每天的10:30執行一次任務
每隔5到10天執行一次任務
每周一的這個時候執行一次任務
每周三13:15執行一次任務
run_pending:運行所有可以運行的任務
當然,如果函數中帶有參數怎么辦呢?
很簡單,如下所示:
import schedule import time def job(name): print("her name is : ", name) name = 'MyJob' schedule.every(10).minutes.do(job, name) schedule.every().hour.do(job, name) schedule.every().day.at("10:30").do(job, name) schedule.every(5).to(10).days.do(job, name) schedule.every().monday.do(job, name) schedule.every().wednesday.at("13:15").do(job, name) while True: schedule.run_pending() time.sleep(1)