以下文件保存到/static/email.txt

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>邮箱验证码</title>
<style>
table {
width: 700px;
margin: 0 auto;
}
#top {
width: 700px;
border-bottom: 1px solid #ccc;
margin: 0 auto 30px;
}
#top table {
font: 12px Tahoma, Arial, 宋体;
height: 40px;
}
#content {
width: 680px;
padding: 0 10px;
margin: 0 auto;
}
#content_top {
line-height: 1.5;
font-size: 14px;
margin-bottom: 25px;
color: #4d4d4d;
}
#content_top strong {
display: block;
margin-bottom: 15px;
}
#content_top strong span {
color: #f60;
font-size: 16px;
}
#verificationCode {
color: #f60;
font-size: 24px;
}
#content_bottom {
margin-bottom: 30px;
}
#content_bottom small {
display: block;
margin-bottom: 20px;
font-size: 12px;
color: #747474;
}
#bottom {
width: 700px;
margin: 0 auto;
}
#bottom div {
padding: 10px 10px 0;
border-top: 1px solid #ccc;
color: #747474;
margin-bottom: 20px;
line-height: 1.3em;
font-size: 12px;
}
#content_top strong span {
font-size: 18px;
color: #3399ff;
}
#sign {
text-align: right;
font-size: 18px;
color: #3399ff;
font-weight: bold;
}
#verificationCode {
height: 100px;
width: 680px;
text-align: center;
margin: 30px 0;
}
#verificationCode div {
height: 100px;
width: 680px;
}
.button {
color: #3399ff;
margin-left: 10px;
height: 80px;
width: 80px;
resize: none;
font-size: 42px;
border: none;
outline: none;
padding: 10px 15px;
background: #ededed;
text-align: center;
border-radius: 17px;
box-shadow: 6px 6px 12px #cccccc,
-6px -6px 12px #ffffff;
}
.button:hover {
box-shadow: inset 6px 6px 4px #d1d1d1,
inset -6px -6px 4px #ffffff;
}
</style>
</head>
<body>
<table>
<tbody>
<tr>
<td>
<div id="top">
<table>
<tbody><tr><td></td></tr></tbody>
</table>
</div>
<div id="content">
<div id="content_top">
<img src="存放log图片路径,自行替换" style="width:150px;">
<p></p>
<strong>尊敬的用户:您好!</strong>
<strong>
您正在进行<span>#{explain}</span>操作,请在验证码中输入以下验证码完成操作:
</strong>
<div id="verificationCode">
#{code}
</div>
</div>
<div id="content_bottom">
<small>
注意:此操作为#{explain}。如非管理员请勿操作!
<br>(工作人员不会向你索取此验证码,请勿泄漏!)
</small>
</div>
</div>
<div id="bottom">
<div>
<p>此为系统邮件,请勿回复<br>
请保管好您的邮箱,避免账号被他人盗用
</p>
<p id="sign">XXX系统2.0</p>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</body>

邮件发送

// 发送方法
String code = RandomUtil.randomNumbers(6);
StringBuffer codeJoin = getStringBuffer(code);
String sendInfo = getEmailSendInfo(codeJoin.toString(), verifyCodeName);
MailUtil.send(data, verifyCodeName, sendInfo, true);
redisUtils.set(verifyCodePre + uuid, code, RandomUtil.randomLong(300, 600)); //验证码样式
@NotNull
private static StringBuffer getStringBuffer(String code) {
StringBuffer codeJoin = new StringBuffer();
for (int i = 0; i < code.length(); i++) {
char ch = code.charAt(i);
codeJoin.append("<button class=\"button\" >").append(ch).append("</button>");
}
return codeJoin;
}
// 获取发送信息
private static String getEmailSendInfo(String code, String explain) throws Exception {
ClassPathResource resource = new ClassPathResource("/static/email.txt");
InputStream inputStream = resource.getInputStream();
String sendInfo = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
sendInfo = sendInfo.replace("#{explain}", explain).replace("#{code}", code);
return sendInfo;
}

