尝试使用 Mailgun 发送电子邮件时出现 Heroku 内部服务器错误

Heroku Internal Server Error when attempting to send an email using Mailgun

我有一个简单的 Ruby Sinatra 应用程序,它允许用户请求新密码 - 使用 Mailgun 触发电子邮件。它在开发(本地主机)中运行良好,但在 Heroku 上运行 returns 'Internal Server Error'。我还是调试 Heroku 的新手,所以查看了 $ heroku 日志,但这似乎没有告诉我任何有用的信息。 heroku:config.

下正确设置了所有 Mailgun ENV

仍然是 Whosebug 的新手,如果我可以澄清我的问题,请告诉我 further/provide 更多信息....

应用程序 url - http://chitter-challenge.herokuapp.com/users/reset_password

回购 - https://github.com/timrobertson0122/chitter-challenge

代码片段 -

require 'rest-client'

class MailgunWrapper

def send_email_to user
api_key = ENV['MAILGUN_API_KEY']
api_url = "https://api:#{api_key}@api.mailgun.net/v3/sandboxf59a3be327d54fd79069be7d347b9af4.mailgun.org"

RestClient::Request.execute(
  url: api_url + '/messages',
  method: :post,
  payload: {
    from: 'postmaster@sandboxf59a3be327d54fd79069be7d347b9af4.mailgun.org',
    to: user.email,
    subject: 'This is subject',
    text: 'This is text',
    html: 'https://chitter-challenge.herokuapp.com/users/reset_password' + user.password_token,
    multipart: true
  },
  headers: {
    "h:X-My-Header" => 'www/mailgun-email-send'
  },
  verify_ssl: false
)
 end

end

Heroku 日志输出的要点 - https://gist.github.com/timrobertson0122/fa79c18f66866ee180a3#file-gistfile1-txt

我认为您的情况会发生这种情况的唯一原因是您的 maligun 域 'sandboxf59a3be327d54fd79069be7d347b9af4' 可能不正确。您是否检查过仪表板以查看数字是否与您的真实域实际匹配。我已经在本地尝试过,弄错域是我看到该错误的唯一方法,因为 url 的其余部分格式正确。

您也可以尝试访问这里 https://documentation.mailgun.com/quickstart-sending.html,如果已登录,应该会给您一个示例,说明如何 运行 使用 c[=18= 正确格式化 post 请求] 包括您的正确凭据。看看这是否有效,以及 ruby 代码中的参数是否与上面所说的相符。