时间:2021-05-20
本文实例为大家分享了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 */@Componentpublic 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; } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
默认情况下部署Exchange后是无法向外网发送电子邮件的,即使网络是通畅的。这是因为默认情况下并没有设置发送连接器,Exchange不知道通过谁,通过什么方式
一、代表发送:顾名思义就是A代表B发送邮件例如:让用户zhangsan代表administrator发送邮件首先打开exchange管理控制台—&m
实验拓扑图:一、发送测试邮件:1.在实验之前,先向administrator的邮箱中发送一封测试邮件:二、安装代理软件:1.在exchange2013服务器上安
邮件大小限制是很多企业客户的一个常见需求。通过改变Exchange默认的邮件大小设置,可以让企业邮件系统更符合业务需求。本文讨论在Exchange2013中如何
exchange服务器是微软的邮件服务系统,exchange服务器是用来搭建邮件服务的,主要用于公司内部收发邮件,公司内部安装exchange后就可以给每个员工