当前位置: 首页 > news >正文

知识付费网站开发南通城乡建设局网站首页

知识付费网站开发,南通城乡建设局网站首页,led网站免费模板,中国建设通网站SPRING BOOT邮件发送验证码 一、Gmail邮箱配置 1、进入Gmail(https://mail.google.com) 2、打开谷歌右上角设置 3、启用POP/IMP 4、启用两步验证(https://myaccount.google.com/security) 5、建立应用程式密码 6、复制保存应用程式密码 二、代码 1、引入依赖 d…SPRING BOOT邮件发送验证码 一、Gmail邮箱配置 1、进入Gmail(https://mail.google.com) 2、打开谷歌右上角设置 3、启用POP/IMP 4、启用两步验证(https://myaccount.google.com/security) 5、建立应用程式密码 6、复制保存应用程式密码 二、代码 1、引入依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId/dependency2、application.properties文件配置 spring.mail.hostsmtp.gmail.com # 邮件服务器端口号 spring.mail.port587 # 邮件发送方的电子邮件地址 spring.mail.username你的Gmail邮箱账号 # 邮件发送方的密码或应用程序专用密码如果启用了两步验证 spring.mail.password应用程序专用密码 # 启用TLS加密 spring.mail.properties.mail.smtp.starttls.enabletrue # 验证邮件服务器的身份 spring.mail.properties.mail.smtp.authtrue # 邮件传输协议 spring.mail.properties.mail.transport.protocolsmtp3、EmailUtil邮件工具类 Service public class EmailUtil implements EmailService {private final Logger logger LoggerFactory.getLogger(this.getClass());//Spring Boot 提供了一个发送邮件的简单抽象使用的是下面这个接口这里直接注入即可使用Autowiredprivate JavaMailSender mailSender;// 配置文件中我的谷歌邮箱Value(${spring.mail.username})private String from;/*** 简单文本邮件* param to 收件人* param subject 主题* param content 内容*/Overridepublic void sendSimpleMail(String to, String subject, String content) {//创建SimpleMailMessage对象SimpleMailMessage message new SimpleMailMessage();//邮件发送人message.setFrom(from);//邮件接收人message.setTo(to);//邮件主题message.setSubject(subject);//邮件内容message.setText(content);//发送邮件mailSender.send(message);}/*** html邮件* param to 收件人,多个时参数形式 xxxxxx.com,xxxxxx.com,xxxxxx.com* param subject 主题* param content 内容*/Overridepublic void sendHtmlMail(String to, String subject, String content) {//获取MimeMessage对象MimeMessage message mailSender.createMimeMessage();MimeMessageHelper messageHelper;try {messageHelper new MimeMessageHelper(message, true);//邮件发送人messageHelper.setFrom(from);//邮件接收人,设置多个收件人地址InternetAddress[] internetAddressTo InternetAddress.parse(to);messageHelper.setTo(internetAddressTo);//messageHelper.setTo(to);//邮件主题message.setSubject(subject);//邮件内容html格式messageHelper.setText(content, true);//发送mailSender.send(message);//日志信息logger.info(邮件已经发送。);} catch (Exception e) {logger.error(发送邮件时发生异常, e);}}/*** 带附件的邮件* param to 收件人* param subject 主题* param content 内容* param filePath 附件*/Overridepublic void sendAttachmentsMail(String to, String subject, String content, String filePath) {MimeMessage message mailSender.createMimeMessage();try {MimeMessageHelper helper new MimeMessageHelper(message, true);helper.setFrom(from);helper.setTo(to);helper.setSubject(subject);helper.setText(content, true);FileSystemResource file new FileSystemResource(new File(filePath));String fileName filePath.substring(filePath.lastIndexOf(File.separator));helper.addAttachment(fileName, file);mailSender.send(message);//日志信息logger.info(邮件已经发送。);} catch (Exception e) {logger.error(发送邮件时发生异常, e);}}/*** 验证邮箱格式* param email* return*/public boolean isEmail(String email) {if (email null || email.length() 1 || email.length() 256) {return false;}Pattern pattern Pattern.compile(^\\w([-.]\\w)*\\w([-.]\\w)*\\.\\w([-.]\\w)*$);return pattern.matcher(email).matches();} }EmailService public interface EmailService {/*** 发送文本邮件** param to 收件人* param subject 主题* param content 内容*/void sendSimpleMail(String to, String subject, String content);/*** 发送HTML邮件** param to 收件人* param subject 主题* param content 内容*/public void sendHtmlMail(String to, String subject, String content);/*** 发送带附件的邮件** param to 收件人* param subject 主题* param content 内容* param filePath 附件*/public void sendAttachmentsMail(String to, String subject, String content, String filePath); }4、验证码存储/判断/删除 CodeUtil Service public class CodeUtil {Autowiredprivate StringRedisTemplate redisTemplate;public String generateVerificationCode() {// 生成6位随机数字验证码return String.valueOf((int) ((Math.random() * 9 1) * 100000));}// 验证验证码是否正确public boolean verifyCode(String userId, String code,String key) {key key userId;String storedCode redisTemplate.opsForValue().get(key);return code.equals(storedCode);}//删除redis中验证码public void deleteCode(String userId,String key) {key key userId;redisTemplate.delete(key);} }存储验证码 //写在需要发送验证码的地方//存储时间private static final int EXPIRATION_TIME_IN_MINUTES 3;//键名private static final String KEY_PREFIX xxx;keyKEY_PREFIX123456 redisTemplate.opsForValue().set(key, 随机数字验证码, EXPIRATION_TIME_IN_MINUTES, TimeUnit.MINUTES);
http://www.w-s-a.com/news/934203/

相关文章:

  • 网络架构扁平化windows优化大师好不好
  • 安康养老院收费价格表兰州seo整站优化服务商
  • 网站开发技术方案模板无锡网站建设推荐
  • 自助建站系统注册三维家3d设计软件免费
  • 做seo网站标题重要吗郑州众诚建设监理有限公司网站
  • 建设网站南沙区百度关键词推广怎么做
  • 网站建设公司做销售前景好不好石家庄外贸网站制作
  • windows2008做网站网站首页打开速度
  • 做外贸要做什么网站服装设计图
  • 中山市路桥建设有限公司网站网站开发角色分配权限
  • 加强档案网站建设网站搭建好了不用会不会被攻击
  • 维护网站信息网络建设服务
  • 网站建设策划书模板下载用自己电脑配置服务器做网站
  • 360免费建站空间淘宝数据网站开发
  • 做分销的网站本地dede网站怎么上线
  • 中学网站模板北京管理咨询公司
  • 网站开发用哪个软件方便二级网站建设 管理思路
  • 个人怎么创建网站中国建设银行网站口
  • 跟知乎一样的网站做展示网站步骤
  • 邯郸网站建设效果好wordpress app 加载慢
  • 做app的网站有哪些功能广州自适应网站建设
  • 兰州建设网站的网站开源网站建设
  • 深圳网站建设南山指数基金是什么意思
  • 备案中又需要建设网站网站信息组织优化
  • 做网站推广需要什么asp响应式h5网站源码下载
  • 柳州建设网官方网站免费自助建站哪个平台好
  • 论坛网站模板源码下载网站建设与网页设计是什么
  • 跑流量的网站淘宝网站的建设目标是
  • 网站计费系统怎么做九一制作网站
  • 网红营销推广温州seo博客