SoapUI中读取Office365邮件
常见邮件服务一般使用IMAP邮件访问协议,如果你所在公司更换到Office 365则需要另一个组件。
Office 365使用的是Exchange Server电子邮件服务组件,需要微软的Jar包来支持。
- 通过Maven下载ews-java-api-2.0.jar
- 下载地址http://mvnrepository.com/artifact/com.microsoft.ews-java-api/ews-java-api
- 在Groovy脚本中调用即可(可参考下面示例脚本)
package GroovyScript import java.util.Date
import microsoft.exchange.webservices.data.core.enumeration.property.BodyType
import microsoft.exchange.webservices.data.core.service.item.Item
import microsoft.exchange.webservices.data.property.complex.MessageBody
import microsoft.exchange.webservices.data.search.FindItemsResults
import microsoft.exchange.webservices.data.core.enumeration.service.ConflictResolutionMode int executeCount = 0 // 执行次数
int executeMax = 30 // 最大执行次数 同时也是最大执行时间
boolean checkIt = false // 是否找到需要的邮件 String emailAddress = context.expand( '${#Project#resetPWD_Email}' ) // 邮箱
String password = context.expand( '${#Project#resetPWD_OriginalPWD}' ) // 密码
int maxEmailsGet = 5 // 最大邮件获取数
String queryString = "Regarding area" // 筛选条件 while (executeCount < executeMax){ ReadEmail readEmail = new ReadEmail()
FindItemsResults getEmails = readEmail.getEmails(emailAddress, password, maxEmailsGet, "") // 连接邮箱 拿邮件 if (hasFound(getEmails, queryString)){
checkIt = true
break
} else{
Thread.sleep(1000)
executeCount += 1
log.info "---ExecuteCount: $executeCount"
continue
}
} assert checkIt, "Can not get the FeedBack email" // ----------------------------判断是否成功----------只针对此step------------------------------------------------------
def boolean hasFound(FindItemsResults getEmails, String queryString){ boolean hasFound = false
// 迭代 邮件内容
for (Item email : getEmails) { Date date = new Date() // 时间对象
def currentTime = date.getTime() // 当前时间
def lastEmailTime = email.getDateTimeReceived().getTime() // 此封邮件收取时间
def interval = currentTime - lastEmailTime // 时间间隔
def subject = email.getSubject() // 邮件标题
boolean hasAttachment = email.getHasAttachments() // 是否存在附件
def body = email.getBody() // 邮件内容 if ( interval < 30000 && subject.contains(queryString) && hasAttachment && email.getIsRead().equals(false)){ // 30秒以内的邮件有效
hasFound = true //置email为已读,并且同步到邮件服务器,这样无论以什么方式查看邮件,邮件都是已读状态
email.setIsRead(true)
email.update(ConflictResolutionMode.AlwaysOverwrite) break
} else {
continue
}
}
return hasFound
}
SoapUI中读取Office365邮件的更多相关文章
- SoapUI中读取法文字符
最近测试中,使用SoapUI时需要读取excel中的法文数据作为参数,groovy script中使用的是jxl进行excel的读取, 开始时一直显示乱码,而后在script中添加如下wookbook ...
- 使用C#和OpenPop.dll开发读取POP3邮件程序
制作一个ASP.NET MVC4论坛项目,该项目需要将以往十多年的Mail List(邮件列表)内容都导入到新的论坛中,因此需要能够将邮件的标题.发布时间.发布人及邮件内容导入到论坛的数据库内..Ne ...
- excel文件的groovy脚本在SoapUI中进行数据驱动测试
SoapUI Pro具有从外部文件读取数据的功能,例如:excel,csv等.但SoapUI不提供从excel文件读取数据的功能.因此,为了从SoapUI中的excel文件中读取数据,我们需要在gro ...
- .NET跨平台之旅:ASP.NET Core从传统ASP.NET的Cookie中读取用户登录信息
在解决了asp.net core中访问memcached缓存的问题后,我们开始大踏步地向.net core进军——将更多站点向asp.net core迁移,在迁移涉及获取用户登录信息的站点时,我们遇到 ...
- 五种方式让你在java中读取properties文件内容不再是难题
一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...
- [UWP]UWP中获取联系人/邮件发送/SMS消息发送操作
这篇博客将介绍如何在UWP程序中获取联系人/邮件发送/SMS发送的基础操作. 1. 获取联系人 UWP中联系人获取需要引入Windows.ApplicationModel.Contacts名称空间. ...
- 条形码的应用三-----------从Excel文件中读取条形码
条形码的应用三------从Excel文件中读取条形码 介绍 上一篇文章,我向大家展示了生成多个条形码并存储到Excel文件中的一个方法.后来我又有了个想法:既然条码插入到excel中了,我可不可以从 ...
- 从多个XML文档中读取数据用于显示webapi帮助文档
前言: 你先得知道HelpPageConfig文件,不知道说明你现在不需要这个,所以下文就不用看了,等知道了再看也不急.当然如果你很知道这个,下文也不用看了,因为你会了. 方法一: new XmlDo ...
- Servlet从本地文件中读取图片,并显示在页面中
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...
随机推荐
- HDU 2243 考研路茫茫——单词情结
考研路茫茫——单词情结 Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ID ...
- Python 双向队列Deque、单向队列Queue 模块使用详解
Python 双向队列Deque 模块使用详解 创建双向队列Deque序列 双向队列Deque提供了类似list的操作方法: #!/usr/bin/python3 import collections ...
- json拼接含字符串变量的问题
json键值对,当值为字符串变量时,极易搞错,拼接务必注意.String str="文字信息";String json="{\"msg\":\&quo ...
- Codeforces936B. Sleepy Game
还好这场没打 MD什么破题 n<=100000,m<=200000的图问从s点出发能否走奇数条边到一个没有出度的点. 直观的想法:做一个bfs,$f(i,0/1)$表示从$s$出发到$i$ ...
- Java线程的5种状态及切换(透彻讲解)
http://blog.csdn.net/pange1991/article/details/53860651
- hihocoder 1579(排列组合)
题意 给出一个长度为n的字符串的sa数组,n<=1e5,问有多少种不同的字符串的sa数组正好是输入的sa数组(字符串每个位置都是小写字母) 分析 sa数组描述的是字符的大小关系,而不是确切的字符 ...
- maven 新建项目时修改默认jre路径
新建maven项目时,JRE System Library默认为J2SE-1.5 如果想修改为1.7,修改maven的settings.xml ,在profiles中添加 <profile> ...
- 框架-Jquerychange事件数值计算
//优惠率计算优惠价 $("body").on("change", "#Rate", function() { ...
- Java根据百度API获得经纬度,然后根据经纬度在获得城市信息
原文:http://www.open-open.com/code/view/1421032487812 import java.io.BufferedReader; import java.io.IO ...
- Shell 脚本小试牛刀(5) -- 超便捷脚本之高速ssh 登录其它主机
假设你也是以Linux 为工作环境的童鞋,那么此文真是捷报!由于我的学习/工作中(特别是近期玩耍树莓派)常常会使用到ssh 登录其它主机,而每次使用ssh 登录都须要输入老长一大串让我非常烦.所以我写 ...