原文地址
前言
java
邮件的方案可太多了,不过既然是用了spring
的框架那么我们肯定要优先使用spring
的解决方案啦(虽然spring自己的解决方案也是包装别人的就是了,但至少不用自己写start-configuration
了)
引包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>${spring-boot.version}</version>
</dependency>
获取授权密钥
每个运营商获得的方式不同,这里贴上当前版本腾讯邮箱的获取方式
配置文件
spring:
mail:
host: smtp.qq.com
port: 465
username: example@qq.com
password: your_auth_code
protocol: smtps
工具类
这里给两个简单例子,普通邮件
@Component
public class SendEmailBiz {
@Resource
private JavaMailSender emailSender;
@Value("${spring.mail.username}")
private String from;
public void sendSimpleMessage(String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(text);
emailSender.send(message);
}
}
附件邮件
@Component
public class SendEmailBiz {
@Resource
private JavaMailSender emailSender;
@Value("${spring.mail.username}")
private String from;
public void sendAppendixMail(String to, String subject, String text,
String fileName, InputStream inputStream) {
try {
MimeMessage message = emailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(text);
helper.addAttachment(fileName, new InputStreamResource(inputStream));
emailSender.send(message);
} catch (MessagingException exception) {
exception.printStackTrace();
throw new CaskYuiException("mail send fail");
}
}
}