java实现发送邮箱验证码
作者:五只小狗 时间:2022-07-05 07:40:07
本文实例为大家分享了java实现发送邮箱验证码的具体代码,供大家参考,具体内容如下
添加依赖
<!-- 邮箱验证码 https://mvnrepository.com/artifact/org.apache.commons/commons-email -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.4</version>
</dependency>
以qq邮箱为例登入qq邮箱找到设置
找到 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启 :IMAP/SMTP服务 我已经开启了,不做演示了
验证码生成的工具方法
/**
* 生成随机验证码
* @param number 几位数
* @return
*/
@Override
public String generateVerifyCode(int number) {
Random random = new Random();
StringBuilder builder = new StringBuilder();
for (int i = 1; i <= number; i++) {
builder.append(random.nextInt(10));
}
return builder.toString();
}
发送验证码
/**
* 发送验证码
* @param email
* @return
*/
@Override
public int sendAuthCodeEmail(String email) {
try {
HtmlEmail mail = new HtmlEmail();
/*发送邮件的服务器 126邮箱为smtp.126.com,163邮箱为163.smtp.com,QQ为smtp.qq.com*/
mail.setHostName("smtp.qq.com");
/*不设置发送的消息有可能是乱码*/
mail.setCharset("UTF-8");
/*IMAP/SMTP服务的密码*/
mail.setAuthentication("发送消息的邮箱如:2212312@qq.com", "密码");
/*发送邮件的邮箱和发件人*/
mail.setFrom("发件邮箱", "发件人");
/*使用安全链接*/
mail.setSSLOnConnect(true);
/*接收的邮箱*/
mail.addTo("123123@qq.com");
/*验证码*/
String code = this.generateVerifyCode(6);
/*设置邮件的主题*/
mail.setSubject("注册验证码");
/*设置邮件的内容*/
mail.setMsg("尊敬的用户:你好! 注册验证码为:" + code + "(有效期为一分钟)");
mail.send();//发送
} catch (Exception e) {
return 0;
}
return 1;
}
运行结果
完成
来源:https://blog.csdn.net/qq_43898141/article/details/119886216
标签:java,邮箱,验证码
0
投稿
猜你喜欢
c#对象反序列化与对象序列化示例详解
2022-08-19 16:32:54
深入多线程之:双向信号与竞赛的用法分析
2022-02-17 06:54:49
JAVA判断空值方法原理解析
2021-09-28 14:37:34
浅谈Java编程中的内存泄露情况
2022-09-11 06:59:07
Netty分布式高性能工具类FastThreadLocal和Recycler分析
2023-03-20 09:13:09
解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
2021-07-07 22:59:06
java图片验证码生成教程详解
2021-11-04 13:22:14
浅析java 归并排序算法
2022-01-20 09:59:50
浅谈Mybatis之参数传递的几种姿势
2021-06-20 01:26:54
spring中的BeanFactory与FactoryBean的讲解
2023-03-13 11:18:09
Java 中的HashMap详解和使用示例_动力节点Java学院整理
2022-06-10 18:08:51
Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载)
2022-04-21 03:42:02
MyBatis持久层框架的用法知识小结
2022-05-21 17:12:55
Java之BigDecimal的坑及解决
2022-05-17 01:09:01
@Value如何获取yml和properties配置参数
2021-12-12 13:24:01
布隆过滤器(Bloom Filter)的Java实现方法
2022-09-14 18:06:06
C# 汉字与拼音互转的实现示例
2022-03-06 06:50:20
SpringBoot使用Atomikos技术整合多数据源的实现
2021-11-08 23:46:23
Java 实战项目之精美物流管理系统的实现流程
2023-10-30 19:53:46
浅谈Java中的重载,重写,多态,静态绑定、动态绑定
2023-10-10 02:40:05