Email邮箱验证码发送的更多相关文章

  1. 发送邮箱验证码、session校验

    本篇主要描述“发送邮箱验证码.session校验”相关前(html\js)后(java)台代码,业务逻辑示例,闲话少诉,直接上代码. 1.引入的jar包是mail-1.4.jar 2.java底层发送 ...

  2. tornado web高级开发项目之抽屉官网的页面登陆验证、form验证、点赞、评论、文章分页处理、发送邮箱验证码、登陆验证码、注册、发布文章、上传图片

    本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tornado的后端和ajax的 ...

  3. 本博文将一步步带领你实现抽屉官网的各种功能:包括登陆、注册、发送邮箱验证码、登陆验证码、页面登陆验证、发布文章、上传图片、form验证、点赞、评论、文章分页处理以及基于tronado的后端和ajax的前端数据处理。

    本博文将一步步带领你实现抽屉官网的各种功能:包括登陆.注册.发送邮箱验证码.登陆验证码.页面登陆验证.发布文章.上传图片.form验证.点赞.评论.文章分页处理以及基于tronado的后端和ajax的 ...

  4. 用node实现发送邮箱验证码

    首先,你需要注册一个支持发送的邮箱,我注册是网易邮箱,然后配置smtp. 然后,创建一个node项目,输入npm install nodemailer --save安装邮件依赖. 接着创建一个文件(s ...

  5. asp.net mvc 发送邮箱验证码

    public ActionResult Index() { /*第一种,利用Google的smtp来发送邮件*/ SmtpClient client = ); Random Rdm = new Ran ...

  6. Java实现发送邮箱验证码/注册验证链接

    本文以163邮箱为例 1.准备(邮箱账号,邮箱必须设置POP3/SMTP/IMAP,设置步骤如下:) >>步骤:1 开启授权码服务 >>步骤:2 手机获取验证码 >> ...

  7. C# WinForm 使用SMTP协议发送QQ邮箱验证码

    文章来自:https://blog.csdn.net/IT_xiao_guang_guang/article/details/104336604 前言   在程序设计中,发送验证码是常见的一个功能,用 ...

  8. Email接收验证码,以实现登录/注册/修改密码

    要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...

  9. PHP实现邮箱验证码验证功能

    *文章来源:https://blog.egsec.cn/archives/623  (我的主站) *本文将主要说明:PHP实现邮箱验证码验证功能,通过注册或登录向用户发送身份确认验证码,并通过判断输入 ...

  10. Springboot+Vue实现短信与邮箱验证码登录

    体验网址:http://mxyit.com 示例 1.新增依赖 <!-- 短信服务 --> <dependency> <groupId>com.aliyun< ...

随机推荐

  1. Flink同步kafka到iceberg(cos存储)

    一.flink到logger 1.source create table source_table ( id bigint comment '唯一编号' ,order_number bigint co ...

  2. 【忍者算法】从入环点到相遇点:深入理解环形链表 II|LeetCode第142题 环形链表 II

    [忍者算法]从入环点到相遇点:深入理解环形链表 II|LeetCode第142题 问题升级:不止要找环,还要找入环点 在上一题中,我们讨论了如何判断链表是否有环.现在让我们更进一步:如果确定链表中有环 ...

  3. TTRSS 迁移实战

    背景 几年前在云服务器上搭建了一套 TTRss + RssHub 集群, 用于阅读文章. 具体可以参见这篇文章: 使用 K8S 部署 RSS 全套自托管解决方案 - RssHub + Tiny Tin ...

  4. 当 GPT 告诉我9.11大于9.9的时候:AI 仍需完善的一面

    在当今 AI 技术飞速发展的时代,我们对其能力寄予了厚望,期待它们能够准确无误地处理各种任务.然而,最近发生的一件事情让我们意识到,AI 仍然有需要改进和完善的地方. GPT 作为一款备受瞩目的语言模 ...

  5. Scala List集合 List 有序不唯一,元素可重复

    package com.wyh.day01 import scala.collection.mutable.ListBuffer /** * List 有序不唯一,元素可重复 */ object Sc ...

  6. 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

    大家好!今天给大家带来一个好消息,Dapr(Distributed Application Runtime)1.15版本正式发布啦!对于不熟悉Dapr的朋友来说,Dapr是一个开源的.跨平台的运行时, ...

  7. 重生之数据结构与算法----队列&栈

    简介 上文说到,数据结构只有两种.其它的数据结构都是它的整花活. 栈 栈只能在表的一端(称为栈顶)进行插入和删除操作,遵循 "后进先出"(Last In First Out,LIF ...

  8. 基于React的虚拟滚动方案

    基于React的虚拟滚动方案 在渲染列表时我们通常会一次性将所有列表项渲染到DOM中,在数据量大的时候这种操作会造成页面响应缓慢,因为浏览器需要处理大量的DOM元素.而此时我们通常就需要虚拟滚动来实现 ...

  9. composer init

    $ composer init Do not run Composer as root/super user! See https://getcomposer.org/root for details ...

  10. Docker | 如何在 Linux 服务器使用 docker

    目录 00 需求 01 安装 docker 02 准备工作 03 配置 Dockerfile 和 docker composer 04 启动 docker 05 测试能否 ssh 连接这个 docke ...