python中使用poplib模組接收郵件

2021-09-20 23:17:26 字數 1290 閱讀 6904

目的:用poplib模組接收郵件,並處理文字內容。

環境:windows 7 python 3.5.3

情景:伺服器一般預警都會有郵件通知,如果通知比較多且郵箱還會收到其他的郵件時,這時從中整理出預警資訊並統計的話,這個也算是乙個比較重複繁瑣的事,可以用指令碼自動收集資訊,並整理相關資訊到**內,方便檢視,這裡只記錄接收郵件,寫入**見另一篇文章(私鏈)。

使用郵件模組接收郵件需要匯入poplib,這個模組是內建的。

import poplib  

# 伺服器及使用者資訊

email = '郵箱位址'

username = '登入使用者名稱'

password = '登入密碼'

pop3_server = 'pop接收伺服器位址' 

# 根據是否加密連線到伺服器

server = poplib.pop3_ssl(pop3_server) 或server = poplib.pop3(pop3_server)

# 列印除錯資訊 

# #### debug sentence #####

server.set_debuglevel(1)

# 列印歡迎資訊  

# ##### debug sentence #####

print(server.getwelcome())

# 身份認證

server.user(username)

server.pass_(password)

# 返回乙個元組格式,郵件總數量和總大小

mail_total, total_size = server.stat()

print('messages: %s. size: %s' % (mail_total, total_size))

# 最舊的郵件標號是0,郵件數量也是最新的那封郵件的標號 返回的郵件是位元組,需要編譯成字串,中文版的windows伺服器一般是gb2312編碼。

# 編譯字串def decode_str(_str):

try:

change_str = _str.decode('gb2312')

except unicodedecodeerror:

change_str = _str.decode('utf-8')

# 獲取郵件對應內容i 表示郵件標號,獲取的郵件是乙個元組,內容分別是(狀態(+ok),郵件內容(列表),郵件大小(位元組數))。

mail = server.retr(i)[1]郵件內有一行內容是郵件的id,是唯一的,可以用來識別郵件。 

# 退出服務

server.quit()

Python郵件相關模組之poplib

pop3全稱 post office protocol version 3 即郵局協議版本3.是tcp ip協議簇中的一員,使用預設埠110.主要用於支援客戶端遠端管理伺服器上的電子郵件。利用上述的功能,就可以寫出乙個自己的簡單的收取郵件的小指令碼了。下面是我自己的163郵箱收取指令碼,僅供參考 u...

python之模組poplib之常見用法

coding cp936 python 27 xiaodeng python之模組poplib之常見用法 所以,收取郵件分兩步 第二部 用email解析原始文字,還原為郵件物件。poplib.pop3 host,port,timeout 連線pop3伺服器 poplib.pop3 ssl pop3....

和 在python中使用

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1 3 nums2 2 則中位數是 2.0 示例 2 nums1 1 2 ...