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

使用EWS API读取邮件的更多相关文章

  1. EWS API 2.0读取日历信息-读取内容注意事项

    采用模拟账号的方式读取日历信息,注意下日历的内容读取(Body)读取.代码如下:(采用 EWS API 2.0版本) 1.读取内容前必须设置如下属性:否则会提示:You must load or as ...

  2. 使用 EWS(Exchange Web Service)协议读取邮件、发送邮件

    问题: 公司之前可以通过POP3协议收发邮件,因而在SoapUI中用JavaMail可以读取邮件,后来配置了Office 365,POP3协议端口不再开放,邮件全部读取失败,报login timeou ...

  3. javamail 发送、读取邮件

    概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮 ...

  4. File API 读取上传的文件

    1, 在html 文档中,<input type="file"> 我们可以选择文件进行上传,但这时只能上传一个文件.如果加上multiple 属性,可以上传多个文件,上 ...

  5. HTML5 file api读取文件的MD5码工具

    1.工具的用途:用HTML5 file api读取文件的MD5码.MD5码在文件的唯一性识别上有很重要的应用,业内常用MD5进行文件识别.文件秒传.文件安全性检查等: 2.适用性:IE.Chrome皆 ...

  6. Hadoop权威指南:通过FileSystem API读取数据

    Hadoop权威指南:通过FileSystem API读取数据 [TOC] 在Hadoop中,FileSystem是一个通用的文件系统API 获取FileSystem实例的几个静态方法 public ...

  7. 使用FileSystem自带的api读取hdfs中的文件

    博客搬家自https://my.oschina.net/itsyizu/blog/ 1. 创建hadoop MapReduce项目 输入项目名称 创建好的项目初始化状态如下 编写java类 impor ...

  8. python从任意文件读取邮件地址输出的代码

    如下的资料是关于python从任意文件读取邮件地址输出的代码. # This script takes whatever you throw at stdin and outputs email ad ...

  9. Java8 新API读取文件内容

    import java.io.IOException;import java.nio.charset.Charset;import java.nio.file.Files;import java.ni ...

随机推荐

  1. Oracle.ManagedDataAccess 提示ORA-01017 错误【解决方案】

    Oracle.ManagedDataAccess 提示ORA-01017 错误[解决方案] Oracle.ManagedDataAccess 提示ORA-01017 错误[解决方案] [HKEY_LO ...

  2. python计算数组中对象出现的次数并且按照字典输出

    解决的问题如题,如果对Python不是很熟悉,解决的办法可能如下: test_array=[1,2,3,1,2,3]; def count_object1(array): result_obj={} ...

  3. Filebeat的Registry文件解读

    你可能没有注意但很重要的filebeat小知识 Registry文件 Filebeat会将自己处理日志文件的进度信息写入到registry文件中,以保证filebeat在重启之后能够接着处理未处理过的 ...

  4. mysql表分区案例

    0.整理表空间碎片optimize table tablename 1.表分区按年分区,季度子分区 alter table key_part partition by range(year(creat ...

  5. 面试:C++不可继承类

    面试中可能遇到让设计一个无法被继承的类.最简单的实现是将该类的构造函数设置为私有的,然后通过静态成员函数调用私有构造函数实例化对象,这样的类确实不可继承,但是使用起来非常不方便,必须使用静态成员实例化 ...

  6. 微信小程序开发总结(一)

    微信小程序从2016年9月21日开始内测 ,以及在2017年1月9号正式发布也有一段时间了, 很多人开始拥抱微信小程序,我也是一样 ,从微信小程序内测开始就加入进来 , 开始研究微信小程序 ,属于最早 ...

  7. SQL Server重置INDETITY的开始值

    @@IDENTITY 和SCOPE_IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值.但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值:@@IDENTITY 不受限于 ...

  8. IdentityServer4 中文文档 -10- (快速入门)使用密码保护API

    IdentityServer4 中文文档 -10- (快速入门)使用密码保护API 原文:http://docs.identityserver.io/en/release/quickstarts/2_ ...

  9. Git Extensions system.invalidoperationexception尚未提供文件名,因此无法启动进程

    根据别人的博客按照步骤安装,地址如下:http://www.cnblogs.com/sorex/archive/2011/08/10/2132359.html 但是安装Git Extensions后生 ...

  10. linq left join ,inner join ,crossjoin

    inner join : linq 默认使用Inner Join的链接方式,如下面的表达式一样: Left Join: 左链接返回左表的全部数据,以及右表中满足链接条件和不满足链接条件的数据,不满足的 ...