Получение при отправке контактной формы через sendgrid - PullRequest
0 голосов
/ 02 мая 2020

Я недавно закончил буткемп, поэтому я все еще пытаюсь обернуть голову вокруг вещей.

Я пытаюсь реализовать контактную форму в своем приложении rails, которое я использовал mail_form жемчужина вместе с сендгридом. Я считаю, что правильно установил SMTP. Но когда я пытаюсь отправить форму, я получаю эту ошибку:

2020-05-01T21:23:04.573941+00:00 app[web.1]: I, [2020-05-01T21:23:04.573868 #4]  INFO -- : [268934ad-22d8-4836-b22a-3f130941a309]   Parameters: {"utf8"=>"✓", "authenticity_token"=>"==auth==", "contact"=>{"email"=>"customer@gmail.com", "name"=>"josejose", "message"=>"jose here, first mesage"}, "commit"=>"Enviar Mensaje"}
2020-05-01T21:23:04.584676+00:00 app[web.1]: D, [2020-05-01T21:23:04.584577 #4] DEBUG -- : [268934ad-22d8-4836-b22a-3f130941a309] MailForm::Notifier#contact: processed outbound mail in 3.1ms
2020-05-01T21:23:04.585021+00:00 app[web.1]: I, [2020-05-01T21:23:04.584935 #4]  INFO -- : [268934ad-22d8-4836-b22a-3f130941a309] Completed 500 Internal Server Error in 11ms (ActiveRecord: 0.0ms)
2020-05-01T21:23:04.586063+00:00 app[web.1]: F, [2020-05-01T21:23:04.585975 #4] FATAL -- : [268934ad-22d8-4836-b22a-3f130941a309]
2020-05-01T21:23:04.586210+00:00 app[web.1]: F, [2020-05-01T21:23:04.586127 #4] FATAL -- : [268934ad-22d8-4836-b22a-3f130941a309] NoMethodError (undefined method `charset=' for #<SendGrid::Mail:0x00007f61a50f42c8>):
2020-05-01T21:23:04.586292+00:00 app[web.1]: F, [2020-05-01T21:23:04.586221 #4] FATAL -- : [268934ad-22d8-4836-b22a-3f130941a309]
2020-05-01T21:23:04.586378+00:00 app[web.1]: F, [2020-05-01T21:23:04.586314 #4] FATAL -- : [268934ad-22d8-4836-b22a-3f130941a309] app/controllers/contacts_controller.rb:12:in `create'
2020-05-01T21:23:04.587648+00:00 heroku[router]: at=info method=POST path="/contacts" host=www.centraldehierros.com request_id=268934ad-22d8-4836-b22a-3f130941a309 fwd="80.4.60.53" dyno=web.1 connect=1ms service=19ms status=500 bytes=1827 protocol=http

Я следовал руководству по гемам mail_form на github и использовал this как руководство по настройке с помощью sendgrid .

в моем файле contact.rb у меня есть

 attribute :name,      :validate => true
  attribute :email,     :validate => /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
  # attribute :file,      :attachment => true

  attribute :message
  attribute :nickname,  :captcha  => true

  def headers
    {
      :subject => "My Contact Form",
      :to => "contact@app.com",
      :from => %("#{name}" <#{email}>)
    }
  end

контроллер контактов

 def new
    @contact = Contact.new
  end

  def create
    @contact = Contact.new(params[:contact])
    @contact.request = request
    respond_to do |format|
      if @contact.deliver
        format.html { redirect_to new_contact_path, alert: 'Your message was sent successfully. 
          We will get back to you shortly.' }
        flash.now[:error] = nil
      else
        format.html { render :new }
        flash.now[:error] = 'Cannot send message'
      end
    end
  end

Настройки SMTP в # config / environment / development.rb

config.action_mailer.default_url_options = { host: "http://www.app.com" }
  config.action_mailer.delivery_method     = :smtp
  ActionMailer::Base.smtp_settings= {
    :address => 'smtp.sendgrid.net',
    :port => '465',
    :authentication => :plain,
    :user_name => ENV['SENDGRID_USERNAME'],
    :password => ENV['SENDGRID_PASSWORD'],
    :domain => 'http://www.app.com',
    :enable_starttls_auto => true
  }

Я также установил все свои необходимые конфиги в моем .env

Я попытался выполнить поиск по inte rnet и стеку, но не смог найти ничего, что связано с этой ошибкой.

В настоящее время используются рельсы 5.2.1, ruby 2.6.5

...