[英]HTTP status code when sending email failed
注意:我已经阅读了这篇文章,但我仍然不知道如何正确构建发送电子邮件功能,所以我问了这个问题。 我需要知道当电子邮件发送成功/失败时要使用的 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
bad_gateway
通常用于上游服务器故障。
以下是更多信息: https : //airbrake.io/blog/http-errors/502-bad-gateway-error
502 Bad Gateway Error 意味着您(客户端)正在连接的上游服务器遇到了问题。 在这种情况下,这意味着提供 502 Bad Gateway 错误的服务器充当网关
我宁愿使用代码 424 https://tools.ietf.org/html/rfc4918#section-11.4
424 (Failed Dependency) 状态代码意味着无法在资源上执行该方法,因为请求的操作依赖于另一个操作并且该操作失败。 例如,如果 PROPPATCH 方法中的命令失败,那么其余命令至少也会失败,并显示 424(Failed Dependency)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.