前期准备
要想实现qq邮箱发送,我们就要开启该服务,获得授权。
1、打开qq邮箱来的账户与安全页面。
2、来到账户与安全页面后,进入安全设置。
3、找到SMTP/IMAP服务,我们开启服务。
4、开启服务后,我们会获得一个授权码,保存好该授权码,在Java程序中我们会对其进行一个配置。
在Java中进行一个配置(这里我是以springboot框架中的示例)
1、先对application.yml中进行配置,最主要的是我们要注意配置参数的层级关系,千万不能出错,因为我第一次进行配置时就是层级关系出错了,走了许多弯路。
spring:
mail:
host: smtp.qq.com
port: 465 # 使用SSL连接的端口
username: 发送方的请求账号 # 确保使用完整的邮箱地址
password: 自己的授权码 # 授权码
default-encoding: utf-8
properties:
mail:
smtp:
auth: true
ssl:
enable: true # 启用SSL
starttls:
enable: true
required: true
2、接下来就是在需要的地方写代码
首先注入一个JavaMailSender对象
@Autowired
private JavaMailSender mailSender;
下面实现发送的代码
//2.向邮箱发送验证码(集成邮件功能
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("发送的qq邮箱");//发送的qq邮箱
message.setTo("接收邮箱的qq");//接收邮件的qq邮箱
message.setSubject("主题:注册验证码");
//随机生成6位数字验证码
Random random = new Random();
int randomNum = random.nextInt(1000000);
String randomCode = String.format("%06d", randomNum);
System.out.println(randomNum);
message.setText(randomCode);
mailSender.send(message);//发送邮件
下面时整体代码,使用时调用代码即可
package com.ffyc.news.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;
import java.util.Random;
import java.util.concurrent.TimeUnit;
/*
发送qq邮箱
*/
@Component
public class SendEmailUtil {
@Autowired
private JavaMailSender mailSender;
public void sendEmail(String account){
System.out.println(account);
//2.向邮箱发送验证码(集成邮件功能
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("发送的qq邮箱");//发送的qq邮箱
message.setTo(account);//接收邮件的qq邮箱
message.setSubject("主题:注册验证码");
//随机生成6位数字验证码
Random random = new Random();
int randomNum = random.nextInt(1000000);
String randomCode = String.format("%06d", randomNum);
System.out.println(randomNum);
message.setText(randomCode);
mailSender.send(message);//发送邮件
}
}