注意:我已阅读 this但我仍然不知道如何正确构建发送电子邮件功能,所以我问这个问题。我需要知道电子邮件发送成功/失败时要使用的 HTTP 状态代码,或者如果这不是正确的做法,那就是正确的做法。
对我的 Rails 应用程序的 POST 请求将发送一封电子邮件。
如果电子邮件发送失败,我应该在 JSON 响应中向发送 POST 请求的人返回什么 HTTP 状态码?
def inform
delivered = true
begin
UserMailer.new_comment(current_user, other_user, @note).deliver_now
rescue Net::SMTPAuthenticationError, Net::SMTPServerBusy, Net::SMTPSyntaxError, Net::SMTPFatalError, Net::SMTPUnknownError
delivered = false
end
if delivered
# I use :created here because email is created
render json: { delivered: true }.to_json, status: :created
else
# I use :service_unavailable here because email sending failed
render json: { delivered: false }.to_json, status: :service_unavailable
end
end
最佳答案
502
坏网关
通常用于上游服务器故障。
这里有更多信息:https://airbrake.io/blog/http-errors/502-bad-gateway-error
a 502 Bad Gateway Error means that a server that is upstream to one that you (the client) are connecting to has run into trouble. In this scenario, this means that the server providing the 502 Bad Gateway Error is acting as a gateway
关于ruby-on-rails - 发送邮件失败时的 HTTP 状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54119994/