内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

怎么用Python自動(dòng)化管理Exchange郵箱

本篇內(nèi)容主要講解“怎么用Python自動(dòng)化管理Exchange郵箱”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么用Python自動(dòng)化管理Exchange郵箱”吧!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),德興企業(yè)網(wǎng)站建設(shè),德興品牌網(wǎng)站建設(shè),網(wǎng)站定制,德興網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,德興網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

Python是一種解釋型、交互式、面向?qū)ο蟮木幊陶Z(yǔ)言,不但簡(jiǎn)單、開源、可移植,而且擁有豐富的Python官方和第三方類庫(kù)。這些類庫(kù)的底層代碼不一定都是Python,還有很多C/C++的身影。通過(guò)C/C++語(yǔ)言實(shí)現(xiàn)的代碼可以在Python中被調(diào)用。所以Python也被稱為“膠水語(yǔ)言”?;赑ython的強(qiáng)大類庫(kù),我們可以實(shí)現(xiàn)諸如Web開發(fā),自動(dòng)化管理,數(shù)據(jù)分析,機(jī)器學(xué)習(xí)等各種功能。今天我要介紹的是如何借助Python的Exchangelib庫(kù)輕松實(shí)現(xiàn)Exchange郵箱的自動(dòng)化管理。重點(diǎn)介紹郵箱中的郵件數(shù)據(jù)和會(huì)議日程\日歷的在Python中的自動(dòng)化管理操作。

Exchange是微軟的企業(yè)級(jí)郵件服務(wù)系統(tǒng),本地Exchange版本目前最新的是Exchange2019。隨著云服務(wù)的不斷發(fā)展,用戶群體也越來(lái)越龐大。很多用戶轉(zhuǎn)而使用Exchange  Online服務(wù)或者將本地Exchange與Exchange Online進(jìn)行混合部署。本文的實(shí)現(xiàn)代碼和案例對(duì)本地的Exchange和Exchange  Online郵箱都是適用的。

Exchangelib是一個(gè)強(qiáng)大的Exchange客戶端Python庫(kù)。它實(shí)現(xiàn)了Exchange郵箱的對(duì)象關(guān)系映射。  Exchangelib庫(kù)對(duì)郵箱的管理操作是通過(guò)EWS (Exchange Web Service)  來(lái)實(shí)現(xiàn)的。EWS是Exchange郵箱的接口服務(wù)。EWS集成了原來(lái)WebDAV和CODEX的功能,基于SOAP協(xié)議。這使它可以被發(fā)送HTTPS請(qǐng)求的任何操作系統(tǒng)遠(yuǎn)程訪問(wèn)。EWS是非常高效的Exchange資源訪問(wèn)接口。

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

接下來(lái)導(dǎo)入exchangelib和datetime等類庫(kù):

from exchangelib import Message,Credentials,Account,HTMLBody,Mailbox  from exchangelib import EWSTimeZone,EWSDateTime  import datetime as dt

1.1郵件發(fā)送的實(shí)現(xiàn)如下: 

#將郵箱的帳號(hào)和密碼等信息賦值給account  credentials = Credentials("","")  account = Account(',credentials=credentials,autodiscover=True)  #html中包含的是HTML格式的郵件內(nèi)容  html = 'Hello World!'  #在message中配置帳號(hào) 郵件標(biāo)題 內(nèi)容 收件人等信息  message = Message(  account=account,  subject="For Test",  body=HTMLBody(html),  to_recipients=('',),  )  #發(fā)送郵件  message.send()

1.2郵件獲取的實(shí)現(xiàn)如下: 

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

1.3郵件轉(zhuǎn)發(fā)的實(shí)現(xiàn)如下:

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

1.4郵件刪除的實(shí)現(xiàn)如下: 

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

通過(guò)以上的學(xué)習(xí),我們知道了通過(guò)Python操作Exchange郵箱的基本方法。下面舉一個(gè)簡(jiǎn)單的自動(dòng)化管理郵箱的例子:比如實(shí)現(xiàn)對(duì)特定種類的郵件進(jìn)行自動(dòng)回復(fù)。

#獲取最近一天的未讀郵件  today = dt.datetime.today()  day = dt.timedelta(days=1)  from_date = today - day  tz = EWSTimeZone.localzone()  tz_time = from_date.replace(tzinfo=tz)  items = account.inbox.filter(is_read=False, datetime_received__gte=tz_time)  #針對(duì)包含指定標(biāo)題內(nèi)容來(lái)自指定用戶的郵件進(jìn)行自動(dòng)回復(fù)。比如自動(dòng)批示等等。  Filter_items = items.filter(subject__contains='xxx', sender='XXX@XXX.com')  for item in Filter_items:  Items[0].reply_all(  subject='’,  body='xxx'  )

通過(guò)Python不但可以對(duì)郵件數(shù)據(jù)進(jìn)行自動(dòng)化操作,還可以對(duì)日歷,任務(wù),聯(lián)系人等進(jìn)行管理。接下來(lái)我們來(lái)看一下通過(guò)Python如何對(duì)郵箱中的會(huì)議日程\日歷進(jìn)行自動(dòng)化管理。首先我們導(dǎo)入Exchangelib中的日歷相關(guān)模塊。CalendarItem類允許您發(fā)送您發(fā)起的會(huì)議請(qǐng)求或取消之前已經(jīng)安排的會(huì)議。還可以處理接收到的MeetingRequest消息。您可以使用AcceptItem、TentativelyAcceptItem和DeclineItem類答復(fù)這些消息。

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

