前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot整合email

SpringBoot整合email

作者头像
CBeann
发布2023-12-25 17:04:04
1200
发布2023-12-25 17:04:04
举报
文章被收录于专栏:CBeann的博客CBeann的博客

构建项目(以QQ邮箱为例)

构建SpringBoot项目(web)

pom.xml

代码语言:javascript
复制
<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>

application.properties(敲黑板)

spring.mail.username为你QQ邮箱

spring.mail.password不是不是不是 你的邮箱密码,是授权码,授权码,授权码 (授权码获取方式在下面有)

代码语言:javascript
复制
######################################
###Email
######################################
spring.mail.host=smtp.qq.com
#spring.mail.host=14.17.57.241
spring.mail.username=2568230656@qq.com
spring.mail.password=nezkixooldtw
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

EmailService

代码语言:javascript
复制
package com.example.demo;

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 EmailService {

	@Autowired
	private JavaMailSender mailSender;

	// 发送简单邮件
	/**
	 * 
	 * @param from
	 *            发送方
	 * @param to
	 *            接收方
	 * @param subject
	 *            主题
	 * @param text
	 *            内容
	 */
	public void sendSimpleMail(String from, String to, String subject, String text) {

		SimpleMailMessage message = new SimpleMailMessage();
		message.setFrom(from);
		message.setTo(to);
		message.setSubject(subject);
		message.setText(text);
		mailSender.send(message);
	}
}

EmailController

代码语言:javascript
复制
package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class EmailController {

	@Autowired
	private EmailService emailService;

	@RequestMapping("/email")
	@ResponseBody
	public String sendEmail() {

		// 发送邮件
		emailService.sendSimpleMail("2568230656@qq.com", "956056312@qq.com", "主题:简单邮件", "测试邮件内容");

		return "success";
	}

}

测试

代码语言:javascript
复制
http://localhost:8080/email

遇到的坑

异常

exception

具体异常记不清楚,我把异常用谷歌翻译的大体意思是 smtp.qq.com解析不到

解决办法

确保 ①用户名、②密码(授权码)、③编码 、④邮箱开启POP3/SMTP服务 没有问题的基础之上,用URL地址 ,查询 (smtp.qq.com)或者 (smtp.163.com)的ip地址,将配置文件中的域名改为你查询到的ip地址,如下所示

代码语言:javascript
复制
#spring.mail.host=smtp.qq.com
spring.mail.host=14.18.245.164

发送邮箱运行太慢

表现形式:

请求URL后要转圈圈很长一段时间

解决办法:异步加载

1)在方法上添加注解@Async

代码语言:javascript
复制
@Async
	public void sendSimpleMail(String from, String to, String subject, String text) {

		SimpleMailMessage message = new SimpleMailMessage();
		message.setFrom(from);
		message.setTo(to);
		message.setSubject(subject);
		message.setText(text);
		mailSender.send(message);
	}

2)在启动类上开启异步注解功能@EnableAsync

代码语言:javascript
复制
@SpringBootApplication
@EnableAsync//开启异步注解功能
public class SpringBootDemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootDemoApplication.class, args);
	}

}

邮箱授权码的获取(以QQ邮箱为例)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 构建项目(以QQ邮箱为例)
    • 构建SpringBoot项目(web)
      • pom.xml
        • application.properties(敲黑板)
          • EmailService
            • EmailController
              • 测试
              • 遇到的坑
                • 异常
                  • exception
                  • 解决办法
                • 发送邮箱运行太慢
                  • 表现形式:
                  • 解决办法:异步加载
                • 邮箱授权码的获取(以QQ邮箱为例)
                相关产品与服务
                腾讯云服务器利旧
                云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档