python 獲取收件箱的具體資訊

2021-09-11 23:14:57 字數 2321 閱讀 7083

**(

通過郵件的使用者資訊和收件箱伺服器資訊 可以獲取到收件箱的所有資訊

import datetime

import email

import imaplib

def readmail(i, data, mail):

rangelist = list(range(i))

for x in rangelist:

try:

latest_email_uid = data[0].split()[x] # 最新的郵箱uid

print("最新的uid:{}".format(latest_email_uid))

result, email_data = mail.uid('fetch', latest_email_uid, '(rfc822)')

raw_email = email_data[0][1] # bytes型別 郵件的所有內容

raw_email_string = raw_email.decode('utf-8') # 轉換成utf-8

email_message = email.message_from_string(raw_email_string) # 郵箱的所有內容

# header details

date_tuple = email.utils.parsedate_tz(email_message['date']) # 獲取郵箱的收到郵件時間

if date_tuple:

local_date = datetime.datetime.fromtimestamp(email.utils.mktime_tz(date_tuple)) # 2018-10-22 14:55:02

local_message_date = "%s" % (str(local_date.strftime("%a, %d %b %y %h:%m:%s"))) # mon, 22 oct 2018 14:55:02

email_from = str(email.header.make_header(email.header.decode_header(email_message['from']))) # 發件人

email_to = str(email.header.make_header(email.header.decode_header(email_message['to']))) # 收件人

subject = str(email.header.make_header(email.header.decode_header(email_message['subject']))) # 郵件主題

print(subject)

# 郵件的文字內容

for part in email_message.walk():

if part.get_content_type() == "text/plain":

body = part.get_payload(decode=true) # bytes型別

text = body.decode("utf-8") # 轉換成 utf-8型別

print(text)

except exception as e:

# 可能發生錯誤 重新遍歷取出

continue

def logginmail(email_account, password, imapserver):

mail = imaplib.imap4_ssl(imapserver) # 鏈結郵箱伺服器

mail.login(email_account, password) # 登入郵箱

mail.list() # 郵箱列表

mail.select('inbox') # 選擇收件箱

result, data = mail.uid('search', none, "all") # (all/unseen) # 檢視郵箱列表

if result == "ok":

i = len(data[0].split()) # 收到的郵箱個數

readmail(i, data, mail)

else:

print("獲取郵箱列表失敗:{}:{}".format(email_account, password))

if __name__ == '__main__':

imapserver = "" # 收件箱伺服器 imap.gmail.com

email_account = "" # 郵箱位址賬號

password = "" # 郵箱密碼

logginmail(email_account, password, imapserver)

windows mobile上開啟收件箱

shellexecuteinfo si memset si,0,sizeof si si.cbsize sizeof si si.hwnd m hwnd si.lpdirectory l windows si.lpfile l windows tmail.exe si.lpparameters l ...

Outlook 收件箱下子資料夾設定郵件提醒

outlook 有個很玄的郵件提醒功能,但剛剛參加工作的同學都會遇到乙個問題 如果在收件箱下設定了子資料夾,那麼被移到資料夾下的郵件就不再有桌面提醒功能了.有人說這是outlook的bug,也有人說是其設計的缺陷,其實這只是outlook的預設設定.既然說是預設設定,那就有不預設的方法.原理很簡單,...

Outlook 收件箱下子資料夾設定郵件提醒

outlook 有個很玄的郵件提醒功能,但剛剛參加工作的同學都會遇到乙個問題 如果在收件箱下設定了子資料夾,那麼被移到資料夾下的郵件就不再有桌面提醒功能了.有人說這是outlook的bug,也有人說是其設計的缺陷,其實這只是outlook的預設設定.既然說是預設設定,那就有不預設的方法.原理很簡單,...