base on springboot
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>
配置
spring.mail.host=partner.outlook.cnspring.mail.username=xxx@xxx.comspring.mail.password=xxxxspring.mail.port=587spring.mail.protocol=smtpspring.mail.properties.mail.smtp.connectiontimeout=5000spring.mail.properties.mail.smtp.timeout=3000spring.mail.properties.mail.smtp.writetimeout=5000spring.mail.default-encoding=UTF-8# 是否启动时测试连接spring.mail.test-connection=false
impl
@Autowiredprivate JavaMailSender javaMailSender;@Overridepublic void sendMail(SystemMailDTO dto) { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper; try { messageHelper = new MimeMessageHelper(mimeMessage, true); // nick<xxx.xxx.com>可以使用昵称进行发送 messageHelper.setFrom(nick + "<" +dto.getMailFrom() + ">"); messageHelper.setTo(dto.getMailTo().split(",")); messageHelper.setCc(dto.getMailCc().split(",")); messageHelper.setBcc(dto.getMailBcc().split(",")); messageHelper.setSubject(dto.getSubject()); messageHelper.setText(dto.getContent()); for (SystemFileDTO file : dto.getMailAttachments()) { messageHelper.addAttachment(file.getName(), new File(file.getPath())); } javaMailSender.send(mimeMessage); } catch (MessagingException e) { } }/** 部分场景可能需要配置smtp的tls*/@Overridepublic void afterPropertiesSet() { enable = Boolean.parseBoolean(enableInProperties); if (javaMailSender instanceof JavaMailSenderImpl) { JavaMailSenderImpl mailSender = (JavaMailSenderImpl) javaMailSender; Properties properties = mailSender.getJavaMailProperties(); properties.put("mail.smtp.auth", true); properties.put("mail.smtp.starttls.enable", true); }}