2.1會(huì)議日程創(chuàng)建的實(shí)現(xiàn)如下: 

# EWSTimeZone.localzone()用來(lái)獲取本地的時(shí)區(qū)信息 便于將日期轉(zhuǎn)換成本地時(shí)區(qū)的日期  tz = EWSTimeZone.localzone()  # CalenderItem用來(lái)準(zhǔn)備會(huì)議日程的信息:比如開始時(shí)間和結(jié)束時(shí)間,主題,會(huì)議邀請(qǐng)正文,參會(huì)人等等  item = CalendarItem(  account=account,  folder=account.calendar,  start=dt.datetime(2021, 4, 15, 11, 0, 0, 0, tz),  end=dt.datetime(2021, 4, 15, 12, 0, 0, 0, tz),  subject="For Test",  body="meeting test",  required_attendees=['xxx@xxx.com,'xxx@xxx.com']  )  # item.save()用來(lái)發(fā)送會(huì)議邀請(qǐng)郵件  item.save(send_meeting_invitations=SEND_TO_ALL_AND_SAVE_COPY)

2.1會(huì)議日程獲取的實(shí)現(xiàn)如下: 

# 比如我們要獲取某一天內(nèi)的所有會(huì)議日程  calendars = account.calendar.all().filter(datetime_received__range=(  dt.datetime(2021, 4, 14, 23, 59, 59, 0, tz),  dt.datetime(2021, 4, 15, 23, 59, 59, 0, tz)  ))  # 將會(huì)議日程的標(biāo)題打印輸出并查看  for calendar in calendars:  print(calendar.subject)

2.2會(huì)議日程取消的實(shí)現(xiàn)如下:

# 取消郵件標(biāo)題為'For  Test'的會(huì)議日程。取消命令為“calendar.cancel()”。calendar.subject.find()用來(lái)進(jìn)行關(guān)鍵字查找,用于查找對(duì)應(yīng)的郵件項(xiàng)。

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

2.2自動(dòng)接收會(huì)議邀請(qǐng)的實(shí)現(xiàn)如下:

#  通過(guò)對(duì)收件箱郵件的過(guò)濾,得到會(huì)議邀請(qǐng)郵件。然后針對(duì)該類型郵件可以按照如下操作接受會(huì)議邀請(qǐng),拒絕會(huì)議邀請(qǐng),暫時(shí)接受會(huì)議邀請(qǐng)。Body中可以我定義回復(fù)的郵件正文內(nèi)容。

for item in items:  if isinstance(item,MeetingRequest):  item.accept(body="Accpeted")#接受會(huì)議邀請(qǐng)  item.decline(body="sorry, I have no time")#拒絕會(huì)議邀請(qǐng)  item.tentatively_accept(body="I'll join if I'm free at that time")#暫時(shí)接受會(huì)議邀請(qǐng)

實(shí)際上Exchange郵箱里的數(shù)據(jù),不管是日歷還是郵件都是基于文件夾結(jié)構(gòu)的。我們可以通過(guò)命令”print(account.root.tree())”來(lái)查看郵箱的目錄結(jié)構(gòu)。

通過(guò)對(duì)以上的介紹,相信大家已經(jīng)能夠掌握基于Python的郵箱和日歷的基本操作方法。在實(shí)際的自動(dòng)化應(yīng)用中,我們可以基于不同需求來(lái)進(jìn)行定向開發(fā)?;诓煌臈l件自動(dòng)化處理相應(yīng)的數(shù)據(jù)。

在IT運(yùn)維中,可以基于我們以上的知識(shí)點(diǎn)來(lái)獲取指定類型郵件,提取郵件關(guān)鍵信息進(jìn)行自動(dòng)處理或者匯總起來(lái)以郵件報(bào)告的形式自動(dòng)發(fā)送出來(lái)以供查看。這些都是非常好的自動(dòng)化應(yīng)該場(chǎng)景。在日常辦公中,也可以基于我們針對(duì)會(huì)議日程的知識(shí)點(diǎn)來(lái)實(shí)現(xiàn)自動(dòng)化處理會(huì)議邀請(qǐng)郵件,定期刪除或者存檔日歷信息等操作。

到此,相信大家對(duì)“怎么用Python自動(dòng)化管理Exchange郵箱”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞名稱:怎么用Python自動(dòng)化管理Exchange郵箱
轉(zhuǎn)載來(lái)源:http://www.rwnh.cn/article16/jgpdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)網(wǎng)站內(nèi)鏈、定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)網(wǎng)站維護(hù)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
绵竹市| 刚察县| 安龙县| 于田县| 玉屏| 库伦旗| 余江县| 松江区| 车致| 左权县| 重庆市| 新密市| 海南省| 宝丰县| 买车| 桦南县| 丹阳市| 南陵县| 博野县| 三都| 汾阳市| 通州市| 萍乡市| 从江县| 长垣县| 高雄市| 隆林| 三门县| 安龙县| 邵阳县| 东兴市| 沿河| 无锡市| 虹口区| 澄江县| 建宁县| 乌拉特中旗| 安龙县| 铁岭县| 乐山市| 即墨市|