安装依赖
项目根目录下pom.xml下添加以下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
application.properties
在项目的application.property中添加如下配置,以163邮箱为例,
网易邮箱服务器地址:
- POP3服务器: pop.163.com
- SMTP服务器: smtp.163.com
- IMAP服务器: imap.163.com
spring.mail.host=smtp.163.com
spring.mail.username=邮箱用户名,xxx@163.com
spring.mail.password=授权码,进入163邮箱中的设置页面可进行设置,不是你的邮箱密码
spring.mail.default-encoding=UTF-8
发送简单邮件
@Autowired
private JavaMailSender mailSender;
发邮箱的变量
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(from); //设置发送者,发送者必须是和application.properties配置的邮箱服务器相匹配,这里必须是163邮箱,否则会报错。
simpleMailMessage.setTo(to); //设置接收者,任何邮箱都可以。不一定得是163邮箱。
simpleMailMessage.setSubject(subject); //邮件标题
simpleMailMessage.setText(content); //邮件主题内容。
try {
mailSender.send(message);
logger.info("发送邮件成功");
} catch (Exception e) {
logger.error("发送邮件时异常!", e.getMessage());
}
发送html邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message, true);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setTo(to);
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content, true); //true表示发html邮件 content为一段html代码
mailSender.send(mimeMessage);
logger.info("发送邮件成功");
} catch (Exception e) {
logger.error("发送邮件时异常!", e.getMessage());
}
发送带附件的邮件
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message, true);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setTo(to);
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content, true);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = filePath.substring(filePath.lastIndexOf(File.separator));
helper.addAttachment(fileName, file);
mailSender.send(message);
logger.info("发送带附件的邮件成功。");
} catch (MessagingException e) {
logger.error("发送带附件的邮件异常!", e.getMessage());
}
发送带图片的邮件
String rscId = "hezihao006";
String content="<html><body>这是添加了图片的邮件:<img src=\'cid:" + rscId + "\' ></body></html>";
String imgPath = "C:\\xxx\\board.jpg";
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
mimeMessageHelper.setFrom(from);
mimeMessageHelper.setTo(to);
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(content, true);
FileSystemResource res = new FileSystemResource(new File(imgPath));
helper.addInline(rscId, res);
mailSender.send(message);
logger.info("嵌入静态资源的邮件已经发送。");
} catch (MessagingException e) {
logger.error("发送嵌入静态资源的邮件时发生异常!", e);
}