尝试使用 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 代码中的参数是否与上面所说的相符。
我有一个简单的 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 代码中的参数是否与上面所说的相符。