2011-12-22 2 views
1

Я пытаюсь отправить электронную почту из моего приложения Grails 2.0 через Sendgrid на Heroku, но я не могу найти нужную конфигурацию. Я получаю «Connection отказался» исключения:Отправка почты с помощью Sendgrid из приложения Grails 2.0 на Heroku

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" 
     ] 
    } 
} 
+0

На самом деле, похоже, что это не имеет ничего общего с Heroku или Sendgrid. Я получаю то же самое исключение при попытке отправить электронную почту с localhost через GMail, используя те самые конфигурации в документе. Мое лучшее предположение заключается в том, что есть проблема с плагином Grails и Grails 2.0 – Sebastien

+0

Я думаю, что вы правы, потому что, когда я вхожу в динамику Heroku «heroku run bash», а затем telnet на smtp.sendgrid.net на порт 587, это разрешено подключаться просто отлично. –

+0

Вы также можете использовать надстройку MailGun с API RESTful для отправки почты. Вот пример Java: https://github.com/heroku/shareheroku-java/blob/master/app/helpers/EmailHelper.java –

ответ

0

на самом деле, проблема возникла из моей конфигурации Grails. По какой-то причине моя почтовая конфигурация была сброшена в какой-то момент, а то, что у меня было в Config.groovy, не использовалось. Поэтому приложение попыталось отправить электронную почту через localhost, и это не сработало. Я нашел обходное решение этой проблемы, но пока не понимаю, почему это работает.

+1

Каков был обходной путь? – Derek

2

Похоже, вы, возможно, брандмауэр или ISP блокирует порт 587. Попробуйте это: http://support.sendgrid.com/entries/131119-help-smtp-port-25-is-being-blocked

Elmer Томас, евангелист Разработчик на SendGrid.com

+0

Как я уже сказал, я не думаю, что это имеет какое-то отношение к SendGrid на данный момент , так как мне не удается отправлять сообщения с моей машины, через SendGrid или GMail. Кажется, проблема в плагине Mail в Grails 2.0. – Sebastien

 Смежные вопросы

  • Нет связанных вопросов^_^