我有一个简单的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
答案 0 :(得分:1)
我可以看到在您的情况下发生这种情况的唯一原因是您的恶意域'sandboxf59a3be327d54fd79069be7d347b9af4'
可能不正确。您是否检查过仪表板,看看这些数字是否与您的真实域名匹配。我已经在本地尝试并且错误地获取域名是我能够看到的唯一方法,因为其余的网址格式正确。
此外,你可以尝试去https://documentation.mailgun.com/quickstart-sending.html
,如果登录,应该给你一个例子,说明如何使用包含正确凭据的curl运行格式正确的帖子请求。看看它是否有效,以及红宝石代码中的参数是否与所说的匹配。