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();
        }
    }
经验分享 程序员 微信小程序 职场和发展