#安装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. numpy中pad函数的常用方法

    一.参数解释 ndarray = numpy.pad(array, pad_width, mode, **kwargs) array为要填补的数组 pad_width是在各维度的各个方向上想要填补的长 ...

  2. django model数据 时间格式

    from datetime import datetime dt = datetime.now() print '时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( ...

  3. JavaScript设计模式----装饰者模式

    装饰者模式的定义: 装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责.与继承相比,装饰者是一种更轻便灵活的做法. 装饰者模式的特点: 可以动态的给某个对 ...

  4. Linux编程 6 (查看进程 ps 及输出风格)

    一.查看进程命令ps 1.1 默认ps 命令 在默认情况下,ps命令只会显示运行在当前控制台下,属于当前用户的进程,在上图中,我们只运行了bash shell以及ps命令本身. 上图中显示了程序的进程 ...

  5. 用node.js写一个jenkins发版脚本

    背景 每次到网页里手动发版有点烦,写个脚本来提高开发效率. CFG 在 jenkins 设置里获取 API TOKEN. 把 host 和账号密码拼接起来就可以通过鉴权. const token = ...

  6. Tensorflow学习笔记(2):tf.nn.dropout 与 tf.layers.dropout

    A quick glance through tensorflow/python/layers/core.py and tensorflow/python/ops/nn_ops.pyreveals t ...

  7. SpringBoot----跨域配置

    前言: 当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request).比如说,域名A ( http://dom ...

  8. Python 的几种推导式

    推导式 comprehensions(又称解析式):是 Python 中很强大的.很受欢迎的特性,具有语言简洁,速度快等优点.推导式包括: 1. 列表推导式 2. 字典推导式 3. 集合推导式 对以上 ...

  9. HTML DOM querySelector() 方法

     Document 对象 实例 获取文档中 id="demo" 的元素: document.querySelector("#demo"); <!DOCTY ...

  10. Oracle字符串函数

    Oracle字符串函数 平常我们用Oracle主要有两种字符串类型1.char始终为固定的长度,如果设置了长度小于char列的值,则Oracle会自动用空格填充的.当比较char时,Oracle用空格 ...