SpringBoot整合JavaMail

  • SMTP(Simple Mail Tramsfer Protocol)

    1
    简单邮件传输协议,用于发送电子邮件的传输协议
  • POP3(Post Office Protocol - Version 3)

    1
    用于接收电子邮件的标准协议
  • IMAP(Internet Mail Access Protocol)

    1
    互联网消息协议,是POP3的替代协议
  1. 导入SpringBoot整合JavaMail的坐标

    1
    2
    3
    4
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
  2. 配置JavaMail

    1
    2
    3
    4
    5
    spring:
    mail:
    host: smtp.qq.com
    username: **********@qq.com
    password: *****************

    password的值在QQ空间的账户设置:

  3. 创建JavMailSender实例发送邮箱

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    import com.example.service.SendMailService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.mail.SimpleMailMessage;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.stereotype.Service;

    @Service
    public class SendMailServiceImpl implements SendMailService {

    @Autowired
    private JavaMailSender javaMailSender;

    //发送人
    private String from = "**********@qq.com";
    //接收人
    private String to = "**********@qq.com";
    //标题
    private String subject = "手握日月摘星辰";
    //正文
    private String context = "世间无我这般人";

    @Override
    public void sendMail() {

    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom(from+"(小甜甜)");
    message.setTo(to);
    message.setSubject(subject);
    message.setText(context);
    javaMailSender.send(message);

    }

    }

  4. 发送复杂邮件及附件(使用MimeMessage和MimeMessageHelper对象实现)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    import com.example.service.SendMailService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;
    import org.springframework.stereotype.Service;

    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;
    import java.io.File;

    @Service
    public class SendMailServiceImpl2 implements SendMailService {

    @Autowired
    private JavaMailSender javaMailSender;

    //发送人
    private String from = ""**********@qq.com";
    //接收人
    private String to = ""**********@qq.com";
    //标题
    private String subject = "手握日月摘星辰";
    //正文
    private String context = "<a href='https://******.com'>世间无我这般人---你的小甜甜</a></br>" +
    "<img src='https://img-blog.csdnimg.cn/93638ed4837a42c48c4da61d49b89def.png'/>";

    @Override
    public void sendMail() throws MessagingException {

    MimeMessage message = javaMailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message,true);
    helper.setFrom(from+"(小甜甜)");
    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(context,true);

    //添加附件
    File f1 = new File("E:\\IDEA\\springboot\\mail\\target\\mail-0.0.1-SNAPSHOT.jar");
    File f2 = new File("E:\\IDEA\\springboot\\mail\\src\\main\\resources\\background1.png");
    helper.addAttachment(f1.getName(),f1);
    helper.addAttachment("龙卷.png",f2);

    javaMailSender.send(message);
    }

    }