python 獲取阿里雲郵箱的subject

2021-10-08 11:34:22 字數 2353 閱讀 1044

因工作需要,要統計郵箱報警資訊,不需要檢視正文,subject中包含報警資訊。

#!/usr/bin/env python3

# -*- coding: utf-8 -*-

from email.parser import parser

from email.header import decode_header

from email.utils import parseaddr

import poplib

defdecode_str

(s):

value, charset = decode_header(s)[0

]if charset:

value = value.decode(charset)

return value

defget_header

(msg)

:for header in

['from'

,'to'

,'subject']:

value = msg.get(header,'')

if value:

if header ==

'subject'

: value = decode_str(value)

elif header in

['from'

,'to'

]:

hdr, addr = parseaddr(value)

name = decode_str(addr)

#value = name + ' < ' + addr + ' > '

value=name

print

(header +

':'+ value)

#頭部資訊已取出

#獲取郵件的字元編碼,首先在message中尋找編碼,如果沒有,就在header的content-type中尋找

defguess_charset

(msg)

: charset = msg.get_charset(

)if charset is

none

: content_type = msg.get(

'content-type',''

).lower(

) pos = content_type.find(

'charset='

)if pos >=0:

charset = content_type[pos+8:

].strip(

)return charset

if __name__ ==

'__main__'

: from_email =

"***[email protected]"

from_email_pwd =

"******"

pop_server =

"pop.qiye.aliyun.com"

server = poplib.pop3(pop_server)

server.set_debuglevel(1)

#設定例項的除錯級別。這控制列印的除錯輸出量。預設值0不產生除錯輸出。值1產生適量的除錯輸出,通常每個請求都有一行。值2或更高會產生最大除錯輸出量,記錄在控制連線上傳送和接收的每行。

print

(server.getwelcome(

).decode(

"utf-8"))

#歡迎資訊

# 登入

server.user(from_email)

server.pass_(from_email_pwd)

resp, mails, octets = server.

list()

# 返回郵件數量和每個郵件的大小

for i in

range(1

,100):

resp, lines, octets = server.retr(i)

# 返回由引數標識的郵件的全部文字

#print(lines)

#print(mails)

msg_content = b"\r\n"

.join(lines)

.decode(

"utf-8"

,"ignore"

)# byte字串

msg = parser(

).parsestr(msg_content)

# 解析為普通字串

get_header(msg)

server.quit(

)

執行後的內容,複製放入linux,進行過濾報警資訊。

python雲計算服務 阿里雲python 雲計算

阿里雲python 雲計算 雲伺服器 elastic compute service,簡稱ecs 是阿里雲提供的效能卓越 穩定可靠 彈性擴充套件的iaas infrastructure as a service 級別雲計算服務。雲伺服器ecs免去了您採購it硬體的前期準備,讓您像使用水 電 天然氣等...

阿里雲k8s事件監控

事件監控是kubernetes中的另一種監控方式,可以彌補資源監控在實時性 準確性和場景上的缺欠。kubernetes的架構設計是基於狀態機的,不同的狀態之間進行轉換則會生成相應的事件,正常的狀態之間轉換會生成normal等級的事件,正常狀態與異常狀態之間的轉換會生成warning等級的事件。開發者...

阿里雲獲取免費的https證書ssl

把 公升級成https的時候,需要用到ssl證書,很多的ssl證書都是要錢的。如果你的資金不是很充裕的話,阿里雲免費的ssl證書將會是你很好的選擇。這篇部落格,就是講解怎麼去獲取阿里雲免費證書ssl 說明 1 一定要先考慮好自己的 是否值得,或著可以公升級為https。不然可能就像我這樣忙活了大半天...