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;
 }

}

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

(0)

相关推荐

  • 基于SSM框架+Javamail发送邮件的代码实例

    本篇介绍基于SSM框架(Spring4.0+SpringMVC+Mybatis)组合的Javamail应用,邮箱的话基于腾讯的QQ邮箱,其实也是Foxmail邮箱 先要了解一下SMTP协议和SSL加密 SMTP:称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效.可靠的邮件传输.SMTP是一种请求响应的协议,也就是客户机向远程服务器发送请求,服务器响应,监听端口是25,所以其工作模式有两种:发送SMTP,接收SMTP. SSL加密:用来保障浏

  • java实现163邮箱发送邮件到qq邮箱成功案例

    下载和上传附件.发送短信和发送邮件,都算是程序中很常用的功能,之前记录了文件的上传和下载还有发送短信,由于最近比较忙,邮件发送的功能就没有时间去弄,现在终于成功以163邮箱发送邮件到qq邮箱,以下是相关代码,具体解释可以参考代码中注释: package test; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Properties; import java.ut

  • java发送邮件示例讲解

    本文实例讲解了java发邮件的详细过程,供大家参考,具体内容如下 1.邮件协议 发邮件的:SMTP (Simple Mail Transport  Protocal) 收邮件的协议:pop3 (Post Office Protocal 3) IMAP 新协议 发邮件也可以收邮件. (一步步的与服务器交互) SMTP : 2.收发邮件的过程: 一般情况下,smtp和pop3是两个服务器(主机). Smtp邮件的端口为25. POP3 端口 为110. 发邮件示例 1).安装foxmail: 2).

  • Java Mail与Apache Mail发送邮件示例

    一.邮件简介 一封邮件由很多信息构成,主要的信息如下,其他的暂时不考虑,例如抄送等: 1.收件人:收件人的邮箱地址,例如xxx@xx.com 2.收件人姓名:大部分的邮件显示时都会显示,例如loadfate 779554589@qq.com 3.发件人:发件人的邮箱地址 4.发件人姓名: 5.主题:邮件的标题 6.内容及附件:邮件的主要内容 二.使用Java发邮件的通用步骤 一般的项目中没有单独的邮件服务器,一般情况下都是使用别人的服务器. 1.设置smtp服务器:不同的邮件服务器有不同的地址,

  • java 发送邮件的实例代码(可移植)

    以一个web项目为例,代码是可以移植的 首先要导入mail.jar包,然后创建自己的类 1:HTMLSender类 复制代码 代码如下: package com.txq.mail; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.NoSuchProviderException; import javax.mail.Sess

  • java实现系统捕获异常发送邮件案例

    在实际运用中,比如你淘宝购物,申请退款,这时你在邮箱中看到退款邮件,或者你注册某个账号,申请验证邮箱通知等等,这些都是邮件发送,这里将介绍下系统捕获异常发送邮件案例. 准备工作: eclipse4.5 64位 jdk1.7 64位 邮件发送所需jar: fastjson-1.1.24.jar,javax.mail-1.5.6.jar 类Developer: 枚举类型,发送邮件人姓名和邮箱地址 package mail; /** * @class:Developer *@descript:枚举类型

  • Java基于JavaMail实现向QQ邮箱发送邮件

    最近项目在做新闻爬虫,想实现这个功能:爬虫某个页面失败后,把这个页面的 url 发到邮箱.最终实现的效果图如下,后期可以加上过滤标签.失败状态码等,方便分类搜索异常. 开发人员可以根据邮件里的 url 和堆栈信息,分析爬虫失败的原因. 是不是服务器 down 了? 还是爬虫的 Dom 解析没有解析到内容? 还是正则表达式对于这个页面不适用? 开启SMTP服务 在 QQ 邮箱里的 设置->账户里开启 SMTP 服务 注意开启完之后,QQ 邮箱会生成一个授权码,在代码里连接邮箱使用这个授权码而不是原

  • Java实现发送邮件功能时碰到的坑

    之前用163邮箱发邮件时明明是成功的,但是使用中国移动自己的邮箱时,无论如何在linux服务器中都发送不成功,一开始报如下错误: javax.mail.MessagingException: Unknown SMTP host: mail.chinamobilesz.com at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1959) ~ [mail-1.4.7.jar:1.4.7] at com.sun.mail.

  • java实现基于SMTP发送邮件的方法

    本文实例讲述了java实现基于SMTP发送邮件的方法.分享给大家供大家参考.具体实现方法如下: import java.util.Date; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Tra

  • JavaWeb中使用JavaMail实现发送邮件功能实例详解

    现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能,用户注册成功之后,就将用户的注册信息以Email的形式发送到用户的注册邮箱当中,实现发送邮件功能就得借助于JavaMail了. 一.搭建开发环境 1.1.创建Web项目 1.2.用户注册的Jsp页面 register.jsp <%@ page language="java" pag

随机推荐