Как пропустить проверку SPF в геме griddler-sendgrid?
Я использую gem 'griddler' с gem 'griddler-sendgrid' в своем приложении ruby on rails для входящей почты.
На промежуточном сервере он работает нормально, но возникает проблема с рабочим сервером. В моей конфигурации нет проблем, я подтвердил это sendgrid support
, Они сказали мне использовать только DKIM validation
и удалить SPF check
из проверок.
Я проверил оба камня для этого, но не нашел ничего подходящего для этого.
Вот мои детали конфигурации драгоценного камня:
рубин '2.2.3'
драгоценный камень "рельсы", "4.1.2"
gem 'griddler', '1.4.0'
gem 'griddler-sendgrid', '1.0.0'
Может кто-нибудь предложить мне, как я могу пропустить проверку проверки SPF в gem 'griddler-sendgrid'?
Заранее спасибо!
1 ответ
Пробовал получать emails_controller.rb с github?
https://github.com/thoughtbot/griddler
"исправить ArgumentError с помощью verify_authenticity_token в Rails API"
я добавил protect_from_forgery with: :null_session
Я думаю, что null_session должен использоваться в контроллерах API без использования для сессии. Он обеспечивает пустой сеанс во время запроса.
https://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html
В папке контроллеров griddler добавьте новый файл из github Griddler или попробуйте код ниже.
/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
Не полностью уверен в целом решении, но надеюсь, что это поможет получить больше направления.