SendGrid возвращает ошибку при отправке шаблона электронного письма

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

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

Мой код выглядит следующим образом: @sendgrid = SendGrid::API.new(api_key: 'api_key', host: 'localhost') result = @sendgrid.client.mail._('send').post(request_body: template)

Мой development.rb:

 config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
 config.action_mailer.asset_host = 'http://localhost:3000'

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

Я использую rails 5 с Ruby 2.6.5.


person Mohammad Ali    schedule 27.03.2020    source источник
comment
отредактировал. Извините, это была моя ошибка. Спасибо за исправление.   -  person Mohammad Ali    schedule 27.03.2020
comment
Это может показаться довольно очевидным, но работает ли код в среде разработки, а не в тестовой или производственной среде?   -  person max    schedule 27.03.2020


Ответы (1)


В моем случае я реализовал это так в config/environments/[xxx].rb:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.default_url_options = { host: 'https://portal.com.br' }
  # Sendgrid port configuration
  config.action_mailer.smtp_settings = {
      :address              => 'smtp.sendgrid.net',
      :port                 => '587',
      :authentication       => :plain,
      :domain               => 'xxx.com.br',
      :user_name            => 'solutions',
      :password             => 'dns232323',
      :enable_starttls_auto => true
  }

  Rails.application.routes.default_url_options[:protocol] = "https"
person Ademario José    schedule 27.03.2020