使用Gmail SMTP的Grails邮件插件问题

clo*_*ker 5 email grails grails-3.0

我正在使用带有Grails 3.0.7的grails邮件插件(2.0.0.RC2).这是我的配置:

mail:
        host: smtp.gmail.com
        port: 465
        username: myuser@gmail.com
        password: myPassword
        props:
          - mail.debug: true
          - mail.smtp.auth: true
          - mail.smtp.socketFactory.port: 465
          - mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
          - mail.smtp.socketFactory.fallback: false
Run Code Online (Sandbox Code Playgroud)

当我尝试发送测试邮件时,出现以下错误:

Caused by: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1. Failed messages: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
    at grails.plugins.mail.MailMessageBuilder.sendMessage(MailMessageBuilder.groovy:131) ~[mail-2.0.0.RC2.jar:na]
    at grails.plugins.mail.MailService.sendMail(MailService.groovy:55) ~[mail-2.0.0.RC2.jar:na]
    at grails.plugins.mail.MailService.sendMail(MailService.groovy:59) ~[mail-2.0.0.RC2.jar:na]
    at com.eduspace.ClassroomController.$tt__index(ClassroomController.groovy:13) ~[main/:na]
    at grails.transaction.GrailsTransactionTemplate$2.doInTransaction(GrailsTransactionTemplate.groovy:93) ~[grails-core-3.0.7.jar:3.0.7]
    at grails.transaction.GrailsTransactionTemplate.execute(GrailsTransactionTemplate.groovy:90) ~[grails-core-3.0.7.jar:3.0.7]
    ... 9 common frames omitted
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972) ~[javax.mail-1.5.1.jar:1.5.1]
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:656) ~[javax.mail-1.5.1.jar:1.5.1]
    at javax.mail.Service.connect(Service.java:345) ~[javax.mail-api-1.5.1.jar:1.5.1]
    ... 15 common frames omitted
Run Code Online (Sandbox Code Playgroud)

我在日志中看不到其他调试信息.我将根记录器设置为INFO,因此应该输出所有内容.我已经确认我可以telnet到smtp.gmail.com端口465,所以这不是问题.我已经读过其他人已经遇到过SSL的问题,但是通常会有一些调试信息表明存在SSL问题而且我没有得到类似的东西.

Mar*_*rco 8

我使用一个稍微不同的配置工作正常:

grails:
    mail:
        host: "smtp.gmail.com"
        port: 465
        username: "<username>@gmail.com"
        password: "<password>"
        props:
            mail.smtp.auth: "true"
            mail.smtp.socketFactory.port: "465"
            mail.smtp.socketFactory.class: "javax.net.ssl.SSLSocketFactory"
            mail.smtp.socketFactory.fallback: "false"
Run Code Online (Sandbox Code Playgroud)

邮件配置位于grails占位符内部,我没有像您的示例中那样使用破折号.也许这可能对你有所帮助.