Pyhont 收發mail的實現

2021-05-25 01:31:09 字數 1534 閱讀 9182

關於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伺服器。

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

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

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

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

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 shell沒有裝中文支援,所以在命令列無法輸出中文字元。但是結果是正確,驗證的方法有很多,最近的是可以對照當時傳送的時候,shell的輸出資訊。

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

mail的郵件收發及檢視

系統收到郵件都會儲存在 var spool mail linux使用者名稱 檔案中。在linux中輸入mail,就進行了收件箱,並顯示二十封郵件列表。此時命令提示符為 unread 標記為未讀郵件 h headers 顯示當前的郵件列表 l list 顯示當前支援的命令列表 help 顯示多個檢視郵...

python實現socket收發資料的實現

1.建立套接字 2.使用套接字收 發資料 3.關閉套接字 import socket def main 建立套接字 udp socket socket.socket socket.af inet,socket.sock dgram 繫結資訊 這裡繫結的資料是乙個元組 udp socket.bind ...

socket實現UDP收發訊息

import socket while true 建立udp套接字 udp socket socket.socket socket.af inet,socket.sock dgram 設定接收方的位址和埠 根據具體情況更改 dest addr 255.255.255.255 8080 從鍵盤輸入資料...