ruby-on-rails 发送电子邮件失败时的HTTP状态代码

cxfofazt  于 2023-05-19  发布在  Ruby
关注(0)|答案(2)|浏览(145)

注:我已经阅读了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
e0uiprwp

e0uiprwp1#

502 - bad_gateway
通常用于上游服务器故障。
这里有一些更多的信息:https://airbrake.io/blog/http-errors/502-bad-gateway-error
502 Bad Gateway Error表示您(客户端)正在连接的服务器的上游服务器遇到了问题。在这种情况下,这意味着提供502 Bad Gateway Error的服务器充当网关

9rnv2umw

9rnv2umw2#

我宁愿使用代码424 https://www.rfc-editor.org/rfc/rfc4918#section-11.4
424(Failed Dependency)状态代码表示无法对资源执行该方法,因为请求的操作依赖于另一个操作,而该操作失败。例如,如果PROPPATCH方法中的某个命令失败,则其余命令至少也会失败,并显示424(失败的依赖项)。

相关问题