grails邮件连接拒绝

时间:2011-01-17 00:50:26

标签: email grails javamail

似乎我按照其文档说的方式尝试了mail配置,但我仍然得到:

Error 500: Executing action [x] of controller [x] caused exception: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP 

我正在使用谷歌应用程序发送电子邮件 - me@dogself.com正在使用Gmail。我不能让grails在我的开发盒上发送测试消息(赢7)。

我的配置是:

   host = "smtp.gmail.com"
   port = 465
   username = "autoresponse@dogself.com"
   password = "x"
   props = ["mail.smtp.auth":"true",
            "mail.smtp.debug":"true",
            "mail.smtp.starttls.enable":"true",
            "mail.smtp.socketFactory.port":"465",
            "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
            "mail.smtp.socketFactory.fallback":"false"]

修改 我是否需要使用某种签名密钥来支持 ssl连接到Gmail?

4 个答案:

答案 0 :(得分:3)

尝试以下方法:

props = ["mail.transport.protocol":"smtps",
         "mail.smtps.host":"smtp.gmail.com",
         "mail.smtps.port":"465",
         "mail.smtps.auth":"true"]

这似乎是the standard set of params necessary to connect to Google's SMTP server。关键是使用smtps代替smtpTLS

答案 1 :(得分:0)

切换到使用Grails Mail Plugin并再试一次。 Gmail网页末尾附近有一个示例配置。

答案 2 :(得分:0)

如果删除会发生什么:

mail.smtp.starttls.enable: "true"

我没有那个就开始工作了。

答案 3 :(得分:0)

你的"道具"中有两个相互矛盾的属性。声明:

"mail.smtp.starttls.enable":"true"用于与服务器进行明文握手,然后启动与服务器的TLS加密协商。

"mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory"需要加密握手。

您指定的端口(465)可以使用其中任何一个,但通常用于加密使用。如果服务器支持它,我建议使用第一个属性"mail.smtp.starttls.enable":"true"并使用"mail.smtp.starttls.required":"true"对其进行扩充,以确保在应用程序和SMTP服务器之间加密邮件,并删除 "mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory"