Springboot整合JavaMail(发送邮件)
一、邮件的基础概念
-
SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议 POP3(Post Office Protocol-Version 3):用于接收电子邮件的标准协议 IMAP(Internet Mail Access Protocol):互联网消息协议,是POP3的替代协议。
二、springboot整合JavaMail步骤
2.1 maven管理坐标,pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.2 yml文件配置
2.3 调用客户端
三、多部件邮件
3.1 发送html格式的内容
可以是超链接,图片等
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendMail(Mail mail) {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(mail.getFrom());
List<String> to = mail.getTo();
helper.setTo(to.toArray(new String[to.size()])); //发送给多个邮箱
helper.setSubject(mail.getSubject());
//"<img src=https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg.lemeitu.com%2Fm00%2F19%2F17%2Ff9bbd26a791748cb501443a8527a8f44__w.jpg&refer=http%3A%2F%2Fimg.lemeitu.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1670850728&t=33c72749872d1b0d60e1bab456fcfa29/><a href=https://www.baidu.com/>点开有惊喜</a>"
helper.setText(mail.getText(),true);//开启html,内容可以是超链接、图片等
javaMailSender.send(message);
}catch (Exception e){
e.printStackTrace();
}
}
3.2 发送附件
public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart) throws MessagingException {
this(mimeMessage, multipart, (String)null);
}
@Autowired
private JavaMailSender javaMailSender;
@Override
public void sendMail(Mail mail) {
try {
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message,true); //开启附件传输
helper.setFrom(mail.getFrom());
List<String> to = mail.getTo();
helper.setTo(to.toArray(new String[to.size()])); //发送给多个邮箱
helper.setSubject(mail.getSubject());
helper.setText(mail.getText(),true);
//添加附件
File f1 = new File(mail.getFileName());
helper.addAttachment(f1.getName(),f1);//文件名,文件句柄
javaMailSender.send(message);
}catch (Exception e){
e.printStackTrace();
}
}
