成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

人人都能懂的 Python 自動(dòng)發(fā)送郵件實(shí)戰(zhàn)教程

開(kāi)發(fā) 后端
下面就來(lái)講講怎么用Python構(gòu)建一個(gè)自動(dòng)發(fā)送郵件的腳本。

 自動(dòng)發(fā)送郵件能應(yīng)用于許多場(chǎng)景中,比如我想要知道股票策略中的股票池是否有實(shí)時(shí)的更新,這時(shí)候如果再拉一遍數(shù)據(jù),跑一遍腳本,實(shí)在是太浪費(fèi)時(shí)間了。為什么不把這一套流程放到服務(wù)器上,然后到點(diǎn)自動(dòng)運(yùn)行并發(fā)送郵件呢?

類(lèi)似的應(yīng)用場(chǎng)景還有很多,不僅僅是在股票策略提醒上,比如定時(shí)向某些人發(fā)送郵件;網(wǎng)站宕機(jī)了,實(shí)時(shí)發(fā)送郵件提醒;網(wǎng)站負(fù)載過(guò)高,發(fā)送郵件提醒......等等。

下面就來(lái)講講怎么用Python構(gòu)建一個(gè)自動(dòng)發(fā)送郵件的腳本。

1.開(kāi)啟SMTP服務(wù)

為了實(shí)現(xiàn)自動(dòng)發(fā)送郵件的目的,我們需要在郵箱中開(kāi)啟SMTP服務(wù):

這點(diǎn)很關(guān)鍵,別忘了去開(kāi)啟SMTP,否則郵件是無(wú)法發(fā)送成功的。然后你還需要點(diǎn)擊下面生成授權(quán)碼,這個(gè)授權(quán)碼才是使用Python發(fā)送郵件時(shí)的真正密碼。

郵箱設(shè)定成功后,就可以開(kāi)始腳本開(kāi)發(fā)了。

2.準(zhǔn)備

開(kāi)始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

(可選1) 如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

(可選2) 此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點(diǎn):Python 編程的最好搭檔—VSCode 詳細(xì)指南。

請(qǐng)選擇以下任一種方式輸入命令安裝依賴(lài):

1. Windows 環(huán)境 打開(kāi) Cmd (開(kāi)始-運(yùn)行-CMD)。

2. MacOS 環(huán)境 打開(kāi) Terminal (command+空格輸入Terminal)。

3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.

  1. pip install yagmail 

看到 Successfully installed xxx 則說(shuō)明安裝成功。本文全部源代碼可在后臺(tái)回復(fù):自動(dòng)發(fā)送郵件 獲得。

3.編寫(xiě)腳本

今天需要用到的模塊是yagmail,一個(gè)非常方便的Python郵件發(fā)送模塊,用這個(gè)模塊,你甚至能一行命令發(fā)送郵件: 

  1. yag = yagmail.SMTP(  
  2.     host='smtp.qq.com'user='你的郵箱' 
  3.     password='你的鑒權(quán)碼'smtp_ssl=True  
  4. ).send(["發(fā)送對(duì)象"], "主題", "內(nèi)容") 

為了讓這個(gè)發(fā)送郵件的方法更加具備可用性,我們將其封裝到一個(gè)類(lèi)中: 

  1. import time  
  2. import yagmail  
  3. class Mail:  
  4.     """  
  5.     郵件相關(guān)類(lèi)  
  6.     """  
  7.     def sendmail(self, msg, title, receivers):  
  8.         """  
  9.         發(fā)送郵件      
  10.          Arguments:  
  11.             msg {str} -- 郵件正文  
  12.             title {str} -- 郵件標(biāo)題  
  13.             receivers {list} -- 郵件接收者,數(shù)組  
  14.         """  
  15.         yag = yagmail.SMTP(  
  16.             host='smtp.qq.com'user='你的郵箱' 
  17.             password='你的鑒權(quán)碼'smtp_ssl=True  
  18.         )  
  19.         try: 
  20.              yag.send(receivers, title, msg)  
  21.             print("郵件發(fā)送成功")   
  22.         except BaseException as e:  
  23.             print(e)  
  24.             print("Error: 無(wú)法發(fā)送郵件") 

這個(gè)類(lèi)里還可以封裝很多其他東西,比如log函數(shù),用于顯示時(shí)間: 

  1. import time  
  2. import yagmail  
  3. class Mail:  
  4.     """  
  5.     郵件相關(guān)類(lèi)  
  6.     """  
  7.     def log(self, content):  
  8.         now_time = time.strftime(  
  9.             "%Y-%m-%d %H:%M:%S", time.localtime()  
  10.         )  
  11.         print(f'{now_time}: {content}') 

