首页 > 解决方案 > 发送电子邮件失败时的 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

标签: ruby-on-railsjsonresthttp

解决方案


502

bad_gateway

通常用于上游服务器故障。

这里有更多信息:https ://airbrake.io/blog/http-errors/502-bad-gateway-error

502 Bad Gateway Error 意味着您(客户端)正在连接的服务器的上游服务器遇到了问题。在这种情况下,这意味着提供 502 Bad Gateway Error 的服务器充当网关


推荐阅读