如何实现邮箱发送验证以及前端校验

大家好,今天来写一如何实现前端检验,定时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";
private static final String AUTH = "true";
private static final String HOST = "smtp.163.com";
private static final String USER_NAME = "[email protected]";
private static final String PASSWORD = "a239";


public static void sendMail(String address) throws MessagingException {
// 创建properties实现端口号 第三方验证 smtp协议
Properties properties = new Properties();
// 设置属性
properties.setProperty("mail.smtp.port", PORT);
properties.setProperty("mail.smtp.host", HOST);
properties.setProperty("mail.smtp.auth", AUTH);
// 获取邮箱session
Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(USER_NAME, PASSWORD);
}
});
// 获取message对象
Message message = new MimeMessage(session);
// 设置标题
message.setSubject("邮箱验证服务");
// 设置发件人
message.setFrom(new InternetAddress(USER_NAME));
// 设置收件人
message.setRecipient(RecipientType.TO, new InternetAddress(address));
// 设置内容
message.setContent("就是一个联系邮箱而已", "text/html;charset=utf-8");
// 发送邮箱
Transport.send(message);


}


}

---------------------------------------------------------------------------------------------------------------------------------

第二步:实现邮箱发送的工具类,在Controller中调用工具类,并且实现参数的传递,鄙人用的框架Spring  SpringMvc  Myabatis

---------------------------------------------------------------------------------------------------------------------------------

        //responsebody用来响应jason格式数据传递String类型的SUCCESS,表明我们已经调用成功邮箱工具类的返回值,

      并且需要jackson包的支持,三个大家可以去找一下,缺一不可

        @ResponseBody

@RequestMapping("/sendMailutils")
public String sendMailUtils(@RequestParam("text") String address) throws MessagingException{
System.out.println(address);
SendMailUtils.sendMail(address);
return "SUCCESS";
}

---------------------------------------------------------------------------------------------------------------------------------

第三步:编写表单

---------------------------------------------------------------------------------------------------------------------------------

//通过form表来传递收件人,并且通过ajax请求来实现参数的传递,从这里开始需要做较多的验证,希望大家耐心看完,互相收获,互相学习

       




---------------------------------------------------------------------------------------------------------------------------------

第三步:编写jquery并实现60s后重新发送

---------------------------------------------------------------------------------------------------------------------------------

你可能感兴趣的:(邮箱前端校验)