SpringBoot(十一):SpringBoot发送邮件
2018-01-03 17:02
375 查看
之前一段时间没有上CSDN发表,自己本地记在有道云的,现在都发出来,希望对你们有帮助。
···
发送邮件
···
发送邮件
一、依赖
<!-- javax.mail --> <dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.6.0</version> </dependency>
二、邮箱配置
mail.smtp.auth=true mail.transport.protocol=smtp mail.send.charset=UTF-8 mail.smtp.port=465 mail.is.ssl=true mail.host=smtp.163.com mail.auth.name=xx@163.com mail.auth.password= mail.smtp.timeout=5000
三、代码
工具类 EmailUtilspackage cn.aduu.utils; import com.sun.mail.util.MailSSLSocketFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.Environment; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import javax.mail.internet.MimeMessage; import java.io.File; import java.security.GeneralSecurityException; import java.util.List; import java.util.Map; import java.util.Properties; /** * @author zh * @ClassName cn.aduu.utils.EmailUtils * @Description */ @Component public class EmailUtils { private static final Logger logger = LoggerFactory.getLogger(EmailUtils.class); @Autowired private Environment env; private static String auth; private static String host; private static String protocol; private static int port; private static String authName; private static String password; private static boolean isSSL; private static String charset ; private static String timeout; @PostConstruct public void initParam () { auth = env.getProperty("mail.smtp.auth"); host = env.getProperty("mail.host"); protocol = env.getProperty("mail.transport.protocol"); port = env.getProperty("mail.smtp.port", Integer.class); authName = env.getProperty("mail.auth.name"); password = env.getProperty("mail.auth.password"); charset = env.getProperty("mail.send.charset"); isSSL = env.getProperty("mail.is.ssl", Boolean.class); timeout = env.getProperty("mail.smtp.timeout"); } /** * 发送邮件 * @param subject 主题 * @param toUsers 收件人 * @param ccUsers 抄送 * @param content 邮件内容 * @param attachfiles 附件列表 List<Map<String, String>> key: name && file */ public static boolean sendEmail(String subject, String[] toUsers, String[] ccUsers, String content, List<Map<String, String>> attachfiles) { boolean flag = true; try { JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setHost(host); javaMailSender.setUsername(authName); javaMailSender.setPassword(password); javaMailSender.setDefaultEncoding(charset); javaMailSender.setProtocol(protocol); javaMailSender.setPort(port); Properties properties = new Properties(); properties.setProperty("mail.smtp.auth", auth); properties.setProperty("mail.smtp.timeout", timeout); if(isSSL){ MailSSLSocketFactory sf = null; try { sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable", "true"); properties.put("mail.smtp.ssl.socketFactory", sf); } catch (GeneralSecurityException e) { e.printStackTrace(); } } javaMailSender.setJavaMailProperties(properties); MimeMessage mailMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true); messageHelper.setTo(toUsers); if (ccUsers != null && ccUsers.length > 0) { messageHelper.setCc(ccUsers); } messageHelper.setFrom(authName); messageHelper.setSubject(subject); messageHelper.setText(content, true); if (attachfiles != null && attachfiles.size() > 0) { for (Map<String, String> attachfile : attachfiles) { String attachfileName = attachfile.get("name"); File file = new File(attachfile.get("file")); messageHelper.addAttachment(attachfileName, file); } } javaMailSender.send(mailMessage); } catch (Exception e) { logger.error("发送邮件失败!", e); flag = false; } return flag; } }
四、测试
package cn.aduu.web; import cn.aduu.utils.EmailUtils; import com.fasterxml.jackson.core.JsonProcessingException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * @author zh * @ClassName cn.aduu.web.EmailController * @Description */ @RestController public class EmailController { private static final Logger logger = LoggerFactory.getLogger(EmailController.class); @RequestMapping("sendEmail") public String sendEmail() throws JsonProcessingException { boolean isSend = EmailUtils.sendEmail("这是一封测试邮件", new String[]{"3379218@qq.com"}, null, "<h3><a href='http://www.baidu.com'>百度一下,你就知道</a></h3>", null); return "发送邮件:" + isSend; } }
相关文章推荐
- SpringBoot(十一):SpringBoot发送邮件
- SpringBoot(十一):SpringBoot发送邮件
- spring- boot 发送邮件接口+freemarker视图模板引擎
- spring-boot实战【12】:Spring Boot中使用JavaMailSender发送邮件
- Spring Boot 邮件发送
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot中使用JavaMailSender发送邮件
- 170718、springboot编程之发送邮件
- 使用Springboot Email实现邮件发送
- springboot发送邮件
- springboot发送邮件的实现例子
- Spring Boot 实现自动发送邮件
- springboot邮件发送功能和两个常见问题
- 在Spring Boot中使用JavaMailSender发送各类邮件
- spring boot 发送邮件带附件出现Not in multipart mode - create an appropriate MimeMessageHelper错误
- Spring Boot中使用JavaMailSender发送邮件
- Spring Boot 菜鸟教程 26 集成邮件发送
- spring boot 发送邮件
- SpringBoot 2.x 集成QQ邮箱、网易系邮箱、Gmail邮箱发送邮件
- Spring Boot发送邮件详解