成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Python自動化管理Exchange郵箱

開發 后端 自動化
在IT運維中,可以基于我們以上的知識點來獲取指定類型郵件,提取郵件關鍵信息進行自動處理或者匯總起來以郵件報告的形式自動發送出來以供查看。這些都是非常好的自動化應該場景。在日常辦公中,也可以基于我們針對會議日程的知識點來實現自動化處理會議邀請郵件,定期刪除或者存檔日歷信息等操作。

Python是一種解釋型、交互式、面向對象的編程語言,不但簡單、開源、可移植,而且擁有豐富的Python官方和第三方類庫。這些類庫的底層代碼不一定都是Python,還有很多C/C++的身影。通過C/C++語言實現的代碼可以在Python中被調用。所以Python也被稱為“膠水語言”?;赑ython的強大類庫,我們可以實現諸如Web開發,自動化管理,數據分析,機器學習等各種功能。今天我要介紹的是如何借助Python的Exchangelib庫輕松實現Exchange郵箱的自動化管理。重點介紹郵箱中的郵件數據和會議日程\日歷的在Python中的自動化管理操作。

Exchange是微軟的企業級郵件服務系統,本地Exchange版本目前最新的是Exchange2019。隨著云服務的不斷發展,用戶群體也越來越龐大。很多用戶轉而使用Exchange Online服務或者將本地Exchange與Exchange Online進行混合部署。本文的實現代碼和案例對本地的Exchange和Exchange Online郵箱都是適用的。

Exchangelib是一個強大的Exchange客戶端Python庫。它實現了Exchange郵箱的對象關系映射。 Exchangelib庫對郵箱的管理操作是通過EWS (Exchange Web Service) 來實現的。EWS是Exchange郵箱的接口服務。EWS集成了原來WebDAV和CODEX的功能,基于SOAP協議。這使它可以被發送HTTPS請求的任何操作系統遠程訪問。EWS是非常高效的Exchange資源訪問接口。

在開始之前,我們首先在CMD中運行命令pip來安裝Exchangelib庫(pip是Python的包管理工具):pip install exchangelib。

接下來導入exchangelib和datetime等類庫: 

  1. from exchangelib import Message,Credentials,Account,HTMLBody,Mailbox  
  2. from exchangelib import EWSTimeZone,EWSDateTime  
  3. import datetime as dt 

