springboot发送邮件

来源:互联网 发布:美国历史书籍推荐 知乎 编辑:程序博客网 时间:2024/06/07 23:03
<?xml version="1.0"?><projectxsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><parent><groupId>com.lance</groupId><artifactId>spring-boot-parent</artifactId><version>1.1</version><relativePath>../spring-boot-parent/pom.xml</relativePath></parent><artifactId>spring-boot-email</artifactId><packaging>war</packaging><name>spring-boot-email</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.12</version></dependency><!-- common --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.2.1</version></dependency></dependencies><build><finalName>spring-boot-email</finalName></build></project>
//application.properties
# IDENTITY (ContextIdApplicationContextInitializer)spring.application.index=ActiveMQ.v1.1spring.application.name=ActiveMQ Boot#Serverserver.port=80server.jsp-servlet.class-name=org.apache.jasper.servlet.JspServletserver.error.whitelabel.enabled=true#LOGlogging.config=classpath:log4j2.xml# Email (MailProperties)spring.mail.default-encoding=UTF-8spring.mail.host=smtp.qq.comspring.mail.password=123456spring.mail.port=25spring.mail.protocol=smtpspring.mail.test-connection=falsespring.mail.username=server1@qq.comspring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.starttls.enable=truespring.mail.properties.mail.transport.protocol=smtpsspring.mail.properties.mail.smtps.quitwait=false
package com.lance.email;import org.apache.commons.lang3.StringUtils;import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.mail.MailException;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSender;import org.springframework.stereotype.Component;@Component("emailSender")public class EmailSender {private Logger logger = LogManager.getLogger(getClass());private String defaultFrom = "server1@qq.com";@Autowiredprivate JavaMailSender javaMailSender;/** * 发送邮件 * @param to收件人地址 * @param subject邮件主题 * @param content邮件内容 * @author lance */public boolean sender(String to, String subject, String content) {return sender(to, subject, content, true);}/** * 发送邮件 * @param to收件人地址 * @param subject邮件主题 * @param content邮件内容 * @param html是否格式内容为HTML * @author lance */public boolean sender(String to, String subject, String content, boolean html){if(StringUtils.isBlank(to)) {logger.error("邮件发送失败:收件人地址不能为空.");return false;}return sender(new String[]{to}, subject, content, html);}/** * sender message * @param to * @param subject * @param content * @param html * @return */public boolean sender(String[] to, String subject, String content, boolean html){if(to == null || to.length == 0) {logger.error("批量邮件发送失败:收件人地址不能为空.");return false;}SimpleMailMessage simpleMailMessage = new SimpleMailMessage();simpleMailMessage.setFrom(defaultFrom);simpleMailMessage.setTo(to);simpleMailMessage.setSubject(subject);simpleMailMessage.setText(content);try {javaMailSender.send(simpleMailMessage);return true;} catch (MailException e) {logger.error("发送邮件错误:{}, TO:{}, Subject:{},Content:{}.", e, to, subject, content);return false;}}}