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

时间:2015-08-12 16:47:51

标签: ruby heroku sinatra rest-client mailgun

我有一个简单的Ruby Sinatra应用程序,允许用户请求新密码 - 使用Mailgun触发电子邮件。它在开发(localhost)中运行良好,但在Heroku上返回“内部服务器错误”。我仍然是调试Heroku的新手,所以看了$ heroku日志,但这似乎没有告诉我任何使用方法。所有Mailgun ENV都在heroku下正确设置:config。

仍然是StackOverflow的新手,所以如果我能进一步澄清我的问题/提供更多信息,请告诉我....

应用网址 - 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

1 个答案:

答案 0 :(得分:1)

我可以看到在您的情况下发生这种情况的唯一原因是您的恶意域'sandboxf59a3be327d54fd79069be7d347b9af4'可能不正确。您是否检查过仪表板,看看这些数字是否与您的真实域名匹配。我已经在本地尝试并且错误地获取域名是我能够看到的唯一方法,因为其余的网址格式正确。

此外,你可以尝试去https://documentation.mailgun.com/quickstart-sending.html,如果登录,应该给你一个例子,说明如何使用包含正确凭据的curl运行格式正确的帖子请求。看看它是否有效,以及红宝石代码中的参数是否与所说的匹配。