Java通过exchange协议发送邮件

 更新时间:2020年02月11日 12:10:21   作者:tomato先生  
这篇文章主要为大家详细介绍了Java通过exchange协议发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java通过exchange协议发送邮件的具体代码,供大家参考,具体内容如下

pom.xml 导入包

<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服务地址,如果不知道找运维
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协议发送
 * @param to 收件人
 * @param subject 邮件主题
 * @param content 正文
 * @param filePath 附件
 * 
 * @throws Exception
 */
 public boolean sendMail(String to, String subject, String content, String filePath) {
 logger.info("exchange邮件发送 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);
  //支持多个收件人
  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;
 }
 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 浅谈idea live template高级知识_进阶(给方法,类,js方法添加注释)

    浅谈idea live template高级知识_进阶(给方法,类,js方法添加注释)

    下面小编就为大家带来一篇浅谈idea live template高级知识_进阶(给方法,类,js方法添加注释)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • jsp中存取session值简单介绍

    jsp中存取session值简单介绍

    这篇文章主要介绍了jsp中存取session值简单介绍,涉及request和session的域操作等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • JavaSE经典小练习项目之拷贝文件夹

    JavaSE经典小练习项目之拷贝文件夹

    文件拷贝是一个常见的任务,无论是备份文件,还是将文件从一个位置复制到另一个位置,文件拷贝都是必不可少的,这篇文章主要给大家介绍了关于JavaSE经典小练习项目之拷贝文件夹的相关资料,需要的朋友可以参考下
    2023-10-10
  • 基于SpringBoot + Android实现登录功能

    基于SpringBoot + Android实现登录功能

    在移动互联网的今天,许多应用需要通过移动端实现与服务器的交互功能,其中登录是最常见且基础的一种功能,本篇博客将详细介绍如何使用 Spring Boot 和 Android 实现一个完整的登录功能,需要的朋友可以参考下
    2024-11-11
  • 浅析JAVA 循环结构

    浅析JAVA 循环结构

    这篇文章主要介绍了JAVA 循环结构的相关资料,文中讲解的非常细致,示例代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • springboot如何查找配置文件路径的顺序和其优先级别

    springboot如何查找配置文件路径的顺序和其优先级别

    此文是在工作中遇到的关于springboot配置文件的问题,在网上查阅资料和自己测试之后记录的,以便日后查阅。希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 深入理解Java嵌套类和内部类

    深入理解Java嵌套类和内部类

    本篇文章主要介绍了深入理解Java嵌套类和内部类,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • mybatis-generator生成文件覆盖问题的解决

    mybatis-generator生成文件覆盖问题的解决

    这篇文章主要介绍了mybatis-generator生成文件覆盖问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java高效提取PDF文件指定坐标的文本内容实战代码

    Java高效提取PDF文件指定坐标的文本内容实战代码

    在日常工作中,有时可能会需要从庞大的PDF文档中提取其中所包含的文本内容,下面这篇文章主要给大家介绍了关于如何利用Java高效提取PDF文件指定坐标的文本内容,需要的朋友可以参考下
    2024-01-01
  • java 中设计模式(值对象)的实例详解

    java 中设计模式(值对象)的实例详解

    这篇文章主要介绍了java 中设计模式(值对象)的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09

最新评论