精华内容
下载资源
问答
  • java邮箱验证

    2019-08-26 21:16:24
    java邮箱验证功能: 1.前台页面注册 2.成功发送验证邮件 3.点击邮件进行验证
  • JAVA 邮箱验证

    2019-02-26 10:36:21
    JAVA 邮箱验证两种方式 据我所知,java邮箱验证有两种方式,验证码、链接 这两种方式都涉及到发送邮件,首先实现发送邮件功能 首先申请邮箱号码,QQ号码要去申请发送邮件功能,这个步骤我就不具体说了, ...

    每天一篇之JAVA 邮箱验证两种方式

    据我所知,java邮箱验证有两种方式,验证码、链接
    这两种方式都涉及到发送邮件,首先实现发送邮件功能
    首先申请邮箱号码,QQ邮箱要去申请发送邮件功能,阿里云邮箱不用,这个步骤我就不具体说了,
    下面是一个简单发送邮件示例
    首先配置pom.xml

    <dependency>  
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
    </dependency>  
    

    然后配置application.properties

    spring.mail.host=smtp.qq.com  //这个是QQ邮箱的  其他邮箱请另行百度
    spring.mail.username=用户名  //发送方的邮箱
    spring.mail.password=密码  //对于qq邮箱而言 密码指的就是发送方的授权码
    spring.mail.properties.mail.smtp.auth=true  
    spring.mail.properties.mail.smtp.starttls.enable=true  
    spring.mail.properties.mail.smtp.starttls.required=true  
    

    最后代码块

    @RestController
    @RequestMapping("/api/userCenter")
    public class UserCenterController {
    @Autowired
        JavaMailSender jms;
    
        //读取配置文件邮箱账号参数
        @Value("${spring.mail.username}")
        private String sender;
    //发送待验证码的邮件
        @RequestMapping("/sendEmail")
        R sendEmail(@RequestParam(value = "email") @NotNull(message = "邮箱账号不能为空") @Pattern(regexp = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", message = "邮箱不合法") String email) {
            //随机数  用作验证
            String code = RandomUtils.getRandomNum(6);
            try {
                //建立邮件消息
                SimpleMailMessage mainMessage = new SimpleMailMessage();
                //发送者
                mainMessage.setFrom(sender);
                //接收者
                mainMessage.setTo(email);
                //发送的标题
                mainMessage.setSubject("邮箱验证");
                //发送的内容
                String msg = "您好!" + email + ",您正在使用邮箱验证,验证码:" + code + " ,有效时间为30分钟。";
                mainMessage.setText(msg);
                jms.send(mainMessage);
            } catch (Exception e) {
                throw new RRException("发送邮件失败,请核对邮箱账号", FAILE_CODE);
            }
    		//下面是加入缓存,以便于进行邮箱验证
            EhCacheUtil ehCacheUtil = new EhCacheUtil("email");
            Element element = ehCacheUtil.getFromCache(String.valueOf(email));
            ehCacheUtil.remove(email);
            ehCacheUtil.putToCache(email, code);
            R r = new R("邮件发送成功");
            return r;
        }
    
    
    //验证邮箱验证码是否正确
        @RequestMapping("/verifyEmail")
        R verifyEmail(@RequestParam(value = "email") @NotNull(message = "邮箱不能为空") @Pattern(regexp = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$", message = "邮箱不合法") String email,
                      @RequestParam(value = "code") @NotNull(message = "验证码不能为空") String code) {
            if (email.isEmpty()) {
                throw new RRException(501, "邮箱不能为空");
            }
            if (code.isEmpty()) {
                throw new RRException(502, "验证码不能为空");
            }
            R r;
            EhCacheUtil ehCacheUtil = new EhCacheUtil("email");
            Element element = ehCacheUtil.getFromCache(email);
            if (element == null) {
                throw new RRException(INVALID_PARAMA, "验证码无效或邮箱不正确");
            } else {
                if (System.currentTimeMillis() - element.getCreationTime() > 1800000) {
                    throw new RRException(FAILE_CODE, "验证码过期");
                } else {
                    if (!code.equals(element.getObjectValue())) {
                        throw new RRException(FAILE_CODE, "验证码不正确");
                    } else {
                        customerService.setEmail(email);
                        ehCacheUtil.remove(email);
                        JSONObject jsonData = new JSONObject();
                        jsonData.put("email", email);
                        r = new R(SUCCESS_CODE, "验证成功");
                        r.setData(jsonData);
                    }
                }
            }
            return r;
        }
    
    

    这就是验证码验证邮箱是否正确,

    展开全文
  • Java邮箱验证

    2019-08-20 10:22:20
    Java邮箱验证 1.原理和解析 2.前端设计 (1)页面设计 (2)ajax传值,将userId传到后台,以便获取相应的邮箱 3.后端接收请求,并把查找到的邮箱和生成的六位数随机码作为参数,调用发送邮件的方法,并...

    Java邮箱验证

    1.原理和解析

    2.前端设计

    (1)页面设计

    (2)ajax传值,将userId传到后台,以便获取相应的邮箱

    3.后端接收请求,并把查找到的邮箱和生成的六位数随机码作为参数,调用发送邮件的方法,并把随机码用HashMap存放,方便修改密码的方法调用

    4.发送邮件方法和创建文本的方法

    /**
     * @author 周宇
     * @university ycit.com
     * @creat 2019/7/18 15:04
     */
    public class Mail {
        public static String myEmailAccount = "zy1297799065@163.com";
        public static String myEmailPassword = "1297799065zhouyu";//163邮箱的账号与密码
    
        // 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com
        // 网易163邮箱的 SMTP 服务器地址为: smtp.163.com
        public static String myEmailSMTPHost = "smtp.163.com";//注意修改为163邮箱,设置里
    
    
        /**
         * 创建一封只包含文本的简单邮件
         * @param session     和服务器交互的会话
         * @param sendMail    发件人邮箱
         * @param receiveMail 收件人邮箱
         *
         * @return
         * @throws Exception
         */
        public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail,int randomArise) throws Exception {
            // 1. 创建一封邮件
            MimeMessage message = new MimeMessage(session);
    
            // 2. From: 发件人
            message.setFrom(new InternetAddress(sendMail, "zy1297799065@163.com", "UTF-8"));
    
            // 3. To: 收件人(可以增加多个收件人、抄送、密送)
            message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail, receiveMail, "UTF-8"));
    
            // 4. Subject: 邮件主题
            message.setSubject("修改密码——发送邮件", "UTF-8");
            
            // 5. Content: 邮件正文(可以使用html标签)
            message.setContent("验证码为:"+randomArise, "text/html;charset=UTF-8");
    
            // 6. 设置发件时间
            message.setSentDate(new Date());
    
            // 7. 保存设置
            message.saveChanges();
            return message;
        }
        
        /**
         *
         * @param receiveMailAccount  获取的邮箱
         * @param randomArise         生成的随机数
         * @throws Exception
         */
        public void sendMail(String receiveMailAccount,int randomArise)throws Exception{
            Properties properties=new Properties();//参数配置
            properties.setProperty("mail.transport.protocol", "smtp");   // 使用的协议(JavaMail规范要求)
            properties.setProperty("mail.smtp.host", myEmailSMTPHost);   // 发件人的邮箱的 SMTP 服务器地址
            properties.setProperty("mail.smtp.auth", "true");            // 需要请求认证
            
            final String smtpPort = "465";
            properties.setProperty("mail.smtp.port", smtpPort);
            properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            properties.setProperty("mail.smtp.socketFactory.fallback", "false");
            properties.setProperty("mail.smtp.socketFactory.port", smtpPort);
    
            // 2. 根据配置创建会话对象, 用于和邮件服务器交互
            Session session = Session.getInstance(properties);
            session.setDebug(true);  // 设置为debug模式, 可以查看详细的发送log日志
            // 3. 创建一封邮件
            MimeMessage message = createMimeMessage(session, myEmailAccount, receiveMailAccount,randomArise);
    
            // 4. 根据 Session 获取邮件传输对象
            Transport transport = session.getTransport();
            transport.connect(myEmailAccount, myEmailPassword);
    
            // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人
            transport.sendMessage(message, message.getAllRecipients());
    
            // 7. 关闭连接
            transport.close();
        }
    }

     

    展开全文
  • java 邮箱验证

    2017-04-10 12:29:00
    1.需要加入发送邮件的mail.jar: http://www.oracle.com/technetwork/java/javamail/index-138643.html 2.将字符串通过MD5进行加密的工具类: ...Java代码 ...importjava.io....importjava.sec...

    1.需要加入发送邮件的mail.jar:

    http://www.oracle.com/technetwork/java/javamail/index-138643.html

     

    2.将字符串通过MD5进行加密的工具类:

    Java代码  收藏代码
    1. import java.io.UnsupportedEncodingException;  
    2. import java.security.MessageDigest;  
    3. import java.security.NoSuchAlgorithmException;  
    4.   
    5. /** 
    6.  * 创建人: zy 
    7.  * 创建时间: 2014年10月22日 下午2:36:19 
    8.  * 类描述:将字符串进行加密的工具类 
    9.  */  
    10. public class MD5Util {  
    11.   
    12.     /** 
    13.      * 将源字符串通过MD5进行加密为字节数组 
    14.      * @param source 
    15.      * @return 
    16.      */  
    17.     public static byte[] encodeToBytes(String source) {  
    18.         byte[] result  = null;  
    19.         try {  
    20.             MessageDigest md = MessageDigest.getInstance("MD5");  
    21.             md.reset();//重置  
    22.             md.update(source.getBytes("UTF-8"));//添加需要加密的源  
    23.             result = md.digest();//加密  
    24.         } catch (NoSuchAlgorithmException e) {  
    25.             e.printStackTrace();  
    26.         } catch (UnsupportedEncodingException e) {  
    27.             e.printStackTrace();  
    28.         }  
    29.         return result;  
    30.     }  
    31.       
    32.     /** 
    33.      * 将源字符串通过MD5加密成32位16进制数 
    34.      * @param source 
    35.      * @return 
    36.      */  
    37.     public static String encodeToHex(String source) {  
    38.         byte[] data = encodeToBytes(source);//先加密为字节数组  
    39.         StringBuffer hexSb = new StringBuffer();  
    40.         for (int i = 0; i < data.length; i++) {  
    41.             String hex = Integer.toHexString(0xff & data[i]);  
    42.             if (hex.length() == 1) {  
    43.                 hexSb.append("0");  
    44.             }  
    45.             hexSb.append(hex);  
    46.         }  
    47.         return hexSb.toString();  
    48.     }  
    49.       
    50.     /** 
    51.      * 验证字符串是否匹配 
    52.      * @param unknown   待验证的字符串 
    53.      * @param okHex     使用MD5加密后的16进制字符串 
    54.      * @return 
    55.      */  
    56.     public static boolean validate(String unknown , String okHex) {  
    57.         return okHex.equals(encodeToHex(unknown));  
    58.     }  
    59. }  

     

     

    3.发送邮件的工具类:

    Java代码  收藏代码
    1. import java.util.Date;  
    2. import java.util.Properties;  
    3.   
    4. import javax.mail.Authenticator;  
    5. import javax.mail.Message;  
    6. import javax.mail.MessagingException;  
    7. import javax.mail.PasswordAuthentication;  
    8. import javax.mail.Session;  
    9. import javax.mail.Transport;  
    10. import javax.mail.internet.AddressException;  
    11. import javax.mail.internet.InternetAddress;  
    12. import javax.mail.internet.MimeMessage;  
    13.   
    14. /** 
    15.  * 创建人: zy 
    16.  * 创建时间: 2014年10月22日 下午3:04:11 
    17.  * 类描述:发送邮件工具类 
    18.  */  
    19. public class SendMailUtil {  
    20.       
    21.     public static final String HOST = "smtp.163.com";  
    22.     public static final String PROTOCOL = "smtp";  
    23.     public static final int PORT = 25;  
    24.     public static final String SENDER = "***@163.com";//此处需要与host相同的网站  
    25.     public static final String SENDERPWD = "********";  
    26.       
    27.     /** 
    28.      * 获取用于发送邮件的Session 
    29.      * @return 
    30.      */  
    31.     public static Session getSession() {  
    32.         Properties props = new Properties();  
    33.         props.put("mail.smtp.host", HOST);//设置服务器地址  
    34.         props.put("mail.store.protocol" , PROTOCOL);//设置协议  
    35.         props.put("mail.smtp.port", PORT);//设置端口  
    36.         props.put("mail.smtp.auth" , true);  
    37.           
    38.         Authenticator authenticator = new Authenticator() {  
    39.             @Override  
    40.             protected PasswordAuthentication getPasswordAuthentication() {  
    41.                 return new PasswordAuthentication(SENDER, SENDERPWD);  
    42.             }  
    43.         };  
    44.         Session session = Session.getDefaultInstance(props,authenticator);  
    45.         return session;  
    46.     }  
    47.       
    48.     /** 
    49.      * 发送邮件 
    50.      * @param receiver 
    51.      * @param content 
    52.      */  
    53.     public static void send(String receiver, String content) {  
    54.         Session session = getSession();  
    55.         try {  
    56.             System.out.println("-------开始发送-------");  
    57.             Message msg = new MimeMessage(session);  
    58.             //设置message属性  
    59.             msg.setFrom(new InternetAddress(SENDER));  
    60.             InternetAddress[] addrs = {new InternetAddress(receiver)};  
    61.             msg.setRecipients(Message.RecipientType.TO, addrs);  
    62.             msg.setSubject("开心网-帐号激活");  
    63.             msg.setSentDate(new Date());  
    64.             msg.setContent(content,"text/html;charset=utf-8");  
    65.             //开始发送  
    66.             Transport.send(msg);  
    67.                         System.out.println("-------发送完成-------");  
    68.         } catch (AddressException e) {  
    69.             e.printStackTrace();  
    70.         } catch (MessagingException e) {  
    71.             e.printStackTrace();  
    72.         }  
    73.     }  
    74. }  

     

     4.发送邮件的Servlet或Action:

    Java代码  收藏代码
    1. User user = userDao.getUser();  
    2. if (user != null && user.getQybj() != 1) {  
    3.     String email = user.getEmail();  
    4.     StringBuffer content = new StringBuffer("<h2>请点击下面的链接激活帐号,链接只能使用一次,请尽快激活!</h2>");  
    5.     String nameMd5 = MD5Util.encodeToHex(user.getUsername()+"审核通过");//创建加密字符串  
    6.     content.append("<a style='font-size:16px;' href='http://localhost:8080/czfc/register.reg?doType=activate&")  
    7.     .append("email=" + email + "&name=" + nameMd5 +"'>")  
    8.     .append("http://localhost:8080/czfc/register.reg?doType=activate&")  
    9.     .append("email=" + email + "&name=" + nameMd5 + "</a><br/><br/>")  
    10.     .append("<span style='color:blue;font-size:20px;font-weight:bold;'>———浙江常山欢迎您!<span>");  
    11.     SendMailUtil.send(email, content.toString());//开始发送邮件  
    12. }   

     

    5.点击链接验证的Servlet或Action:

    Java代码  收藏代码
    1. String userName = request.getParameter("name");  
    2. String email = request.getParameter("email");  
    3. UserPostDao userDao = new UserPostDao();  
    4. User user = userDao.getUserByEmail(email);  
    5. if (user == null) {  
    6.     destination = "/register/activeFail.jsp";  
    7.     request.setAttribute("msg", "链接错误");  
    8. }  
    9. else {  
    10.     String userNameMd5 = MD5Util.encodeToHex(user.getUsername()+"审核通过");  
    11.     if (!(userName.equals(userNameMd5)) {  
    12.         request.setAttribute("msg", "链接错误");  
    13.         destination = "/register/activeFail.jsp";  
    14.     }  
    15.     else {  
    16.         boolean done = userDao.updateUserStatusByEmail(email, 1);  
    17.         if (done) {  
    18.             request.setAttribute("userId", user.getUserid());  
    19.             request.setAttribute("userName", user.getUsername());  
    20.             destination = "/register/activeSuccess.jsp";  
    21.         }  
    22.         else {  
    23.             request.setAttribute("msg", "激活出错");  
    24.             destination = "/register/activeFail.jsp";  
    25.         }  
    26.     }  
    27. }  

    转载于:https://www.cnblogs.com/ouyangping/p/6688453.html

    展开全文
  • javamail如何用邮箱验证注册,就是给邮箱发个验证链接,自己写了个,有链接就发送不成功,没有链接的邮件就能成功。Propertiesprops=newProperties();props.put("mail.smtp.host",“s...javamail 如何用邮箱验证注册...

    javamail如何用邮箱验证注册,就是给邮箱发个验证链接,自己写了个,有链接就发送不成功,没有链接的邮件就能成功。Propertiesprops=newProperties();props.put("mail.smtp.host",“s...

    javamail 如何用邮箱验证注册,就是给邮箱发个验证链接,自己写了个,有链接就发送不成功,没有链接的邮件就能成功。

    Properties props = new Properties();

    props.put("mail.smtp.host", “smtp.sina.com”);

    props.put("mail.smtp.port", String.valueOf(25));

    props.put("mail.smtp.auth", "true");

    Transport transport = null;

    Session session = Session.getDefaultInstance(props, null);

    transport = session.getTransport("smtp");

    transport.connect(“smtp.sina.com”, frommail, frompwd);

    MimeMessage msg = new MimeMessage(session);

    msg.setSentDate(new Date());

    InternetAddress fromAddress = new InternetAddress(frommail,"测试","UTF-8");

    msg.setFrom(fromAddress);

    InternetAddress[] toAddress = new InternetAddress[1];

    toAddress[0] = new InternetAddress(tomail);

    msg.setRecipients(Message.RecipientType.TO, toAddress);

    msg.setSubject("测试", "UTF-8");

    msg.setText(context, "UTF-8");

    msg.saveChanges();

    transport.sendMessage(msg, msg.getAllRecipients());

    能解决的话加分

    展开

    展开全文
  • Java实现邮箱验证JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用...
  • Java邮箱验证错误收集

    2019-04-21 23:01:26
    Java邮箱验证异常收集 一、身份验证失败异常:535 Error Exception in thread “main” javax.mail.AuthenticationFailedException: 535 Error: ÇëʹÓÃÊÚȨÂëµÇ¼¡£ÏêÇéÇë¿´: ...
  • Java邮箱验证注册功能

    2018-10-15 15:35:22
    Java语言开发,利用javax.mail的jar包配置邮箱发送信息,zip包里有邮箱配置Java类文件和对应用到的jar包。
  • java邮箱验证Email发送

    2014-05-16 17:16:07
    邮箱验证时要用到的Email发送,向第三方邮箱发送请求让其给目的邮箱发送一封邮件
  • Java邮箱验证实现

    2018-10-08 13:48:30
    -- 邮箱验证相关 --&gt; &lt;dependency&gt; &lt;groupId&gt;javax.activation&lt;/groupId&gt; &lt;artifactId&gt;activation&lt;/artifactId&gt; &...
  • 1.package ...2.3.import java.io.IOException;4.import java.util.Date;5.import java.util.Properties;6.7.import javax.mail.Address;8.import javax.mail.Authenticator;9.import javax.mail.M...
  • java邮箱验证所需jar包

    2017-12-15 10:31:28
    邮箱验证所需jar包,分享给大家,可以直接用。。。。。
  • java 邮箱验证激活

    2016-04-04 22:54:10
    简单的逻辑: 用户在注册页面,输入邮箱地址后台生成一个激活码,将用户信息保存,并发送激活邮件用户点击邮箱中的链接来激活 ...[java] view plain copy package org.ygy.model;    im
  • 场景: 用户在注册的时候,会在用户的邮箱中发送一个带有链接的邮箱,用户点击邮箱之后,完成验证。 1. 发送的邮件中带有一个 url 链接。 链接中参数中需要有用户的id,还有随机生成唯一的一个 序列码 2. ...
  • JAVA邮箱验证重要代码

    2017-09-20 17:19:14
    RegServlet类 Post方法 添加如下代码: if(isRegSuccess){ //发送激活邮件 String emailMsg = "恭喜您注册成功,请点击下面的连接进行激活账户" + " +activeCode+"'>"+"http://localho
  • 好记性不如赖笔头! 以下正则是从Struts中COPY出来的。 String reg = “\b^[‘_a-z0-9-\+]+(\.[‘_a-z0-9-\+]+) @[a-z0-9-]+(\.[a-z0-9-]+) \.([a-z]{2}|aero|arpa|... System.out.println(“验证通过 “); }
  • java邮箱验证测试类的实现

    千次阅读 2017-07-19 16:56:53
    最近公司开始做新项目了,刚好有做这个邮箱验证功能,不多说,直接上代码: public static final String SMTPSERVER = "smtp.163.com";//邮箱服务器地址(用QQ还是网易看需求,我这里 用的是网易邮箱) public ...
  • Java实现的匹配邮箱 package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class test { private static String regex; private static ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,582
精华内容 632
关键字:

java邮箱验证

java 订阅