最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python辦公自動化之讀取本地OUTLOOK客戶端郵件

 更新時間:2023年10月24日 08:37:43   作者:ryanlll3  
這篇文章主要為大家詳細介紹了如何使用python實現(xiàn)讀取本地OUTLOOK客戶端郵件,文中的示例代碼講解詳細,具有一定的參考價值,需要的小伙伴可以了解下

本方法適用于POP服務器不可用,管理員沒有賦予開啟權(quán)限的情況。你只能讀取本地客戶端的郵件,否則建議直接開發(fā)python程序自動登錄服務器,讀取郵件。

安裝依賴包

python -m pip install pypiwin32

讀取郵件

#!/usr/bin/python
# _*_ coding:utf-8 _*_
 
from win32com.client.gencache import EnsureDispatch as Dispatch
 
# 固定寫法
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
# 根級目錄(郵箱名稱,包括Outlook讀取的存檔名稱)
Accounts = outlook.Folders
for Account_Name in Accounts:
    print('>> 正在查詢的帳戶名稱:{}'.format(Account_Name.Name))
    # 一級目錄集合(與inbox同級)['收件箱', '發(fā)件箱', '已發(fā)送', 'xxx', 'xxx']
    Level_1_Names = Account_Name.Folders
    for Level_1_Name in Level_1_Names:
        print('- 正在查詢一級目錄:{}'.format(Level_1_Name.Name))
        # 一級文件夾的mail合集[所有郵件對象]
        Mail_1_Messages = Level_1_Name.Items
        # 將郵件按接收時間排序
        Mail_1_Messages.Sort("[ReceivedTime]", True)
        # 開始查看單個郵件的信息
        for xx in Mail_1_Messages:
            Root_Directory_Name_1 = Account_Name.Name  # 記錄根目錄名稱
            Level_1_FolderName_1 = Level_1_Name.Name  # 記錄一級目錄名稱
            Level_2_FolderName_1 = ''  # 一級目錄肯定沒有二級目錄,顧留為空
            # 接收時間
            if hasattr(xx, 'ReceivedTime'):
                ReceivedTime_1 = str(xx.ReceivedTime)[:-6]
            else:
                ReceivedTime_1 = ''
            # 發(fā)件人
            if hasattr(xx, 'SenderName'):
                SenderName_1 = xx.SenderName
            else:
                SenderName_1 = ''
            # 收件人
            if hasattr(xx, 'To'):
                to_to_1 = xx.To
            else:
                to_to_1 = ''
            # 抄送人
            if hasattr(xx, 'CC'):
                cc_cc_1 = xx.CC
            else:
                cc_cc_1 = ''
            # 主題
            if hasattr(xx, 'Subject'):
                Subject_1 = xx.Subject
            else:
                Subject_1 = ''
            # 郵件MessageID
            if hasattr(xx, 'EntryID'):
                MessageID_1 = xx.EntryID
            else:
                MessageID_1 = ''
            # 會話主題
            if hasattr(xx, 'ConversationTopic'):
                ConversationTopic_1 = xx.ConversationTopic
            else:
                ConversationTopic_1 = ''
            # 會話ID
            if hasattr(xx, 'ConversationID'):
                ConversationID_1 = xx.ConversationID
            else:
                ConversationID_1 = ''
            # 會話記錄相對位置
            if hasattr(xx, 'ConversationIndex'):
                ConversationIndex_1 = xx.ConversationIndex
            else:
                ConversationIndex_1 = ''
            # 郵件內(nèi)容
            if hasattr(xx, 'Body'):
                EmailBody_1 = xx.Body
            else:
                EmailBody_1 = ''
 
        # 判斷當前查詢的一級郵件目錄是否有二級目錄(若有多級目錄,可以參考此段代碼)
        if Level_1_Name.Folders:
            # 二級目錄的集合
            Level_2_Names = Level_1_Name.Folders
            for Level_2_Name in Level_2_Names:
                print(' - - 正在查詢二級目錄:' , Level_1_Name.Name , '//' , Level_2_Name.Name)
                # 二級目錄的郵件集合
                Mail_2_Messages = Level_2_Name.Items
                # 開始查看單個郵件的信息
                for yy in Mail_2_Messages:
                    # 記錄根目錄名稱
                    Root_Directory_Name_2 = Account_Name.Name
                    # 記錄一級目錄名稱
                    Level_1_FolderName_2 = Level_1_Name.Name
                    # 記錄二級目錄名稱
                    Level_2_FolderName_2 = Level_2_Name.Name
                    # 接收時間
                    if hasattr(yy, 'ReceivedTime'):
                        ReceivedTime_2 = str(yy.ReceivedTime)[:-6]
                    else:
                        ReceivedTime_2 = ''
                    # 發(fā)件人
                    if hasattr(yy, 'SenderName'):
                        SenderName_2 = yy.SenderName
                    else:
                        SenderName_2 = ''
                    # 收件人
                    if hasattr(yy, 'To'):
                        to_to_2 = yy.To
                    else:
                        to_to_2 = ''
                    # 抄送人
                    if hasattr(yy, 'CC'):
                        cc_cc_2 = yy.CC
                    else:
                        cc_cc_2 = ''
                    # 主題
                    if hasattr(yy, 'Subject'):
                        Subject_2 = yy.Subject
                    else:
                        Subject_2 = ''
                    # 郵件MessageID
                    if hasattr(yy, 'EntryID'):
                        MessageID_2 = yy.EntryID
                    else:
                        MessageID_2 = ''
                    # 會話主題
                    if hasattr(yy, 'ConversationTopic'):
                        ConversationTopic_2 = yy.ConversationTopic
                    else:
                        ConversationTopic_2 = ''
                    # 會話ID
                    if hasattr(yy, 'ConversationID'):
                        ConversationID_2 = yy.ConversationID
                    else:
                        ConversationID_2 = ''
                    # 會話記錄相對位置
                    if hasattr(yy, 'ConversationIndex'):
                        ConversationIndex_2 = yy.ConversationIndex
                    else:
                        ConversationIndex_2 = ''
                    # 郵件正文內(nèi)容
                    if hasattr(yy, 'Body'):
                        EmailBody_2 = yy.Body
                    else:
                        EmailBody_2 = ''
        else:
            pass

