Java通過exchange協(xié)議發(fā)送郵件
本文實(shí)例為大家分享了Java通過exchange協(xié)議發(fā)送郵件的具體代碼,供大家參考,具體內(nèi)容如下
pom.xml 導(dǎo)入包
<dependency> <groupId>com.microsoft.ews-java-api</groupId> <artifactId>ews-java-api</artifactId> <version>2.0</version> </dependency>
application.properties 配置信息
#郵箱地址 youjia.exchange.mail.username=123@abc.com #郵箱密碼 youjia.exchange.mail.password=123456 #郵箱exchange服務(wù)地址,如果不知道找運(yùn)維 youjia.exchange.mail.host=https://*****/ews/exchange.asmx
代碼
package com.youjia.found.manager;
import com.youjia.found.common.util.Check;
import microsoft.exchange.webservices.data.core.ExchangeService;
import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
import microsoft.exchange.webservices.data.core.enumeration.property.BodyType;
import microsoft.exchange.webservices.data.core.service.item.EmailMessage;
import microsoft.exchange.webservices.data.credential.ExchangeCredentials;
import microsoft.exchange.webservices.data.credential.WebCredentials;
import microsoft.exchange.webservices.data.property.complex.MessageBody;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.mail.internet.InternetAddress;
import java.net.URI;
/**
* <P>exchange郵件處理類</P>
*
* @author eric
* @date 2020/2/6 11:08 AM
* @since
*/
@Component
public class MailExchangeManager {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Value("${youjia.exchange.mail.username}")
private String username ;
@Value("${youjia.exchange.mail.password}")
private String password;
@Value("${youjia.exchange.mail.host}")
private String host ;
/**
* 使用Exchange協(xié)議發(fā)送
* @param to 收件人
* @param subject 郵件主題
* @param content 正文
* @param filePath 附件
*
* @throws Exception
*/
public boolean sendMail(String to, String subject, String content, String filePath) {
logger.info("exchange郵件發(fā)送 to:{}, subject:{}, content:{},filePath:{}", to, subject, content,filePath);
boolean isOK=false;
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
ExchangeCredentials credentials = new WebCredentials(username,password);
service.setCredentials(credentials);
try {
service.setUrl(new URI(host));
EmailMessage msg = new EmailMessage(service);
msg.setSubject(subject);
MessageBody body = MessageBody.getMessageBodyFromText(content);
body.setBodyType(BodyType.HTML);
msg.setBody(body);
//支持多個(gè)收件人
InternetAddress[] addresses = InternetAddress.parse(to);
for (InternetAddress address : addresses) {
msg.getToRecipients().add(address.getAddress());
}
if (Check.notEmpty(filePath)) {
msg.getAttachments().addFileAttachment(filePath);
}
msg.send();
isOK=true;
} catch (Exception e) {
logger.error(e.getMessage(),e);
isOK= false;
}
return isOK;
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談idea live template高級(jí)知識(shí)_進(jìn)階(給方法,類,js方法添加注釋)
下面小編就為大家?guī)硪黄獪\談idea live template高級(jí)知識(shí)_進(jìn)階(給方法,類,js方法添加注釋)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾
文件拷貝是一個(gè)常見的任務(wù),無論是備份文件,還是將文件從一個(gè)位置復(fù)制到另一個(gè)位置,文件拷貝都是必不可少的,這篇文章主要給大家介紹了關(guān)于JavaSE經(jīng)典小練習(xí)項(xiàng)目之拷貝文件夾的相關(guān)資料,需要的朋友可以參考下2023-10-10
基于SpringBoot + Android實(shí)現(xiàn)登錄功能
在移動(dòng)互聯(lián)網(wǎng)的今天,許多應(yīng)用需要通過移動(dòng)端實(shí)現(xiàn)與服務(wù)器的交互功能,其中登錄是最常見且基礎(chǔ)的一種功能,本篇博客將詳細(xì)介紹如何使用 Spring Boot 和 Android 實(shí)現(xiàn)一個(gè)完整的登錄功能,需要的朋友可以參考下2024-11-11
springboot如何查找配置文件路徑的順序和其優(yōu)先級(jí)別
此文是在工作中遇到的關(guān)于springboot配置文件的問題,在網(wǎng)上查閱資料和自己測(cè)試之后記錄的,以便日后查閱。希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容實(shí)戰(zhàn)代碼
在日常工作中,有時(shí)可能會(huì)需要從龐大的PDF文檔中提取其中所包含的文本內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于如何利用Java高效提取PDF文件指定坐標(biāo)的文本內(nèi)容,需要的朋友可以參考下2024-01-01
java 中設(shè)計(jì)模式(值對(duì)象)的實(shí)例詳解
這篇文章主要介紹了java 中設(shè)計(jì)模式(值對(duì)象)的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09

