【发布时间】:2011-12-22 18:45:42
【问题描述】:
我正在尝试通过 Heroku 上的 Sendgrid 从我的 Grails 2.0 应用程序发送电子邮件,但我找不到正确的配置。我不断收到“连接被拒绝”异常:
java.net.ConnectException: Connection refused
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:327)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:193)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:180)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1359)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
at javax.mail.Service.connect(Service.java:288)
at grails.plugin.mail.MailMessageBuilder.sendMessage(MailMessageBuilder.groovy:102)
at grails.plugin.mail.MailService.sendMail(MailService.groovy:39)
at MailGrailsPlugin$_configureSendMail_closure6.doCall(MailGrailsPlugin.groovy:149)
我尝试的最新配置如下:
grails {
mail {
host = "smtp.sendgrid.net"
port = 587
username = System.env.SENDGRID_USERNAME
password = System.env.SENDGRID_PASSWORD
props = [
"mail.smtp.protocol":"smtps",
"mail.smtp.channel":"plain",
"mail.smtp.auth":"true",
"mail.debug":"true"
]
}
}
【问题讨论】:
-
其实好像和Heroku或者Sendgrid一点关系都没有。当尝试使用文档中的配置示例通过 GMail 从本地主机发送电子邮件时,我遇到了同样的异常。我最好的猜测是 Grails 邮件插件和 Grails 2.0 存在问题
-
我认为你是对的,因为当我 bash 进入 Heroku dyno “heroku run bash”,然后 telnet 到端口 587 上的 smtp.sendgrid.net 时,它可以正常连接。
-
您还可以使用具有 RESTful API 的 MailGun 插件来发送邮件。这是一个 Java 示例:github.com/heroku/shareheroku-java/blob/master/app/helpers/…
标签: email grails heroku sendgrid