保存附件

from win32com.client.gencache import EnsureDispatch as Dispatch
 
# 獲取收件箱目錄(數(shù)字6代表收件箱)
outlook_accounts = Dispatch('Outlook.Application').GetNamespace('MAPI').GetDefaultFolder(6)
# 收件箱下所有郵件
mails = outlook_accounts.Items
# 郵件按時間排序
mail.Sort('[ReceivedTime]', True)
# 獲取第6封郵件的所有附件(下標從1開始)
atts = mails.Item(6)Attachments
# 第6封郵件附件數(shù)量
atts_num = atts.Count
# 遍歷附件對象
for att in atts:
    print('att_name: {}'.format(att.FileName))
    # 將附件存入D盤
    att.SaveAsFile('D:\{}'.format(att.FileName))

到此這篇關(guān)于python辦公自動化之讀取本地OUTLOOK客戶端郵件的文章就介紹到這了,更多相關(guān)python讀取本地郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用OpenCV對車道進行實時檢測的實現(xiàn)示例代碼

    使用OpenCV對車道進行實時檢測的實現(xiàn)示例代碼

    這篇文章主要介紹了使用OpenCV對車道進行實時檢測的實現(xiàn)示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Python docutils文檔編譯過程方法解析

    Python docutils文檔編譯過程方法解析

    這篇文章主要介紹了Python docutils文檔編譯過程方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • Python組合數(shù)據(jù)類型詳解

    Python組合數(shù)據(jù)類型詳解

    這篇文章主要介紹了Python組合數(shù)據(jù)類型詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • python logging 日志輪轉(zhuǎn)文件不刪除問題的解決方法

    python logging 日志輪轉(zhuǎn)文件不刪除問題的解決方法

    最近在維護項目的python項目代碼,項目使用了 python 的日志模塊 logging, 設定了保存的日志數(shù)目, 不過沒有生效,還要通過contab定時清理數(shù)據(jù)
    2016-08-08
  • Python Pandas中合并數(shù)據(jù)的5個函數(shù)使用詳解

    Python Pandas中合并數(shù)據(jù)的5個函數(shù)使用詳解

    數(shù)據(jù)合并是數(shù)據(jù)處理過程中的必經(jīng)環(huán)節(jié),pandas作為數(shù)據(jù)分析的利器,提供了五種常用的數(shù)據(jù)合并方式,讓我們看看如何使用這些方法吧!
    2022-05-05
  • 最新評論

    张掖市| 曲沃县| 浦江县| 资源县| 南京市| 广河县| 滨州市| 于田县| 贺州市| 台北市| 苏尼特右旗| 会宁县| 武宣县| 同心县| 五峰| 长汀县| 新乐市| 蕉岭县| 连云港市| 巴中市| 景泰县| 富阳市| 红桥区| 宣武区| 西平县| 衡南县| 和田县| 咸阳市| 铜川市| 扬中市| 呼图壁县| 项城市| 安义县| 乐平市| 龙泉市| 达日县| 竹山县| 峡江县| 泗水县| 霍州市| 渭源县|