ruby-on-rails - 发送电子邮件失败时的 HTTP 状态码
问题描述
注意:我已阅读此内容,但我仍然不知道如何正确构建发送电子邮件功能,所以我问了这个问题。我需要知道电子邮件发送成功/失败时要使用的 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 Error 的服务器充当网关
推荐阅读
- c# - SMO 备份失败并出现错误 1827(完整数据库)
- angular - 用角度+2打开插座的最佳方法是什么?
- javascript - 使用拍摄的快照作为输入文件中的文件
- c# - 在 aspnet core 2 中使用静态文件
- laravel - Laravel - CSRF 令牌不匹配 - 头令牌被重新生成
- php - 需要与关系计数的意见
- swift - 无法在 collectionView 中设置需要的单元格
- sql - 在超过 1 列中使用 Group BY
- android - 在 Flutter 中选择包含 ListTile() 的 Card()
- entity-framework - 在域驱动设计和 EF Core 中使用导航属性而不是外键