最近学会了这发送邮件小小的功能实现,在这里记录一下
1.导入依赖创建项目
2.编写配置文件
3.编写业务的实现调用
4.启动测试程序
1. 导入的依赖 ,导入的依赖可以在创建项目的时候选择导入
2. 配置文件的编写, 这里使用properties的格式编写,可以更直观方便看到整体的代码
## 邮件设置的协议以及对应的邮箱类型 这里注意小写
## 本人使用的是搜狐的邮箱所以为smtp.sohu.com
spring.mail.host=smtp.sohu.com
## 设置端口号 推荐使用 465
spring.mail.port=465
## 发送邮件的邮箱 注意这里的要与业务类中发送的要一致
spring.mail.username=xxxxxxx@sohu.com
## 这里的密码指的不是邮箱密码 而是你邮箱开通了对应服务的授权码,可以在邮箱界面设置中进行获取
## 想看如何获取授权码可以划到最下面
spring.mail.password=xxxxxxxxxx
## 设置邮件的字符集编码及其他的操作
spring.mail.default-encoding=UTF-8
## 显示打印运行时的日志
spring.mail.properties.mail.debug=true
## ssl的配置,这样设置就可以
spring.mail.properties.mail.smtp.ssl.enable=true
3. 简单业务的实现 ,
package com.example.demo;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import java.util.Date;
@SpringBootTest
class Demo4ApplicationTests {
// 注入该接口 bean
@Autowired
JavaMailSender javaMailSender;
@Test
void contextLoads() {
SimpleMailMessage message = new SimpleMailMessage();
// 邮件的主题设置 也就是显示在邮件标题
message.setSubject("来最帅的人的邮件");
// 发送邮件的邮箱
message.setFrom("xxxxxx@sohu.com");
// 发送的用户的邮箱
message.setTo("xxxxxxx@qq.com");
// 设置发送时间 但不是定时发送 只是发送时显示该时间
message.setSentDate(new Date());
// 需要发送的内容
message.setText("测试" );
// 调用该接口发送邮件
try{
javaMailSender.send(message);
System.out.println("发送成功!!!");
}catch(Exception e){
System.out.println("发送失败!!!");
e.printStackTrace();
}
}
}
4. 启动程序 这里直接启动测试类即可 无需再去启动springboot主程序,下面是运行结果
------------------------------------------------------------------------------------------------------------------------------
下面是演示 邮箱授权码的获取 ,这里演示的是 搜狐邮箱
1.首先进入登录搜狐邮箱 然后进入设置
2.点击邮件服务下方的 POP3/SMTP/IMAP 进入对应页面
3 .在这里即可获取授权码 如果需要重置授权码 这里的独立密码即授权码,这里本人已经获取过了,所以显示的是重置独立密码
注意:
但是这里邮箱的每日发送以及同时发送的邮件数及频率是有一定的限制的,因此注意发送邮件时尽量不要同一时间发送多封邮件或不间断发邮件的情况 ,然后 搜狐邮箱网上说一天能发送200封作用,但具体数量我没有测试过。
本文结束,这里只是简单的实现了发送一些邮件信息的功能,还未使用其他复杂的操作,例如:附件 图片等
本人萌新一枚,如有不足之处,请各位大佬指出,勿喷