#安裝EwsManagedApi.msi,然后導入EWS模塊 Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll" #$exchService.UseDefaultCredentials = $true 使用本地默認憑據 #使用其他憑據 $Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("username","password","uuuu") $exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $exchService.Credentials = $Credentials $exchService.AutodiscoverUrl("username@x.com") #登錄Exchange $exchService #綁定收件箱(Inbox) $inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) $inbox|gm $ms = $inbox.FindItems(10) #查詢郵件數量 foreach ($m in $ms) { $m.Load() $m.subject $m.IsRead }
讀取未讀郵件:
#使用其他憑據 $Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("ly","l","u") $exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $exchService.Credentials = $Credentials $exchService.AutodiscoverUrl("ly@x.com") #登錄Exchange $exchService #綁定收件箱(Inbox) $inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) $view = New-Object Microsoft.Exchange.WebServices.Data.ItemView(100) #The view that controls the number of items that are returned. #讀取未讀郵件 $searchFilter = new-object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::IsRead, $false) $findResults = $exchService.FindItems([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox,$searchFilter,$view) $findResults.TotalCount
遍歷Inbox下所有文件夾:
Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll" #$exchService.UseDefaultCredentials = $true 使用本地默認憑據 #使用其他憑據 $Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("ly","l","ux") $exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $exchService.Credentials = $Credentials $exchService.AutodiscoverUrl("ly@x.com") #登錄Exchange $exchService #綁定收件箱(Inbox) $inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) #MsgFolderRoot根目錄 #查詢Inbox下的所有文件夾 $FolderList = new-object Microsoft.Exchange.WebServices.Data.FolderView(100) $FolderList.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep $findFolderResults = $inbox.FindFolders($FolderList)
遍歷某個子文件夾(手機郵箱配置)下面的郵件:
#安裝EwsManagedApi.msi,然后導入EWS模塊 Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll" #$exchService.UseDefaultCredentials = $true 使用本地默認憑據 #使用其他憑據 $Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("l","l","ux") $exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $exchService.Credentials = $Credentials $exchService.AutodiscoverUrl("l@x.com") #登錄Exchange $exchService #綁定收件箱(Inbox) $inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) #查詢Inbox下的所有文件夾 $FolderList = new-object Microsoft.Exchange.WebServices.Data.FolderView(100) $FolderList.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep $findFolderResults = $inbox.FindFolders($FolderList) #查詢名為“手機郵箱配置”的文件夾,然后遍歷其中的郵件 $folder_mobile = $findFolderResults|?{$_.DisplayName -eq "手機郵箱配置"} $folder_ms= [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,$folder_mobile.Id) $mails = $folder_ms.FindItems(100) #查詢郵件數量 foreach ($m in $mails) { $m.Load() $m.Subject }
讀取“手機配置郵箱”文件夾下的未讀郵件:
#安裝EwsManagedApi.msi,然后導入EWS模塊 Import-Module -Name "C:\Program Files\Microsoft\Exchange\Web Services\2.0\Microsoft.Exchange.WebServices.dll" #$exchService.UseDefaultCredentials = $true 使用本地默認憑據 #使用其他憑據 $Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("l","l","ux") $exchService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService $exchService.Credentials = $Credentials $exchService.AutodiscoverUrl("l@x.com") #登錄Exchange #綁定收件箱(Inbox) $inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox) #查詢Inbox下的所有文件夾 $FolderList = new-object Microsoft.Exchange.WebServices.Data.FolderView(100) $FolderList.Traversal = [Microsoft.Exchange.WebServices.Data.FolderTraversal]::Deep $findFolderResults = $inbox.FindFolders($FolderList) #找到“手機郵箱配置”文件夾 $folder_mobile = $findFolderResults|?{$_.DisplayName -eq "手機郵箱配置"} $folder_ms= [Microsoft.Exchange.WebServices.Data.Folder]::Bind($exchService,$folder_mobile.Id) #讀取未讀郵件 $view = New-Object Microsoft.Exchange.WebServices.Data.ItemView(200) $searchFilter = new-object Microsoft.Exchange.WebServices.Data.SearchFilter+IsEqualTo([Microsoft.Exchange.WebServices.Data.EmailMessageSchema]::IsRead, $false) $findResults = $exchService.FindItems($folder_mobile.Id,$searchFilter,$view) $findResults.TotalCount #遍歷郵件內容 foreach ($m in $findResults.Items) { $m.Load() $m.From $m.Subject $m.Body.BodyType #$m.Body.Text }
將郵件置為已讀:
if ($m.IsRead -eq $false) { $m.IsRead = $true $m.Update([Microsoft.Exchange.WebServices.Data.ConflictResolutionMode]::AlwaysOverwrite) #提交到Server端 }
發送郵件:
$message = New-Object Microsoft.Exchange.WebServices.Data.EmailMessage -ArgumentList $exchService $message.Subject = '11Test is a test222' $message.Body = 'This message is being sent through EWS with PowerShell' $message.ToRecipients.Add(‘ly@yy.com’) $message.SendAndSaveCopy()