日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java ews_Java---使用EWS 写个ExchangeMailUtil

發布時間:2023/12/9 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ews_Java---使用EWS 写个ExchangeMailUtil 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

依賴包:

commons-httpclient-3.1.jar

commons-codec-1.10.jar

commons-logging-1.2.jar

jcifs-1.3.17.jar

代碼示例:

創建MailBean類:

import java.util.Date;

public class MailBean {

public BigDecimal getId() {

return id;

}

public void setId(BigDecimal id) {

this.id = id;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public String getFromPeople() {

return fromPeople;

}

public void setFromPeople(String fromPeople) {

this.fromPeople = fromPeople;

}

public String getReceivePeople() {

return receivePeople;

}

public void setReceivePeople(String receivePeople) {

this.receivePeople = receivePeople;

}

public Date getReceiveTime() {

return receiveTime;

}

public void setReceiveTime(Date receiveTime) {

this.receiveTime = receiveTime;

}

public String getReadUrl() {

return readUrl;

}

public void setReadUrl(String readUrl) {

this.readUrl = readUrl;

}

public int getIsRead() {

return isRead;

}

public void setIsRead(int isRead) {

this.isRead = isRead;

}

public String getMailId() {

return mailId;

}

public void setMailId(String mailId) {

this.mailId = mailId;

}

public MailBean() {

}

public MailBean(BigDecimal id,String title, String fromPeople, String receivePeople, Date receiveTime, String mailId,

String readUrl, int isRead) {

this.id=id;

this.title = title;

this.fromPeople = fromPeople;

this.receivePeople = receivePeople;

this.receiveTime = receiveTime;

this.mailId = mailId;

this.readUrl = readUrl;

this.isRead = isRead;

}

private BigDecimal id;

private String title;

private String mailId;

private String fromPeople;

private String receivePeople;

private Date receiveTime;

private String readUrl;

private int isRead;

}

創建ExchangeMailUtil工具類:

import java.net.URI;

import java.net.URISyntaxException;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import microsoft.exchange.webservices.data.core.ExchangeService;

import microsoft.exchange.webservices.data.core.PropertySet;

import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;

import microsoft.exchange.webservices.data.core.enumeration.property.BodyType;

import microsoft.exchange.webservices.data.core.enumeration.property.WellKnownFolderName;

import microsoft.exchange.webservices.data.core.enumeration.search.OffsetBasePoint;

import microsoft.exchange.webservices.data.core.enumeration.search.SortDirection;

import microsoft.exchange.webservices.data.core.service.folder.Folder;

import microsoft.exchange.webservices.data.core.service.item.EmailMessage;

import microsoft.exchange.webservices.data.core.service.item.Item;

import microsoft.exchange.webservices.data.core.service.schema.EmailMessageSchema;

import microsoft.exchange.webservices.data.core.service.schema.ItemSchema;

import microsoft.exchange.webservices.data.credential.ExchangeCredentials;

import microsoft.exchange.webservices.data.credential.WebCredentials;

import microsoft.exchange.webservices.data.property.complex.MessageBody;

import microsoft.exchange.webservices.data.search.FindItemsResults;

import microsoft.exchange.webservices.data.search.ItemView;

import microsoft.exchange.webservices.data.search.filter.SearchFilter;

/**

Exchange郵件服務工具類

*/

public class ExchangeMailUtil {

private String mailServer;

private String user;

private String password;

private String domain;

// 自定義一個郵件前綴

private String readUrlPrefix;

public ExchangeMailUtil() {

}

public ExchangeMailUtil(String mailServer, String user, String password, String readUrlPrefix) {

this.mailServer = mailServer;

this.user = user;

this.password = password;

this.readUrlPrefix = readUrlPrefix;

}

public List getUserUnReadMail() throws Exception {

// Outlook Web Access路徑通常為/EWS/exchange.asmx

List list = new ArrayList<>();

// 接收郵件

// 原本的讀取全部,改為讀取“未讀”

// ArrayList mails = this.receive(20);

// 不要停下來啊,我這里就寫死20郵件了,做分頁的交給你了(提示ItemView)

SearchFilter searchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false);

ArrayList mails = this.receive(20, searchFilter);

for (EmailMessage mail : mails) {

if (mail.getIsRead())

continue;

String title = mail.getSubject();

Date receiveTime = mail.getDateTimeReceived();

String fromPeople = mail.getFrom().getName();

String receivePeople = mail.getReceivedBy().getName();

String id = mail.getRootItemId().toString();

int index = id.indexOf("AAAAA");

String readUrl = readUrlPrefix + id.substring(index + 2, id.length() - 1) + "A";

MailBean mailBean = new MailBean(null, title, fromPeople, receivePeople, receiveTime, id, readUrl, 0);

list.add(mailBean);

}

return list;

}

public List getUserUnReadMailPage(int start, int limit) throws Exception {

// Outlook Web Access路徑通常為/EWS/exchange.asmx

List list = new ArrayList<>();

// 接收郵件

// ArrayList mails = this.receive(20);

// 原本的讀取全部,改為讀取“未讀”

SearchFilter searchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, true);

// 循環獲取郵箱郵件

ItemView view = new ItemView(limit, (start - 1) * limit, OffsetBasePoint.Beginning);

// 按照時間順序收取

view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);

