发送邮件常用的有163邮箱,qq邮箱,其中发送邮件的协议叫SMTP,接收邮件的协议叫POP3/IMAP,IMAP协议比POP3更强大,不过我们不需要要关注,因为服务器集成邮件只会涉及到发送邮件,一般不涉及接收邮件。
什么是SMTP?
SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。
什么是IMAP?
IMAP全称为Internet Message Access Protocol(互联网邮件访问协议),IMAP允许从邮件服务器上获取邮件的信息、下载邮件等。IMAP与POP类似,都是一种邮件获取协议。
什么是POP3?
POP3全称为Post Office Protocol 3(邮局协议),POP3支持客户端远程管理服务器端的邮件。POP3常用于“离线”邮件处理,即允许客户端下载服务器邮件,然后服务器上的邮件将会被删除。目前很多POP3的邮件服务器只提供下载邮件功能,服务器本身并不删除邮件,这种属于改进版的POP3协议
接下来需要进入QQ邮箱设置
设置----》 账户
开启POP3/SMTP服务 并获取授权码 获取授权码之前 它会提示发送一条短信 按照提示操作
引入依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
# 版本是你springboot的版本
<version>2.7.0</version>
</dependency>
yml配置:
spring:
mail:
# 下面这个是QQ邮箱host , 企业邮箱 : smtp.exmail.qq.com
host: smtp.qq.com
# tencent mail port 这个是固定的
port: 465
# 你的QQ邮箱
username: xxxxx@qq.com
# 进入邮箱配置后得到的授权码
password: xxxxxxxxx
#test-connection: true
default-encoding: utf-8
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
port: 465
protocol: smtps
java代码测试
@RequestMapping("/mail")
@RestController
public class MailDemoController {
@Autowired
private JavaMailSender javaMailSender;
@GetMapping
public String senderMail() {
SimpleMailMessage message = new SimpleMailMessage();
// 发件人 你的邮箱
message.setFrom("xxxxx@qq.com");
// 接收人 接收者邮箱
message.setTo(new String[]{"xxx@qq.com"});
//邮件标题
message.setSubject("hello");
//邮件内容
message.setText("world");
javaMailSender.send(message);
return "success";
}
}