SpringBoot发送普通邮件,html邮件

1.前言    

        1.我们在开发中经常会碰到Email邮件发送的场景,如注册,找回密码,发送验证码向客户发送邮件、通过邮件发送系统情况,通过邮件发送报表信息等,实际应用场景很多。

2.发送和接收邮件的协议

(1)发送邮件:SMPT 、MIME,是一种基于“推”的协议,通过SMPT协议将邮件发送至邮件服务器,MIME协议是对SMPT协议的一种补充,如发送图片附件等;

(2)接受邮件:POP、IMAP,是一种基于“拉”的协议,收件人通过POP协议从邮件服务器拉去邮件。

3.发送邮件的配置

我们已QQ邮件为例

打开QQ邮箱

点击设置

点击账户

单击“开启”按钮会进入验证过程,根据引导步骤发送短信,验证成功后即可以得到自己QQ邮箱的客户端授权码了

 

 获取授权码之后我们需要在YML或者application里面配置

4.创建一个springBoot项目

4.1导入依赖

spring-boot-starter-mail也是springboot官方的依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

4.2在配置文件里面配置邮箱信息

spring:
  mail:
    host: smtp.qq.com           #发送邮件服务器
    username: 2379744205@qq.com #发送邮件的邮箱地址
    password: 刚才邮箱客户端给你的授权码,而不是邮箱密码
    from: 2379744205@qq.com   #发邮件的邮箱

5.发送普通邮件

5.1创建一个MailService类来封装邮件的发送

 //SpringBoot 提供了应该发邮件的简单抽象,
    // 使用的是下面这个接口,这里直接注入即可使用
    @Autowired
    private JavaMailSender javaMailSender;

    //根据配置文件中自己的QQ邮箱
    @Value("${spring.mail.from}")
    private String from;

    /*
    @Param to 收件人
    @Param subject 主题
    @Param content
     */

    //发送普通邮件
    public void sendSimpleMail(String to,String subject,String content){
        //创建SimpleMailMessage对象
        SimpleMailMessage message=new SimpleMailMessage();

        //邮件发送
        message.setFrom(from);
        //邮件接收人,可以同时发给很多人
        //message.setTo(string1,string2,string3,string4,);
        message.setTo(to);
        //邮件主体
        message.setSubject(subject);
        //邮件内容
        message.setText(content);
        //通过JavaMailSender类把邮件发送出去
        javaMailSender.send(message);
    }

我们调用一下这个方法

@Autowired
    private MailService mailService;
    @Test
    public void mail(){
        String to="260433540@qq.com";
        String subject="主题:普通的邮件 ";
        String content="内容:这是一个普通的邮件,祝您生活愉快!";
        mailService.sendSimpleMail(to,subject,content);
    }

这样就发送成功了

 5.2发送HTML样式的邮件

很多时候邮件需要美观的样式,这时候可以使用HTML格式

那么我们就需要使用

JavaMailSender的createMimeMessage();方法了

顾名思义mime:

多用途的网际邮件扩充协议

所以不止于发送HTML类型的邮件

    @Autowired
    private JavaMailSender javaMailSender;

    //根据配置文件中自己的QQ邮箱
    @Value("${spring.mail.from}")
    private String from;

    /*
    @Param to 收件人
    @Param subject 主题
    @Param content
     */

    //发送HTML邮件
    public void sendHtmlMail(String to,String subject,String content){
        //获取MimeMessage
        //面向对象的多态,javaMailSender.createMimeMessage(),多用途的网际邮件扩充协议
        MimeMessage message=javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper;

        try {
            mimeMessageHelper=new MimeMessageHelper(message,true);
            //邮件发送人
            mimeMessageHelper.setFrom(from);
            //邮件接收人
            mimeMessageHelper.setTo(to);
            //邮件主题
            mimeMessageHelper.setSubject(subject);
            //邮件内容,HTML格式
            mimeMessageHelper.setText(content);
            javaMailSender.send(message);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
 @Test
    public void sendMailHtml(){
        String to="260433540@qq.com";
        String subject="主题:HTML的邮件 ";
        String content="<h1>这是一个HTML类型的邮件</h1>";
        mailService.sendHtmlMail(to,subject,content);
    }

我们测试一下

 变成h1格式

6.下期介绍发送带附件的邮件和图片邮件

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qingqingyyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值