程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> Exchange用戶郵件狀態跟蹤實現教程

Exchange用戶郵件狀態跟蹤實現教程

編輯:關於C#
 

談到Exchange用戶郵件的狀態跟蹤,你可能會覺得內部用戶將郵件發送給收件人了,發件人沒有收到退信郵件,或者管理員看到沒有堵在郵件隊列中就表示該郵件已經基本送達給收件人了。但並非如此,也有可能會出現其他原因導致郵件在傳遞過程中被刪除了,比如,Exchange 2013郵件系統中的”惡意軟件篩選器”功能啟用的話,就會出現郵件被刪除的現象。在這種情況下,郵件不會送達給收件人,也就不會有後續提到的郵件跟蹤狀態了。

但是我們想想以下兩種場景,我們可能必須通過郵件的跟蹤狀態才能解決:
1.      用戶誤發送了一封重要的郵件,而該郵件恰恰具有高度的機密性,發件人不希望收件人知道該郵件的內容,即使知道了也不要洩露出去。這時,希望能夠知道收件人到底有沒有讀取該郵件;
2.      公司新員工報到時,公司會發送一份員工制度給到員工,而員工恰巧在入職後的兩天內觸犯了公司嚴重的制度,而員工狡辯沒有查看到員工制度的郵件,這時,我們是不是可以通過郵件跟蹤獲取該封郵件的狀態呢。

1.      當用戶發送一封郵件後,我們首先要確定該郵件是否已經送達給收件人,以驗證該郵件正常傳遞;
此處我們以使用cw01郵箱發郵件給cw02用戶為例,查看該郵件的送達狀態。

2.      使用”以管理員身份運行” exchange命令行管理程序,輸入以下命令將送達報告獲得的結果存儲在變量msg內:

$msg = Search-MessageTrackingReport -Identity cw01 -Recipients [email protected] -BypassDelegateChecking



3.      搜索成功後,運行以下命令浏覽結果:

$msg | %{ Get-MessageTrackingReport -Identity $_.MessageTrackingReportId -BypassDelegateChecking }


從上圖中可以看到該郵件在什麼時間已經送到給cw02用戶

4.       通過以上郵件送達報告,我們也只是知道郵件是不是已經送達到收件人了,但這並不能滿足我們的要求,關鍵還要知道收件人是否已經閱讀該郵件,默認在郵件系統未啟用郵件的閱讀跟蹤,需要進行閱讀跟蹤配置;

5.       使用”以管理員身份運行” exchange命令行管理程序,輸入以下命令將啟用閱讀跟蹤:

Set-OrganizationConfig -ReadTrackingEnabled $true



6.      當在組織級別啟用郵件閱讀跟蹤後,該操作就會對所有用戶生效,但是有時候可能不希望能夠看到領導郵件的狀態,所以需要針對領導賬戶單獨禁用郵件跟蹤,運行以下命令設置:

Set-Mailbox -Identity Exadmin -MessageTrackingReadStatusEnabled $false

以上禁用Exadmin用戶賬號的郵件閱讀跟蹤

7.      在組織級別啟用閱讀跟蹤之後,就可以針對單封郵件的閱讀狀態進行追蹤:如下所示,追蹤用戶cw01發送的主題為“郵件送達測試”的郵件是否被收件人cw02查看,通過輸入以下命令將郵件送達的值賦予給變量msg:

$msg = Search-MessageTrackingReport -Identity cw01 -Subject "郵件送達測試" -BypassDelegateChecking



8.      接著運行以下命令查看收件人cw02是否閱讀這封郵件:

$msg | %{ Get-MessageTrackingReport -Identity $_.MessageTrackingReportId -BypassDelegateChecking -RecipientPathFilter [email protected] -ReportTemplate RecipientPath }


9.      當cw02沒有閱讀這封郵件時,如下圖所示:


10.   當cw02已經閱讀這封郵件時,如下圖所示:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved