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文件配置

spring:
  mail:
    host: smtp.qq.com            #协议,163邮箱就是smtp.163.com
    username: 123456@qq.com       #发送端的邮箱地址
    password: gmsgycitwulgdifd    #发送端的邮箱的smtp的密码
    port: 465                     #腾讯qq的邮箱端口
    default-encoding: utf-8
    protocol: smtps                #与端口绑定的协议,必须设置,而不是采用默认的smtp。要不然抛异常

2.3 调用客户端

@Autowired
    private JavaMailSender javaMailSender;  //发送邮件的类
    @Override
    public void sendMail(Mail mail) {
        SimpleMailMessage mailMessage = new SimpleMailMessage();  //邮件的类
        mailMessage.setFrom(mail.getFrom());    //发送源的邮箱地址 "123456@qq.com"
        mailMessage.setTo(mail.getTo());        //目的邮箱的地址  "1234567@163.com"
        mailMessage.setSubject(mail.getSubject()); //邮件的标题
        mailMessage.setText(mail.getText());      //邮件内容
        javaMailSender.send(mailMessage);      //发送邮件
    }

三、多部件邮件

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();
        }
    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值