ArrayList mails = this.receive(20, searchFilter, view);

for (EmailMessage mail : mails) {

if (mail.getIsRead())

continue;

String title = mail.getSubject();

Date receiveTime = mail.getDateTimeReceived();

String fromPeople = mail.getFrom().getName();

String receivePeople = mail.getReceivedBy().getName();

String id = mail.getRootItemId().toString();

int index = id.indexOf("AAAAA");

String readUrl = readUrlPrefix + id.substring(index + 2, id.length() - 1) + "A";

MailBean mailBean = new MailBean(null, title, fromPeople, receivePeople, receiveTime, id, readUrl, 0);

list.add(mailBean);

}

return list;

}

/**

* 創建郵件服務

*

* @return 郵件服務

*/

public ExchangeService getExchangeService() {

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);

// 用戶認證信息

ExchangeCredentials credentials;

if (domain == null) {

credentials = new WebCredentials(user, password);

} else {

credentials = new WebCredentials(user, password, domain);

}

service.setCredentials(credentials);

try {

service.setUrl(new URI(mailServer));

} catch (URISyntaxException e) {

e.printStackTrace();

}

return service;

}

/**

* 收取郵件

*

* @param max

* 最大收取郵件數

* @param searchFilter

* 收取郵件過濾規則

* @return

* @throws Exception

*/

public ArrayList receive(int max, SearchFilter searchFilter) throws Exception {

ArrayList result = new ArrayList<>();

try {

System.out.println(user + "," + password + "," + mailServer);

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

ExchangeCredentials credentials = new WebCredentials(user, password);

service.setCredentials(credentials);

service.setUrl(new URI(mailServer));

// 綁定收件箱,同樣可以綁定發件箱

Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);

// 獲取文件總數量

int count = inbox.getTotalCount();

// 沒有郵件直接返回

if (count == 0)

return result;

if (max > 0) {

count = count > max ? max : count;

}

// 循環獲取郵箱郵件

ItemView view = new ItemView(count);

// 按照時間順序收取

view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);

FindItemsResults findResults;

if (searchFilter == null) {

findResults = service.findItems(inbox.getId(), view);

} else {

findResults = service.findItems(inbox.getId(), searchFilter, view);

}

service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties);

for (Item item : findResults.getItems()) {

EmailMessage message = (EmailMessage) item;

result.add(message);

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

throw e;

}

return result;

}

/**

* 收取郵件

*

* @param max

* 最大收取郵件數

* @param searchFilter

* 收取郵件過濾規則

* @return

* @throws Exception

*/

public ArrayList receive(int max, SearchFilter searchFilter, ItemView itemView) throws Exception {

ArrayList result = new ArrayList<>();

try {

System.out.println(user + "," + password + "," + mailServer);

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

ExchangeCredentials credentials = new WebCredentials(user, password);

service.setCredentials(credentials);

service.setUrl(new URI(mailServer));

// 綁定收件箱,同樣可以綁定發件箱

Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);

// 獲取文件總數量

int count = inbox.getTotalCount();

// 沒有郵件直接返回

if (count == 0)

return result;

if (max > 0) {

count = count > max ? max : count;

}

/*

* // 循環獲取郵箱郵件 ItemView view = new ItemView(count); // 按照時間順序收取

* view.getOrderBy().add(ItemSchema.DateTimeReceived,

* SortDirection.Descending);

*/

FindItemsResults findResults;

if (searchFilter == null) {

findResults = service.findItems(inbox.getId(), itemView);

} else {

findResults = service.findItems(inbox.getId(), searchFilter, itemView);

}

if (findResults.isMoreAvailable())

service.loadPropertiesForItems(findResults, PropertySet.FirstClassProperties);

for (Item item : findResults.getItems()) {

EmailMessage message = (EmailMessage) item;

result.add(message);

}

} catch (Exception e) {

// TODO: handle exception

e.printStackTrace();

throw e;

}

return result;

}

/**

* 收取所有郵件

*

* @throws Exception

*/

public ArrayList receive(int max) throws Exception {

return receive(max, null);

}

/**

* 收取郵件

*

* @throws Exception

*/

public ArrayList receive() throws Exception {

return receive(0, null);

}

/**

* 發送帶附件的mail

*

* @param subject

* 郵件標題

* @param to

* 收件人列表

* @param cc

* 抄送人列表

* @param bodyText

* 郵件內容

* @param attachmentPaths

* 附件地址列表

* @throws Exception

*/

