1

我正在尝试通过 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"
        ]
    }
}
4

2 回答 2

2

看起来您可能有防火墙或 ISP 阻止端口 587。试试这个:http: //support.sendgrid.com/entries/131119-help-smtp-port-25-is-being-blocked

Elmer Thomas,SendGrid.com 的开发布道者

于 2011-12-22T20:01:48.887 回答
0

实际上,问题来自我的 Grails 配置。出于某种原因,我的邮件配置在某个时候被重置,而我在 Config.groovy 中的内容没有被使用。因此,该应用程序尝试通过 localhost 发送电子邮件,但没有成功。我找到了解决这个问题的方法,但我还不明白它为什么会起作用。

于 2011-12-29T08:22:56.420 回答