jmail - java发送注册验证邮件的问题

 mobiledu2502871537 发布于 2022-11-05 22:43

我用java mail发送用户注册验证邮件,邮件能正常发送,但是发送时,邮件中含有注册验证的超链接,不知道为什么系统会自动访问该超链接,以至于用户点击该超链接时,链接已失效?这是为什么?还请帮忙解答一下,我该如何做?以下是我的代码:

final String registerUrl = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/service/portal/user/emailVerify?userName=" + name +"®isterId=" + registerId.toString();

        final MimeMessagePreparator preparator = new MimeMessagePreparator() {  
               public void prepare(MimeMessage mimeMessage) throws Exception {  
                   MimeMessageHelper message = new MimeMessageHelper(mimeMessage,true,"UTF-8");  
                   message.setSubject("用户注册确认");  
                   message.setTo(email);  
                   message.setFrom("xxx@xxx.com");  
                   Map model = new HashMap();  
                   model.put("user", user);  
                   model.put("domain", registerUrl);
                   String text = VelocityEngineUtils.mergeTemplateIntoString(  
                   velocityEngine, "registration-confirmation.vm","UTF-8", model);  
                   message.setText(text, true);  
               }  
           };

           try{
            Thread thread = new Thread(){//异步发送邮件
                public void run(){
                    javaMailSender.send(preparator);
                }
            };
            thread.start();
           }catch(MailException e) {  
               e.printStackTrace();  
           }

具体发送邮件是在spring中配置的,用的是JavaMailSenderImpl,我看不出是哪儿的问题,麻烦帮忙看看。spring的配置如下:

  
   
   
   
   
  
      
        true   
        25000   
      
  




2 个回答
  • 非根治方案:

    1. 改成非超链接,让用户自行复制访问...

    2. 改成验证码模式,设置专门的验证页面,通过邮件发送验证码...

    3. 改成二次访问的方式...你说讲的系统访问应该不是浏览器访问,那么只是单纯的GET请求,不会运行页面中的JS
      因此,可以设置一个中转的验证页面,通过浏览器运行JS跳转到真正的一次性的验证页面...

    4. 如楼上那样通过检查cookies/useragent之类的参数进行区分...

    2022-11-12 01:53 回答
  • 没遇到过。是不是中间某个环节邮件内容被解析了?可以试试看打印下访问链接的userAgent,看看能不能发现是哪个环节出的问题。

    2022-11-12 01:53 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有