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

标签 ruby-on-rails json rest http

注意:我已阅读 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/

相关文章:

api - TeamCity:如何获取当前未运行的每个构建配置的最后构建列表?

ruby-on-rails - 出现 "First argument in form cannot contain nil or be empty"错误

ruby-on-rails - 如何订购邮箱收件箱?

ruby-on-rails - 设置一个等于自身的变量,除非它不存在

ruby-on-rails - docker 镜像中不存在预编译 Assets

java - 在没有连续的 Try-Catch block 的情况下解析 JSON

java - 在 JAVA 7 中消除 StringBuilder 对象(在循环中运行)的最后一个逗号的方法?

javascript - 如何获取json文件的所有索引

带斜杠的资源的 REST 约定

ruby-on-rails - REST API 文档生成