email - 在 heroku 上运行 Grails 应用程序的 javax.mail 异常

标签 email grails heroku

我在 Heroku 上有一个 Grails 应用程序,突然我开始收到这个异常,当我发送一封电子邮件时:javax.mail.MessagingException:

Could not connect to SMTP host: smtpout.secureserver.net, port: 25, response: 554 

我重新启动了我的应用程序,一切恢复正常,Heroku 再次发送邮件,但由于我没有对我的代码做任何事情,我想事情随时可能再次出现故障。

我正在使用 javax.mail 发送我的电子邮件,使用 grails 邮件插件,它可以在其他服务器上完美运行。

我在 Heroku 支持中读到我需要使用外部 SMTP 服务,但它也说我可以使用 javax.mail 在外部 SMTP 服务之上构建邮件功能,所以,我不能使用 javax.mail 没有Heroku中的外部SMTP服务?这是为什么?为什么我可以在没有外部 SMTP 服务的情况下发送一段时间的电子邮件?对于heroku插件中的外部SMTP服务,这将是最佳选择吗?

谢谢

最佳答案

嗨,安娜有几件事:

javax.mail.MessagingException: Could not connect to SMTP host : <host name> port : 25 response: 554

  • 查看以上链接
  • 如果这是返回的实际 msg:smtpout.secureserver.net,端口:25

  • 然后我建议下次发生时你打开一个终端到托管你网站的盒子并运行
    telnet smtpout.secureserver.net 25
    

    或者
    nc -z -v smtpout.secureserver.net 25
    

    这是我的本地主机检查:
    nc -z -v localhost 25
    nc: connect to localhost port 25 (tcp) failed: Connection refused
     nc -z -v localhost 22
    Connection to localhost 22 port [tcp/ssh] succeeded!
    

    我也想看看
    netstat -plant |grep ":25"
    

    我认为这可能是如果它是一个外部 smtp 服务器它被淹没并且不能接受更多的连接,它可能是你的应用程序已经淹没了它并导致它没有更多的连接池并且重新启动已经删除了所有等待任务

    也许值得编写一个 cron 条目来检查在任何时候打开了多少传出 smtp 连接并超过一定数量以提醒您 - 这样您就可以看到它何时到来

    以防万一它再次发生 - 你可以研究一些事情:

    我可能会开始查看底部的测试插件并建立一个演示站点来尝试弄清楚发生了什么 -

    也可能与发送到电子邮件的内容有关,为什么它崩溃了 - 一些不正确的东西等等......(所以尝试捕捉当时发生的事情可能会真正有用)

    grails-tcpmon http://grails.org/plugin/tcpmon

    重要邮件:http://grails.org/plugin/sendgrid http://grails.org/plugin/postmark

    异步邮件:http://grails.org/plugin/asynchronous-mail

    使用 log4j 发送电子邮件:
    http://www.nofluffjuststuff.com/blog/burt_beckwith/2010/02/using_gmail_with_a_log4j_smtp_appender_in_grails

    http://www.intelligrape.com/blog/2012/08/13/send-mail-via-log4j-with-smtp-appender/

    测试:
    http://grails.org/plugin/greenmail
    http://grails.org/plugin/dumbster

    关于email - 在 heroku 上运行 Grails 应用程序的 javax.mail 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24289615/

    相关文章:

    php - 使用 Hotmail smtp 在 PHP 中发送邮件

    email - IE9 中损坏的 URL 参数

    css - 无法解析 PIE.htc 的路径

    ruby-on-rails - 为什么人们在 AWS 存在的情况下使用 Heroku? Heroku 与 AWS 的区别是什么?

    java - 如何格式化电子邮件中的字符串以便 Outlook 打印换行符?

    javascript - 如何使用nodemailer发送pdf附件?

    groovy - 我应该对 Groovy 如此热情吗?

    grails - 在 Groovy 中使用 "$"

    javascript - Heroku 上的 Meteor 应用程序 sockjs 连接已关闭

    ruby-on-rails - Rails - 部署中的失败路由