我正在尝试通过grails邮件插件发送邮件。我根据文档进行了配置,并且还关注了一些博文(http://blog.lourish.com/2010/04/02/sending-asynchronous-html-email-in-grails-with-activemq-jms-and-gmail/)。该帖提到声明配置的封闭方式会覆盖其他方式,但事实并非如此。无论如何我尝试了两种方法,但似乎端口仍然使用smtp默认值。我得到以下例外。
exception: org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; nested exception is: java.net.ConnectException: Connection refused: connect
现在,我直接使用java邮件库编写了一个小程序,我可以发送邮件。配置如下所示。尝试了额外的配置“mail.smtp.port”:“465”“,但没有改变..使用上面博客文章中提到的参数,结果相同
grails {
mail {
host = "smtp.gmail.com"
port = "465"
username = "mylogin@gmail.com"
password = "mypwd"
props = ["mail.smtp.auth":"true",
// "mail.smtp.port":"465",
"mail.smtp.socketFactory.port":"465",
"mail.smtp.socketFactory.class":"javax.net.ssl.SSLSocketFactory",
"mail.smtp.socketFactory.fallback":"false"]
}
}
提前感谢..
更新:它不是端口或防火墙配置,因为当我从头开始制作grails应用程序,并尝试使用相同的配置时,一切正常。另外,在grails论坛http://grails.1312388.n4.nabble.com/grails-mail-mailSender-does-not-have-config-values-td2237704.html#a2237704中询问。希望有机会尝试。
答案 0 :(得分:1)
我在这个设置的帮助下得到了它
grails {
mail {
host = "smtp.gmail.com"
port = 587
username = "xyz@gmail.com"
password = "mypassword"
props = ["mail.debug": "true",
"mail.smtp.protocol": "smtps",
"mail.smtp.auth": "true",
"mail.smtp.starttls.enable": "true",
"mail.smtp.host": "smtp.gmail.com",
"mail.smtp.user": "xyz@gmail.com",
"mail.smtp.password": "mypassword"]
}
}
答案 1 :(得分:0)
我想我解决了这个问题..我以前安装了Nimble插件,它也有一个邮件配置注入我的应用程序(NimbleConfig.groovy)。我在conf.groovy中设置邮件参数后就可以了。我没有看到mailSender是用nimble配置值初始化的,只是从我的conf.groovy初始化了一次..所以,我不确定原因,但是它有效。
答案 2 :(得分:0)
也许你应该尝试为port属性分配一个整数值: port = 465 这对我来说可以! 祝你好运!