【问题标题】:How to skip SPF validation in 'griddler-sendgrid' gem?如何在“griddler-sendgrid”gem 中跳过 SPF 验证?
【发布时间】:2018-05-02 07:54:09
【问题描述】:

我在我的 ruby​​ on rails 应用程序中使用 gem 'griddler' 和 gem 'griddler-sendgrid' 来接收邮件。

它在暂存服务器上运行良好,但在生产服务器上出现问题。我的配置没有问题,我已经用sendgrid support 确认了这一点。他们告诉我只使用 DKIM validation 并从验证中删除 SPF check

我已经检查了这两个 gem,但没有找到任何相关的东西。

这是我的 gem 配置详细信息:

红宝石'2.2.3'

gem 'rails', '4.1.2'

gem 'griddler', '1.4.0'

gem 'griddler-sendgrid', '1.0.0'

有人可以建议我如何在 gem 'griddler-sendgrid' 中跳过 SPF 检查验证吗?

提前致谢!

【问题讨论】:

    标签: ruby-on-rails ruby rubygems sendgrid griddler


    【解决方案1】:

    尝试从 github 获取 emails_controller.rb 吗?

    https://github.com/thoughtbot/griddler

    “在 Rails API 上使用 verify_authenticity_token 修复 ArgumentError”

    我已添加protect_from_forgery with: :null_session

    我认为 null_session 应该在 API 控制器中使用,而不用于会话。它在请求期间提供一个空会话。

    https://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html

    在控制器文件夹 griddler 添加来自 Griddler github 的新文件,或尝试以下代码。

    /controllers/griddler/emails_controller.rb

    class Griddler::EmailsController < ActionController::Base
    
      skip_before_action :verify_authenticity_token, raise: false
      protect_from_forgery with: :null_session
    
      def create
        normalized_params.each do |p|
          process_email email_class.new(p)
        end
    
        head :ok
      end
    
      private
    
      delegate :processor_class, :email_class, :processor_method, :email_service, to: :griddler_configuration
    
      private :processor_class, :email_class, :processor_method, :email_service
    
      def normalized_params
        Array.wrap(email_service.normalize_params(params))
      end
    
      def process_email(email)
        processor_class.new(email).public_send(processor_method)
      end
    
      def griddler_configuration
        Griddler.configuration
      end
    end
    

    不完全确定整个解决方案,但希望它有助于获得更多方向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-19
      • 2014-12-19
      • 2018-08-15
      • 1970-01-01
      • 2013-09-12
      • 1970-01-01
      • 2016-08-13
      • 1970-01-01
      相关资源
      最近更新 更多