public void send(String subject, String[] to, String[] cc, String bodyText, String[] attachmentPaths)

throws Exception {

ExchangeService service = getExchangeService();

EmailMessage msg = new EmailMessage(service);

msg.setSubject(subject);

MessageBody body = MessageBody.getMessageBodyFromText(bodyText);

body.setBodyType(BodyType.HTML);

msg.setBody(body);

for (String toPerson : to) {

msg.getToRecipients().add(toPerson);

}

if (cc != null) {

for (String ccPerson : cc) {

msg.getCcRecipients().add(ccPerson);

}

}

if (attachmentPaths != null) {

for (String attachmentPath : attachmentPaths) {

msg.getAttachments().addFileAttachment(attachmentPath);

}

}

msg.send();

}

/**

* 發送不帶附件的mail

*

* @param subject

* 郵件標題

* @param to

* 收件人列表

* @param cc

* 抄送人列表

* @param bodyText

* 郵件內容

* @throws Exception

*/

public void send(String subject, String[] to, String[] cc, String bodyText) throws Exception {

send(subject, to, cc, bodyText, null);

}

public int getUnreadCount() throws Exception {

int unreadCount = 0;

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);

ExchangeCredentials credentials = new WebCredentials(user, password);

service.setCredentials(credentials);

service.setUrl(new URI(mailServer));

// 綁定收件箱,同樣可以綁定發件箱

Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);

unreadCount = inbox.getUnreadCount();

return unreadCount;

}

}

關于如何使用EWS JAVA API讀取exchange郵件看下篇:

https://www.cnblogs.com/itczybk/articles/11012107.html

總結

以上是生活随笔為你收集整理的java ews_Java---使用EWS 写个ExchangeMailUtil的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本啪啪网 | 浴室里强摁做开腿呻吟男男 | 国产精品一区麻豆 | 久久久久亚洲av无码专区桃色 | 美女久久久久 | 在线观看一区 | 无码人妻精品一区二区三区在线 | 日本黄色精品 | 天天综合色 | 天天av网| 午夜剧场免费看 | 亚洲女人天堂网 | 亚洲人成亚洲人成在线观看 | 亚洲欧美日韩国产成人精品影院 | 天堂影院一区二区 | 麻豆视频成人 | 天堂中文在线看 | 丰满少妇被猛烈进入高清播放 | 99热国产在线观看 | 内射干少妇亚洲69xxx | 91av在线免费视频 | 久久国产成人精品av | a级一a一级在线观看 | 欧美大肚乱孕交hd孕妇 | 免费在线观看小视频 | 久久香蕉精品 | 日日骚av一区二区 | 黄色的视频网站 | 亚洲成熟丰满熟妇高潮xxxxx | 波多野结衣视频观看 | av在线浏览 | 亚洲男人天堂影院 | 国产精品人人爽 | 在线观看精品视频 | 欧美乱大交xxxxx春色视频 | 国产古装艳史毛片hd | 中文字幕在线视频不卡 | 中文字字幕一区二区三区四区五区 | 在线播放a | 无人在线观看的免费高清视频 | 在线99 | 国产日韩精品中文字无码 | 91肉色超薄丝袜脚交一区二区 | 粉嫩av一区 | 久色伊人 | 成人小视频在线看 | 亚洲天堂首页 | 秋霞影院午夜老牛影院 | 国精品一区二区 | 私人网站 | 久久久久国产综合av天堂 | 国产精品久久久久久免费观看 | 性欧美丰满熟妇xxxx性 | 亚洲一区免费在线 | 鲍鱼av在线 | 欧美日韩精品一区二区三区视频播放 | 日本视频网 | 热99视频| 胖女人毛片 | 玩偶姐姐在线观看免费 | 亚洲欧美日韩一区二区三区四区 | 在线不卡国产 | 日日摸日日添日日碰9学生露脸 | 9191国产精品| jjzz国产| 国产精品无码久久久久久电影 | 粉嫩小泬无遮挡久久久久久 | 国产精品你懂得 | 成人手机视频 | 奇米视频在线观看 | 成年人免费视频观看 | 色偷av| 亚洲国产日韩一区二区 | 九九热在线视频观看 | 亚洲成人精选 | 午夜小电影 | 精品视频一区二区三区四区 | av加勒比| 日韩女优在线观看 | 亚洲免费视频观看 | 久久av资源网 | 奶水旺盛的女人伦理 | 国产激情视频一区 | 日本aa大片 | 久久经典 | 有奶水的迷人少妇 | 亚洲网站av| 无码人妻h动漫 | 日本亚洲免费 | 美女131爽爽爽 | 在线免费观看高清视频 | av爱爱爱 | 浪浪视频污 | 欧美日韩卡一卡二 | 成人av高清在线 | 手机av免费观看 | 亚洲AV永久无码国产精品国产 | 国产精品久久久久久吹潮 | 亚洲最大av在线 |