目的:用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 ...