使用EWS API读取邮件

 

#安装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()

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GFI MailSecurity用于 Microsoft Exchange 服务器的反病毒软件,抵抗邮件病毒、漏洞入侵和木马。<br><br>可打开以下地址,直接下载软件与用户手册<br>http://software.gfi.com/mailsecurity10.exe<br>http://www.gfisoftware.cn/mailsecurity/<br><br>或在CSDN中,查找 GFI MailSecurity for Exchange/SMTP_part1(邮件安全器)和 part3 part4 part5 part6 part7,以下载完整文件。<br><br>GFI MailSecurity for Exchange/SMTP 是一套邮件内容策略、漏洞检测、威胁分析和反病毒解决方案,能够在电子邮件引起的各种威胁对用户产生破坏之前将其删除。 GFI MailSecurity 的主要功能包含多个病毒引擎,以保证更高的病毒检测率和更快地响应病毒;邮件内容和附件检查,以隔离危险的附件和内容;漏洞攻击保护,以抵抗现在或将来 的基于漏洞攻击的病毒(如 imda, Bugbear);HTML Sanitizer,以禁用 HTML 脚本;木马和可执行文件扫描程序,以检测恶意可执行文件等。<br><br>邮件反病毒软件能够抵抗邮件病毒、漏洞攻击和木马<br>监控邮件中危险、进攻性或机密内容的需求从未如此明显过。 能够在数分钟内破坏邮件服务器和公司网络的最致命的病毒正通过电子邮件在全球范围内迅速(数小时)传播着。 有些产品只能执行由一个公司提供的反病毒扫描,因此无法提供足够的保护。 更糟糕的是,电子邮件已成为安装后门(木马)和其他有害程序以帮助潜在入侵者入侵网络的有效途径。 只局限于单个反病毒引擎的产品将无法抵御邮件漏洞攻击和类似的进攻。<br>唯一的防御之道就是采用全面细致的基于用户的邮件内容策略和安装反病毒软件以保护邮件服务器和网络。 GFI MailSecurity 作为邮件防火墙可以提供邮件安全服务,抵御电子邮件病毒、漏洞攻击、威胁和针对您公司的邮件攻击。<br><br>GFI MailSecurity 可以通过网关或 VS API 方式部署。 网关版本应该部署在网络周界,以作为邮件中继服务器并扫描接收和外发的邮件。 VS API 版本与 Exchange 服务器 000/2003 无缝集成,能够扫描 Exchange 保存的信息。<br><br>为何选择 MailSecurity 保护系统免受邮件病毒和恶意软件侵害? <br>> 多个病毒引擎保证更高的检测率和更快的响应 <br>> 独特的木马和可执行文件扫描程序能够在无需更病毒的情况下检测恶意可执行文件——能够立即检测到“MyDoom 病毒”! <br>> Email Exploit Engine 和 HTML Sanitizer 可以禁止邮件漏洞入侵和 HTML 脚本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值