大家好,今天来写一如何实现前端检验,定时60s后重新发送邮箱实现邮箱发送功能
需求分析:
1.当我们发送邮箱时,必须填入指定格式的邮箱地址,不然无法实现邮箱发送
2.当我们传入为null或者是“”也无法发送邮箱服务,并且会导致后台报错(原因是controller调用方法时没有参数的传递导致的)
3.当地址写入正确,发送邮箱验证后,返回邮箱发送成功SUCCESS
4.如果发送无法接受邮箱,60s后重新发送邮箱
根据上述想法我们来码代码
---------------------------------------------------------------------------------------------------------------------------------
第一步:实现邮箱发送的工具类,并且实现参数的封装(作为工具类使用我们需要知道哪些是固定的,写成常量,哪些是需要传入的作为引用。这就是工具类封装的一个概念,工具类是被大家都能使用和调用的公共类,也避免了重复代码的复写率)
---------------------------------------------------------------------------------------------------------------------------------
package com.lx.utils;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailUtils {
//此处将不可变的或者是指定的无法改变的变量修饰为常量,此工具类可以直接拿过来使用,但是必须修改用户名和
密码,密码为授权码,需要第三方验证,要注意命名规范!!!!
private static final String PORT = "25";}
---------------------------------------------------------------------------------------------------------------------------------
第二步:实现邮箱发送的工具类,在Controller中调用工具类,并且实现参数的传递,鄙人用的框架Spring SpringMvc Myabatis
---------------------------------------------------------------------------------------------------------------------------------
//responsebody用来响应jason格式数据传递String类型的SUCCESS,表明我们已经调用成功邮箱工具类的返回值,
并且需要jackson包的支持,三个大家可以去找一下,缺一不可
@ResponseBody
@RequestMapping("/sendMailutils")
---------------------------------------------------------------------------------------------------------------------------------
第三步:编写表单
---------------------------------------------------------------------------------------------------------------------------------
//通过form表来传递收件人,并且通过ajax请求来实现参数的传递,从这里开始需要做较多的验证,希望大家耐心看完,互相收获,互相学习
---------------------------------------------------------------------------------------------------------------------------------
第三步:编写jquery并实现60s后重新发送
---------------------------------------------------------------------------------------------------------------------------------
//设置60s时间
var xhr=60;function clickDemo(){
//text获取表单文本框的value值
var text=$("#curst input:eq(0)").val();
//创建正则表达式
var rexGep=/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ ;
//先判断表达数据是否为null和“”如果为null我们就结束程序的调用,不在执行ajax并且告诉用户需要填写邮箱数据
if(text==null||text==""){}
//判断邮箱格式是否正确,通过正则表达式来判断,如果正确那我们继续执行,如果不正确那我们也直接停止调用
if(!rexGep.test($("#curst input:eq(0)").val())){}
//如果上述判断皆可行,那么我们调用ajax 这里有一个$("#changeDemo").empty();,他是在我们邮箱为nuull的时 候写入在div标签的文本内容,当我们实现了发送之后,需要清空之前提示格式不正确的消息提示的文本信息
$("#changeDemo").empty();success:function(data){
//data数据为我们返回jason数据SUCCESS
}});
//为了实现我们发送邮箱失败,会在60s后继续重新发送邮箱,需要用到周期性定时器的使用,设置按钮操作状态是不可选 中的状态,防止在60s内重新触发事件,导致逻辑错误
setDemo();至此邮箱发送验证较为完整的版本前端校验,后台发送就出现了,谢谢大家。能看到这里,互相学习和分享