這樣,需要顯示時(shí)間的時(shí)候只需要調(diào)用self.log即可,優(yōu)化后的完整代碼如下: 

  1. import time  
  2. import yagmail  
  3. class Mail:  
  4.     """  
  5.     郵件相關(guān)類(lèi)  
  6.     """  
  7.     def log(self, content):  
  8.         now_time = time.strftime(  
  9.             "%Y-%m-%d %H:%M:%S", time.localtime()  
  10.         )  
  11.         print(f'{now_time}: {content}')   
  12.     def sendmail(self, msg, title, receivers):  
  13.         """  
  14.         發(fā)送郵件       
  15.          Arguments:  
  16.             msg {str} -- 郵件正文  
  17.             title {str} -- 郵件標(biāo)題  
  18.             receivers {list} -- 郵件接收者,數(shù)組  
  19.         """  
  20.         yag = yagmail.SMTP(  
  21.             host='smtp.qq.com'user='你的郵箱' 
  22.             password='你的鑒權(quán)碼'smtp_ssl=True  
  23.         )  
  24.         try:  
  25.             yag.send(receivers, title, msg)  
  26.             self.log("郵件發(fā)送成功")    
  27.         except BaseException as e:  
  28.             print (e)  
  29.             self.log("Error: 無(wú)法發(fā)送郵件") 

發(fā)送成功時(shí)顯示: 

  1. # PS D:\CODE\stock\api> python .\sendmail_yagmail.py  
  2. 2021-06-21 00:00:00: 郵件發(fā)送成功 

4.小例子

將剛剛編寫(xiě)完的類(lèi)保存為sendmail.py,接下來(lái)就可以嘗試一個(gè)小例子。我們用一個(gè)自動(dòng)監(jiān)控網(wǎng)站是否宕機(jī)的小腳本做示例: 

  1. import time  
  2. import requests  
  3. from sendmail import Mail  
  4. while True:  
  5.     response = requests.get('https://pythondict.com')  
  6.     # 根據(jù)狀態(tài)碼判斷網(wǎng)站是否正常  
  7.     if response.status_code != 200:  
  8.         Mail().sendmail(  
  9.             '哥, pythondict掛了', 'Python實(shí)用寶典網(wǎng)站異常監(jiān)控', ['你的郵箱']  
  10.         )  
  11.     time.sleep(600) 

通過(guò) requests.get 請(qǐng)求網(wǎng)站,使用 response.status_code 得到狀態(tài)碼,200 為正常,其他情況均為異常。這個(gè)檢測(cè)每十分鐘運(yùn)行一次,因此 time.sleep(600) .

就這樣,我們構(gòu)建起了一個(gè)非常簡(jiǎn)單的網(wǎng)站異常監(jiān)控腳本,如果你真的要在服務(wù)器上運(yùn)行這個(gè)腳本,請(qǐng)記得使用 nohup 讓其在后臺(tái)運(yùn)行:

  1. nohup python test.py & 

我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實(shí)戰(zhàn)教程,請(qǐng)持續(xù)關(guān)注我們!。 

 

責(zé)任編輯:龐桂玉 來(lái)源: 菜鳥(niǎo)學(xué)Python
相關(guān)推薦

2020-05-19 14:00:09

人工智能機(jī)器學(xué)習(xí)AI

2021-03-18 11:45:49

人工智能機(jī)器學(xué)習(xí)算法

2021-09-27 13:50:13

Python裝飾器函數(shù)

2023-12-06 11:10:08

2012-05-14 14:35:41

2021-06-11 06:54:34

程序郵件Django

2017-04-26 09:00:23

Python發(fā)送郵件腳本

2025-04-11 08:25:36

2013-09-02 15:26:44

.NET開(kāi)發(fā)郵件系統(tǒng).Net

2022-01-28 15:04:57

Python日志郵件

2020-07-14 09:58:01

Python開(kāi)發(fā)工具

2018-05-06 15:51:22

2022-09-02 15:08:02

Python郵件發(fā)送

2021-02-18 07:20:51

Nodejs前端開(kāi)發(fā)

2020-11-05 09:01:41

冒泡排序

2022-08-16 21:01:56

runAsyncreload數(shù)據(jù)

2017-09-11 09:44:24

機(jī)器學(xué)習(xí)自動(dòng)化AML

2021-07-30 16:34:31

前端Nodejs開(kāi)發(fā)

2013-08-02 13:25:00

2024-11-15 07:00:00

Python發(fā)送郵件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人小视频在线免费观看 | 精品亚洲一区二区 | 毛片网在线观看 | 欧美日日 | 日韩视频在线观看 | 免费精品久久久久久中文字幕 | 亚洲91精品| 中文字幕国产视频 | 亚洲在线一区二区三区 | 成人免费看片又大又黄 | 国产精品久久国产精品久久 | 性一交一乱一透一a级 | www.久久久久久久久久久 | 亚洲欧洲成人av每日更新 | 免费在线观看av片 | av片在线播放 | 男女视频在线观看免费 | 国产精品污www一区二区三区 | 国产精品久久久久久av公交车 | 在线观看国产视频 | 中文在线a在线 | 狠狠操在线| 亚洲欧美视频在线观看 | 在线观看成年视频 | 亚洲欧洲精品一区 | 91色在线视频 | 瑟瑟视频在线看 | 久久这里有精品 | 国产在线激情视频 | 成人h视频在线观看 | 亚洲第一视频网站 | 无码一区二区三区视频 | 日日干日日操 | 日韩免费网站 | 日p视频免费看 | av免费看在线 | 欧美一区二区在线观看 | 成人亚洲综合 | 欧美日韩视频 | 欧美成年网站 | 国产线视频精品免费观看视频 |