Python管理郵件的接收

2021-10-20 10:42:01 字數 3077 閱讀 3842

既然可以傳送郵件,就一定可以接收郵件,這兩者是相互的。接收郵件,這裡介紹 zmail 庫,安裝命令:

pip install zmail
zmail 支援郵件的傳送和接收,操作的型別是字典。

接收郵件,同樣是先初始化,如下**:

import zmail

server = zmail.server(

'[email protected]','*************'

)

這裡的 server 類似於乙個郵箱客戶端,可以通過 server 來取郵箱中收到的郵件,例如:

mail = server.get_latest(

)

這是獲取郵箱中最後乙個郵件,也就是最新的郵件。

mail 變數裡面放著一封郵件,如何檢視郵件內容?

使用如下**:

zmail.show(mail)
展示郵件的全部內容,輸出如下:

-------------------------

id 134

from ai悅創 <[email protected]>

to [email protected]

date 2021-02-25 09:56:04+00:00

content_text [

]content_html [

]attachments

如果你直接輸出 mail 的內容,如下截圖:

這裡的展示更明顯,而且內容更直觀,有大括號,是列**式。既然是字典格式,取出單個內容,就可以用字典的取值方式,如下:

print(mail[

'subject'

], mail[

'from'

], mail[

'date'

], sep=

'\n')''

' 下面是輸出內容

ai悅創 <[email protected]>

2021-02-25 09:56:04+00:00

'''

讀取了郵件的標題、傳送者、傳送時間這三個資訊。

下面來展示下郵件物件,所有的鍵,如下**:

tmail = server.get_mail(1)

for m in tmail:

print(m)

''' 下面是輸出

content_text # 文字內容

content_html # html格式內容

attachments # 附件

headers # 頭部資訊,字典格式

raw_headers # 頭部資訊,列表中巢狀元組格式

charsets # 文字編碼

subject # 郵件標題

date # 傳送日期

from # 傳送者

to # 接受者

id # id值,代表第幾封郵件

raw # 頭部資訊,列表中巢狀位元組字串格式

'''

接收郵件,可以一封一封的接收,還可以按標題、日期、傳送者等資訊過濾並接收,下面展示一下按標題資訊過濾並接收一批郵件,如下**:

tmails = server.get_mails(subject=

'測試郵件的標題'

)len(tmails)

for t in tmails:

print(t[

'subject'

], t[

'from'])

'''19測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題 "[email protected]" <[email protected]>

測試郵件的標題【無html】 "[email protected]" <[email protected]>

測試郵件的標題【有html】 "[email protected]" <[email protected]>

'''

首先是 get_emails 函式,這是獲取一批郵件,函式中指定郵件標題 subject,必須包含了「測試郵件的標題」字段。

得到的郵件列表,存放在 tmails 變數中,一共有 19 封郵件。

然後迴圈取出每個郵件的標題和發信人,就得到一大串的資訊輸出。

python3接收 解析郵件

python3可以使用poplib.pop3進行郵件接收,具體如下 import poplib from email.parser import parser def get email email,password,host mail.163.com connect to pop3 server ...

jmail 接收郵件

jmail 接收郵件 如下 using system using system.data using system.configuration using system.collections using system.web using system.web.security using syst...

python 新浪的郵件的傳送與接收

from smtplib import smtp from poplib import pop3 from time import sleep print smpt傳送郵件和pop3收郵件 smtpsvr smtp.sina.com smtp傳送協議 pop3svr pop3.sina.com po...