1.1郵件發送的實現如下: 

  1. #將郵箱的帳號和密碼等信息賦值給account  
  2. credentials = Credentials("","" 
  3. account = Account(',credentials=credentials,autodiscover=True 
  4. #html中包含的是HTML格式的郵件內容  
  5. html = 'Hello World!'  
  6. #在message中配置帳號 郵件標題 內容 收件人等信息  
  7. message = Message(  
  8. account=account,  
  9. subject="For Test" 
  10. body=HTMLBody(html),  
  11. to_recipients=('',),  
  12.  
  13. #發送郵件  
  14. message.send() 

1.2郵件獲取的實現如下: 

  1. #獲取本地時區  
  2. tz = EWSTimeZone.localzone()  
  3. #獲取某一時間段內的郵件內容;比如獲取日期為3/27/2021的所有郵件。首先指定時區,然后創建時區相關的時間日期類實例。如果郵件位于收件箱Inbox的子文件夾中,可以如下所示將替換為子文件夾的名字 
  4.  items = (account.inbox/'').all().filter(datetime_received__range=(  
  5. dt.datetime(2021, 3, 27, 0, 0, 0, 0, tz),  
  6. dt.datetime(2021, 3, 27, 23, 59, 59, 0, tz)  
  7. ))  
  8. 如果想取前100封郵件,可以使用如下命令:  
  9. items = (account.inbox/'Reports').all().order_by('-datetime_received')[0:100] 

1.3郵件轉發的實現如下:

  1. items[0].forward(subject='FWD:%s'%items[0].subject, body=Items[0].body, to_recipients=('',)) 

1.4郵件刪除的實現如下: 

  1. items[0].delete()#完全刪除  
  2. items[0].soft_delete()#軟刪除 可恢復  
  3. to_folder = account.root/'Top of Information Store'/'Deleted Items'  
  4. items[0].move(to_folder)#移動到已刪除文件夾 

通過以上的學習,我們知道了通過Python操作Exchange郵箱的基本方法。下面舉一個簡單的自動化管理郵箱的例子:比如實現對特定種類的郵件進行自動回復。 

  1. #獲取最近一天的未讀郵件  
  2. today = dt.datetime.today()  
  3. day = dt.timedelta(days=1)  
  4. from_date = today - day  
  5. tz = EWSTimeZone.localzone()  
  6. tz_time = from_date.replace(tzinfo=tz)  
  7. items = account.inbox.filter(is_read=False, datetime_received__gte=tz_time)  
  8. #針對包含指定標題內容來自指定用戶的郵件進行自動回復。比如自動批示等等。  
  9. Filter_items = items.filter(subject__contains='xxx', sender='XXX@XXX.com' 
  10. for item in Filter_items:  
  11. Items[0].reply_all(  
  12. subject='’,  
  13. body='xxx'  

通過Python不但可以對郵件數據進行自動化操作,還可以對日歷,任務,聯系人等進行管理。接下來我們來看一下通過Python如何對郵箱中的會議日程\日歷進行自動化管理。首先我們導入Exchangelib中的日歷相關模塊。CalendarItem類允許您發送您發起的會議請求或取消之前已經安排的會議。還可以處理接收到的MeetingRequest消息。您可以使用AcceptItem、TentativelyAcceptItem和DeclineItem類答復這些消息。 

  1. from exchangelib import CalendarItem  
  2. from exchangelib.items import MeetingRequest, MeetingCancellation,SEND_TO_ALL_AND_SAVE_COPY 

2.1會議日程創建的實現如下: 

  1. # EWSTimeZone.localzone()用來獲取本地的時區信息 便于將日期轉換成本地時區的日期  
  2. tz = EWSTimeZone.localzone()  
  3. # CalenderItem用來準備會議日程的信息:比如開始時間和結束時間,主題,會議邀請正文,參會人等等  
  4. item = CalendarItem(  
  5. account=account,  
  6. folder=account.calendar,  
  7. start=dt.datetime(2021, 4, 15, 11, 0, 0, 0, tz),  
  8. end=dt.datetime(2021, 4, 15, 12, 0, 0, 0, tz),  
  9. subject="For Test" 
  10. body="meeting test" 
  11. required_attendees=['xxx@xxx.com,'xxx@xxx.com']  
  12.  
  13. # item.save()用來發送會議邀請郵件  
  14. item.save(send_meeting_invitations=SEND_TO_ALL_AND_SAVE_COPY) 

2.1會議日程獲取的實現如下: 

  1. # 比如我們要獲取某一天內的所有會議日程  
  2. calendars = account.calendar.all().filter(datetime_received__range=(  
  3. dt.datetime(2021, 4, 14, 23, 59, 59, 0, tz),  
  4. dt.datetime(2021, 4, 15, 23, 59, 59, 0, tz)  
  5. ))  
  6. # 將會議日程的標題打印輸出并查看  
  7. for calendar in calendars:  
  8. print(calendar.subject) 

2.2會議日程取消的實現如下:

# 取消郵件標題為'For Test'的會議日程。取消命令為“calendar.cancel()”。calendar.subject.find()用來進行關鍵字查找,用于查找對應的郵件項。 

  1. for calendar in calendars:  
  2. if calendar.organizer.email_address == account.primary_smtp_address and calendar.subject.find('For Test') >= 0:  
  3. calendar.cancel() 

2.2自動接收會議邀請的實現如下:

# 通過對收件箱郵件的過濾,得到會議邀請郵件。然后針對該類型郵件可以按照如下操作接受會議邀請,拒絕會議邀請,暫時接受會議邀請。Body中可以我定義回復的郵件正文內容。 

  1. for item in items:  
  2. if isinstance(item,MeetingRequest):  
  3. item.accept(body="Accpeted")#接受會議邀請  
  4. item.decline(body="sorry, I have no time")#拒絕會議邀請  
  5. item.tentatively_accept(body="I'll join if I'm free at that time")#暫時接受會議邀請 

實際上Exchange郵箱里的數據,不管是日歷還是郵件都是基于文件夾結構的。我們可以通過命令”print(account.root.tree())”來查看郵箱的目錄結構。

通過對以上的介紹,相信大家已經能夠掌握基于Python的郵箱和日歷的基本操作方法。在實際的自動化應用中,我們可以基于不同需求來進行定向開發?;诓煌臈l件自動化處理相應的數據。

在IT運維中,可以基于我們以上的知識點來獲取指定類型郵件,提取郵件關鍵信息進行自動處理或者匯總起來以郵件報告的形式自動發送出來以供查看。這些都是非常好的自動化應該場景。在日常辦公中,也可以基于我們針對會議日程的知識點來實現自動化處理會議邀請郵件,定期刪除或者存檔日歷信息等操作。

責任編輯:未麗燕 來源: 51CTO
相關推薦

2022-07-05 08:26:10

Python報表自動化郵箱

2025-02-06 14:59:08

2015-10-21 15:08:25

電纜自動化

2024-11-21 15:24:49

2010-12-06 09:59:58

2021-04-17 23:10:59

Python微軟Word

2017-12-17 21:58:18

2013-03-22 15:15:28

自動化管理部署虛擬化

2022-03-30 09:43:19

jscodeshif自動化重構開發

2009-09-07 09:29:26

2019-04-17 07:59:09

Puppet自動化集群管理

2009-05-19 15:48:43

2025-01-02 08:00:39

2018-02-10 18:35:09

LinuxAnsible系統管理

2010-12-24 14:46:31

Perl腳本

2024-09-13 15:32:18

2012-02-09 13:31:03

HibernateJava

2009-12-15 17:43:04

Ruby自動化驅動

2022-11-15 17:07:40

開發自動化前端

2024-01-24 18:50:21

WebFTP服務器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美xxxx日本 | 99久久久99久久国产片鸭王 | 亚洲天堂精品久久 | 欧美午夜精品 | 国产欧美精品一区二区三区 | 一级a爱片久久毛片 | 亚洲综合视频 | 99精品免费 | 国产精品免费一区二区三区 | 欧美va大片| 日韩精品 电影一区 亚洲 | 欧美自拍网站 | 亚洲成人免费在线 | 国产高清免费视频 | 久久久久久久久久久久91 | 男女免费观看在线爽爽爽视频 | 亚洲精品女人久久久 | 婷婷综合久久 | 日韩视频专区 | 高清av在线 | 国产欧美一区二区三区久久人妖 | 久久久久久亚洲精品不卡 | 日韩精品视频中文字幕 | 日韩精品欧美精品 | 欧美精品在线播放 | 欧美日韩专区 | 国产一区二区三区免费观看在线 | 国产精品视频一区二区三区 | 亚洲一级二级三级 | 91视频免费在观看 | 国产露脸对白88av | 久久久久久高潮国产精品视 | 天天艹| 成人在线免费视频 | 欧美v片| 伊人91在线 | 亚洲九九精品 | 国产一区二区三区色淫影院 | 男女精品久久 | 亚洲久在线 | 欧美日韩一区精品 |