【问题标题】:Sending mail through SendGrid on Java Play application fails在 Java Play 应用程序上通过 SendGrid 发送邮件失败
【发布时间】:2013-02-06 07:01:49
【问题描述】:

我正在尝试从我的 Java Play 2.10 应用程序通过 SendGrid 发送一封简单的测试电子邮件。我正在使用 play-plugins-mailer 发送电子邮件并拥有一个免费的(heroku)SendGrid 帐户。这是我迄今为止所做的一切:

  • 在我的 Build.scala 中添加了 play-plugins-mailer 依赖项
  • 将 CommonsMailerPlugin 添加到我的 play.plugins 文件中
  • 在我的控制器中添加了以下代码以发送电子邮件:

    MailerAPI mail = play.Play.application().plugin(MailerPlugin.class).email();
    mail.setSubject("test subject");
    mail.addRecipient("test@gmail.com");
    mail.addFrom("testapp@heroku.com");
    mail.send("some text");
    
  • 在我的 application.conf 中添加了以下内容:

    smtp.host="smtp.sendgrid.net"
    smtp.user="[my-sendgrid-user]"
    smtp.pass="[my-sendgrid-pass]"
    smtp.port="587"
    smtp.channel=plain
    

我很确定 Mailer 工作正常,这似乎是 SendGrid 配置问题。执行此代码时,我收到此错误:

[RuntimeException: org.apache.commons.mail.EmailException: 将电子邮件发送到以下服务器失败:smtp.sendgrid.net:587]

我尝试在我的本地机器以及在我将 SendGrid 插件添加到我的应用程序的 heroku 上运行它。

【问题讨论】:

    标签: java heroku playframework smtp sendgrid


    【解决方案1】:

    你看过这个帖子吗? Send mail in Heroku using SendGrid

    此外,您可以尝试本教程中描述的 Typesafe 邮件插件:

    http://blog.flurdy.com/2012/05/send-email-via-sendgrid-on-heroku-using.html

    【讨论】:

    • 是的,尝试了那个线程,正如您在我的错误消息中看到的那样,我已经将端口更改为 587,但它仍然不起作用
    【解决方案2】:

    我认为您可以使用官方 SendGrid-java Jithub 项目中提供的 Java API。

    Official Send-Grid Java API

    【讨论】:

      【解决方案3】:

      试试:

      smtp.ssl=true
      

      那个worked for me

      【讨论】:

        猜你喜欢
        • 2019-09-28
        • 1970-01-01
        • 2023-03-16
        • 2021-06-14
        • 1970-01-01
        • 1970-01-01
        • 2017-09-24
        • 2023-03-08
        • 2018-07-12
        相关资源
        最近更新 更多