importpoplib
import
refrom email.parser import
parser
from email.header import
decode_header
from email.utils import
parseaddr
#解析訊息頭中的字串
defdecode_str(s):
value, charset =decode_header(s)[0]
ifcharset:
value =value.decode(charset)
return
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
#解析郵件的函式,首先列印收件人、發件人、標題
#然後呼叫message的walk迴圈處理郵件中的每乙個子物件(包括文字、html、附件一次或多次)##
由於網路上傳輸的郵件都是編碼以後的格式,需要在get_payload的時候指定decode=true來轉換成可輸出的編碼
#如果郵件是text或者html格式,列印格式並輸出轉碼以後的子物件內容
defprint_info(msg):
for part in
msg.walk():
filename =part.get_filename()
content_type =part.get_content_type()
charset =guess_charset(part)
iffilename:
print('
有附件內容')
else
:
#email_content_type = ''
#content = ''
#if content_type == 'text/plain':
#email_content_type = 'text'
#elif content_type == 'text/html':
#email_content_type = 'html'
ifcharset:
#content = part.get_payload().decode(charset)
content = part.get_payload(decode=true).decode(charset)
verify_code = re.findall(r'
您本次匯出的驗證碼為:([\d]+)
', content)
(verify_code)
return
verify_code
defget_sender(msg):
"""獲取發件人
:param msg:
:return:
"""#
for header in ['from', 'to', 'subject']:
#value = msg.get(header, '')
#if value:
#if header == 'subject':
#value = decode_str(value)
#else:
#hdr, addr = parseaddr(value)
#name = decode_str(addr)
#value = name + ' < ' + addr + ' > '
#print(header + ':' + value)
value = msg.get('
from
', ''
) hdr, addr =parseaddr(value)
name =decode_str(addr)
return
name
defrun():
popserver = '
imap.yeah.net
'emailuser = 郵箱號emailpasswd = 授權碼conn =poplib.pop3_ssl(popserver)
conn.user(emailuser)
conn.pass_(emailpasswd)
resp, mails, octets =conn.list()
(mails)
index =len(mails)
(index)
#取出某乙個郵件的全部資訊 postgre
for i in
range(index):
resp, lines, octets =conn.retr(index)
#郵件取出的資訊是bytes,轉換成parser支援的str
lists =
for e in
lines:
msg_content = '
\r\n
'.join(lists)
msg =parser().parsestr(msg_content)
name =get_sender(msg)
if name == '
(type(msg))
verify_code =print_info(msg)
ifverify_code:
(verify_code)
return
verify_code[0]
else
:
print("
獲取驗證碼失敗")
break
else
:
continue
#提交操作資訊並退出
conn.quit()
print(run())
雅虎郵箱內嵌聊天的幾大象徵性意義
雅虎郵箱內嵌聊天的幾大象徵性意義 前不久聽說網易的郵箱將部落格進行深度整合,於是嘗試了一番,後來聽朋友介紹有更牛的,雅虎郵箱將im進行深度整合,理論上分析後者難度會大得多,首先在im開發上就比部落格更難,然後一整合,呵呵,那就不得了了。在此列舉幾個好處和大家分享一下 一,對網易形成直接的震懾 毫無疑...
讀取XML 內容
file f new file system.getproperty user.dir file.separator src userfile.xml 定位檔案 reader new saxreader try catch documentexception e e.printstacktrace ...
讀取磁碟內容
訪問磁碟上某一具體資訊,由3部分時間組成 1.查詢時間 磁頭定位到相應柱面 磁軌 的時間,0.1s 2.等待時間 碟片旋轉到相應盤塊的時間,0.0083s 7200rpm 3.傳輸時間 資料通過系統匯流排傳到記憶體的時間,乙個位元組大概0.02us 磁碟以盤塊 block 為單位讀取資料,即每次讀入...