Springboot--JavaMail发送邮件

大家好!今天给大家分享的知识是Springboot整合JavaMail来发送邮件。

一、JavaMail是什么?

JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口 。它是Sun发布的用来处理email的API。 它可以方便地执行一些常用的邮件传输。 我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。简单理解就是可以用它来实现用java来发送邮件。

二、配置并运行

1.配置

还是老样子,先来建项目,然后导入入JavaMail的依赖。

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

导入依赖项之后需要配置yml文件。

 

在这里有几个点是必填的。第一个host的意思是我们用什么邮箱来进行发送,前面加上smtp协议,第二个username是我们发送邮件的邮箱是哪个,还有第三个密码也是必填的。 这个password不是随便乱写的 ,在这里我用的是QQ邮箱,是需要从QQ邮箱来获取这个密码的。下面我来告诉大家。

首先打开QQ邮箱,点击设置

然后点击账户,往下滑。 

 

然后找到SMTP服务,点击开启,就会出现一个属于你自己的密码,我们将出现的密码复制过来即可。 (由于我已经开启了,就不再演示了)

 这样就完成了前期的配置工作。

2.发送邮件

我们先来建一个Service层,并且建一个实现类。

先来写接口,代码如下:

package com.example.springboot_javaemail.service;


public interface SendMailService {
    void SendMail();
}

实现类,代码如下:

package com.example.springboot_javaemail.service.impl;

import com.example.springboot_javaemail.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; //javamail对象
    //发送人
    private String from = "[email protected]";
    //接收人
    private String to ="[email protected]";
    //标题
    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); //内容
        //message.setSentDate(); //定时发送
        javaMailSender.send(message); //发送
    }
}

在这里需要再创建一个SimpleMailMessage对象,要知道SimpleMailMessage是值对象,封装了一些简单的属性,如from、to、subject、text等等,SimpleMailMessage只能用来发送text格式的邮件 。

 然后我们来测试一下

package com.example.springboot_javaemail;

import com.example.springboot_javaemail.service.SendMailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringbootJavaemailApplicationTests {

    @Autowired
    private SendMailService service;

    @Test
    void contextLoads() {
        service.SendMail();
    }

}

 

可以看到,成功发送邮件。 


总结

本文仅仅说了发送简单文本邮件,学起来还是比较简单的,有不足的地方请指出!谢谢各位的观看!!

猜你喜欢

转载自blog.csdn.net/m0_66403070/article/details/130717524
今日推荐