python學習筆記 實現收發Email

2021-07-25 00:22:01 字數 1578 閱讀 9378

python學習筆記——實現收發email 

關於email的基礎知識就不說,直接進入python主題。

一 傳送email

1 連線到郵件伺服器

2 登陸(如果需要的話)

3 發出服務請求(比如傳送)

4 退出

在smtp中我們主要用到的方法是:

sendmail(from,to,msg[,mopts,ropts])   是把msg從from發給to,esmtp設定(mopts)和收件人設定(ropts)可選

quit() 關閉連線

login(user,passwd) 使用user使用者和密碼登陸到smtp伺服器。

下面舉個應用的例項:(密碼我隱藏了,(*^__^*) )

python學習筆記——實現收發email

這裡是用我的163郵箱給我的qq郵箱發了乙個郵件,郵件的內容就是在msgbody中的字元。

執行,幾秒鐘後我就收到了。

python學習筆記——實現收發email

如果我們想更簡單的寫,三句話就行。

smtplib.smtp( )

login( )

sendmail( )

只要寫對了引數,上面三個就可以了。

二,接收email

接收常用的協議是「郵局協議(pop)」和「互動式郵件訪問協議(imap)」。這裡我們用pop3作為例子。

在python中有poplib模組。接收郵件的步驟是:

1 連線伺服器

2 登陸

3 發出服務請求

4 退出

poplib中常用的方法有:

user(login)傳送使用者名稱login到伺服器

pass(passwd)傳送密碼。

stat()返回郵件的狀態。乙個長度為2的元組(msg_ct,mbox_siz),訊息的數量和訊息的總大小

list([msgnum])  stat()的擴充套件,從伺服器返回長度為3的元組(rsp,msg_list,rsp_siz):伺服器返回資訊,訊息列表,返回資訊的大小。

retr(msgnum)從伺服器中得到訊息msgnum,並設定其已讀標誌。返回乙個長度為3的元組(rsp,msglines,msgsiz):伺服器返回資訊,訊息msgnum的所有行,訊息位元組數

dele(msgnum) 把訊息msgnum標記為刪除。

quit() 登出。

下面看例子,我們就去接受剛才我們傳送的郵件。

python學習筆記——實現收發email

由於我的python shell沒有裝中文支援,所以在命令列無法輸出中文字元。但是結果是正確,驗證的方法有很多,最近的是可以對照當時傳送的時候,shell的輸出資訊。

上面兩個例子簡單實現了收發郵件的功能。其實我們可以根據這個然後加上gui的應用,自己編寫乙個郵件客戶端軟體,像foxmail一樣的,當然我們不能做到那麼強大,但是簡單的收發功能還是可以實現的,有興趣的可以試一下

python學習筆記 實現收發Email

關於email的基礎知識就不說,直接進入python主題。一 傳送email 1 連線到郵件伺服器 2 登陸 如果需要的話 3 發出服務請求 比如傳送 4 退出 在smtp中我們主要用到的方法是 sendmail from,to,msg mopts,ropts 是把msg從from發給to,esmt...

Python基礎學習筆記例項

最近在學習python,看了黑馬老師課程裡的名片管理,自己寫了一遍,感覺還比較有用。用字典存名片內容,包括名片的新增 修改 顯示全部。主函式 import crad def 無限迴圈,0退出 while true 顯示功能選單 card def.show menue action str input...

Python學習筆記實戰篇

import sys class logger object def init self,filename default.log stream sys.stdout self.terminal stream self.log open filename,a def write self,messa...