springboot实现邮箱注册
配置
#邮件发送配置
spring.mail.default-encoding=UTF-8
spring.mail.host=smtp.qq.com
spring.mail.username=XXX@qq.com
#邮箱授权码
spring.mail.password=授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.protocol=smtp
service
@Slf4j
@Service("mailService")
public class MailService {
@Value("${spring.mail.username}")
private String from;
@Autowired
private JavaMailSender mailSender;
public void sendSimpleMail(String to, String title, String content) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(title);
message.setText(content);
mailSender.send(message);
log.info("邮件发送成功");
}
/**
* 发送带附件的邮件
* @param to
* @param title
* @param cotent
* @param fileList
*/
public void sendAttachmentsMail(String to, String title, String cotent, List<File> fileList) {
MimeMessage message = mailSender.createMimeMessage();
try {
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(title);
helper.setText(cotent);
String fileName = null;
for (File file : fileList) {
fileName = MimeUtility.encodeText(file.getName(), "GB2312", "B");
helper.addAttachment(fileName, file);
}
} catch (Exception e) {
e.printStackTrace();
}
mailSender.send(message);
log.info("邮件发送成功");
}
controller
@Autowired
private MailService mailService;
@GetMapping(value = "email")
public String getCheckCode(@RequestParam String memberEmail){
System.out.println("邮箱为"+memberEmail);
String checkCode = String.valueOf(new Random().nextInt(899999) + 100000);
String message = "您的注册验证码为:"+checkCode;
try {
mailService.sendSimpleMail(memberEmail, "注册验证码", message);
}catch (Exception e){
return "500";
}
return checkCode;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