当前位置: 首页 > 知识库问答 >
问题:

grails中的电子邮件验证

黎苑博
2023-03-14

我是grails新手,正在用grails开发一个web应用程序。

在我的注册页面中,我正在获取用户的电子邮件ID,并且我需要发送带有身份验证链接的邮件。

http://grails.org/plugin/mail

http://grails.org/plugin/email-confirmation

我参考了这些网页和许多其他网页来完成这项任务。但问题是,我的电子邮件没有发送。

我使用过

Gmail SMTP server address : smtp.gmail.com
Gmail SMTP username : myid@gmail.com
Gmail SMTP password : -my password-
Gmail SMTP port : 465
Gmail SMTP TLS/SSL required : yes

邮件设置是:

grails { 
    mail { 
        host = "smtp.gmail.com" 
        port = 465 
        username = "myId@gmail.com" 
        password = "mypassword" 
        props = [
            "mail.smtp.auth":"true", 
            "mail.smtp.socketFactory.port":"465", 
            "mail.smtp.socketFactory.class": "javax.net.ssl.SSLSocketFactory",
            "mail.smtp.socketFactory.fallback":"false"] 
    } 
} 
grails.mail.default.from="noreply@gmail.com"

但至少

sendMail {     
  to "friend@gmail.com"     
  subject "Hello "     
  body 'How are you?' 
}

不工作。

发生的异常是

Error 500: Internal Server Error

URI
    /MailVerificationDemo/user/signup/form
Class
    java.net.ConnectException
Message
    Connection refused

Around line 104 of MailMessageBuilder.groovy

101:            log.trace("Sending mail ${getDescription(message)}} ...")102:        }103:104:        mailSender.send(message instanceof MimeMailMessage ? message.mimeMessage : message)105:106:        if (log.traceEnabled) {107:            log.trace("Sent mail ${getDescription(message)}} ...")

Around line 41 of grails-app/services/grails/plugin/mail/MailService.groovy

38:        callable.resolveStrategy = Closure.DELEGATE_FIRST39:        callable.call()40:41:        messageBuilder.sendMessage()42:    }43:44:    def getMailConfig() {

Around line 18 of grails-app/controllers/user/UserController.groovy

15:            return16:        }17:18:        mailService.sendMail {19:            to userInstance.email20:            subject "New User Confirmation"21:            html g.render(template:"mailtemplate",model:[code:userInstance.confirmCode])

Around line 195 of PageFragmentCachingFilter.java

192:            if (CollectionUtils.isEmpty(cacheOperations)) {193:             log.debug("No cacheable annotation found for {}:{} {}",194:                     new Object[] { request.getMethod(), request.getRequestURI(), getContext() });195:               chain.doFilter(request, response);196:              return;197:         }198:

Around line 63 of AbstractFilter.java

60:     try {61:            // NO_FILTER set for RequestDispatcher forwards to avoid double gzipping62:         if (filterNotDisabled(request)) {63:                doFilter(request, response, chain);64:          }65:            else {66:               chain.doFilter(req, res);

共有1个答案

晁国发
2023-03-14

试试这个,它对我有用。请注意:Gmail SMTP TLS/SSL要求:是的。但是你没有把"mail.smtp.starttls.enable":"true"

grails.mail.host="smtp.gmail.com"
grails.mail.port=587
grails.mail.username="yourUsernameHere"
grails.mail.password="yourPwdHere"
grails.mail.from="defaultMailFromHere"
grails.mail.props = ['mail.smtp.auth': "true",
        "mail.smtp.starttls.enable": "true",
        "mail.from":"defaultMailFromHere"]
grails.mail.javaMailProperties = ['mail.smtp.auth': "true",
        "mail.smtp.starttls.enable": "true",
        "mail.from":"defaultMailFromHere"]
 类似资料:
  • 每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email

  • 问题内容: 我有这个EditText定义: 注意,EditText具有使用电子邮件地址规范定义的inputType。Android是否内置任何可验证电子邮件地址输入类型的内容,还是都必须手动完成?它允许我输入无效数据,所以我对它的用途感到好奇。 谢谢。 问题答案: 在这里,通过输入电子邮件类型,您可以将电子邮件类型的键盘设置为“ @”和“。”。关键字将显示在键盘上。 更好的解决方案是通过以下功能比

  • 我是Firebase的菜鸟。我要求一种设置电子邮件验证的分步指南。 目前,我的应用程序使用基本电子邮件密码登录。我希望对用户进行验证,以便根据用户的电子邮件验证属性隐藏内容。我正在调用.sendEmailVerification(),它会发送到当前用户的电子邮件,但是,每当我单击电子邮件中的链接时,它都说该链接已过期或有人已使用它,这也不会更改属性。我怀疑这与api管理器有关。我目前已将我的网站托

  • 我有一张登记表,上面有姓名、电子邮件和密码。注册时,会向用户的电子邮件地址发送一个确认链接。但在发送链接之前,我需要验证电子邮件地址。我使用了: 它显示的任何电子邮件都有效,例如, 我从获得的电子邮件并将其存储在中。 我到底要怎么做才能让它成功?

  • 我正在使用Firebase的方法来验证电子邮件。以下是代码: 这里,< code>else代码应该只在电子邮件未经验证时运行。但是,即使在我验证了电子邮件并重新开始活动之后,< code>if语句仍不为< code>true,电子邮件将再次发送。

  • 我正在提示我的应用程序用户提供电子邮件凭据。 在用户插入电子邮件并通过后,我想验证该帐户。 我正在使用javax。邮政有没有办法验证帐户?只确保凭据确实有效——否则我想显示一个无效用户并传递消息。 也许是某种表演方式: 并在不发送任何内容的情况下检查身份验证异常。