欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 在SpringBoot中使用AWS SDK实现邮箱验证码服务

在SpringBoot中使用AWS SDK实现邮箱验证码服务

2025/6/10 3:55:09 来源:https://blog.csdn.net/m0_54348823/article/details/148473722  浏览:    关键词:在SpringBoot中使用AWS SDK实现邮箱验证码服务

1.依赖导入(maven)

        <dependency><groupId>software.amazon.awssdk</groupId><artifactId>ses</artifactId><version>2.31.46</version></dependency>

2.申请两个key + 发件人邮箱需要验证:

aws.aws_access_key_id
aws_secret_access_key

3.生成随机6位验证码

    // 生成随机验证码(6位数字)public String generateVerificationCode() {return String.format("%06d", new java.util.Random().nextInt(999999));}

4.通过构造函数注入依赖,并绑定两个key和region

private final SesClient sesClient;public EmailVerificationService(@Value("${cloud.aws.region.static:xx}") String region, @Value("${aws.aws_access_key_id:xx}") String ACCESS_KEY, @Value("${aws_secret_access_key:xx}") String SECRET_KEY) {this.sesClient = SesClient.builder().region(Region.of(region)).credentialsProvider(StaticCredentialsProvider.create(AwsBasicCredentials.create(ACCESS_KEY, SECRET_KEY))).build();}

5.发送验证码

// 发送验证码邮件public void sendVerificationCode(String recipientEmail) {String verificationCode = generateVerificationCode();// 构建邮件内容String subject = "您的验证码";String htmlBody = "<h3>您的验证码是: " + verificationCode + "</h3>"+ "<p>请在5分钟内使用,此验证码有效期10分钟</p>";try {// 创建邮件请求SendEmailRequest request = SendEmailRequest.builder().source(SENDER_EMAIL).destination(Destination.builder().toAddresses(recipientEmail).build()).message(Message.builder().subject(Content.builder().charset("UTF-8").data(subject).build()).body(Body.builder().html(Content.builder().charset("UTF-8").data(htmlBody).build()).build()).build()).build();// 发送邮件sesClient.sendEmail(request);System.out.println("验证码已发送至: " + recipientEmail);} catch (SesException e) {System.err.println("邮件发送失败: " + e.awsErrorDetails().errorMessage());throw new RuntimeException("邮件发送失败", e);}

6.发完后shutdown

 finally {emailService.shutdown();}// 关闭客户端public void shutdown() {sesClient.close();}

7.效果如图

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词