Как выглядит исходящий SMTP-запрос от ActionMailer? - PullRequest
0 голосов
/ 26 января 2019

Краткая справка: я работаю над приложением, которое отправляет электронные письма через ActionMailer в Ruby on Rails, но мне нужно, чтобы мое приложение, размещенное на Heroku, располагалось за статическим диапазоном IP-адресов, которое было занесено в белый список ретрансляционным сервером SMTP, через который он отправляет,Для этого я включил дополнение Heroku под названием Fixie, которое дает моему приложению статический диапазон IP-адресов и может быть настроено для запросов через драгоценные камни, такие как Фарадей.

Мой главный вопрос заключается в следующем: как я могу выяснить и /или войти в этот исходящий запрос, который сделан ActionMailer, когда я звоню #mail?Я хотел бы знать, где делается этот запрос, и больше об этом, чтобы я мог вместо этого сделать этот запрос, используя гем Фарадея, который поддерживает использование прокси-IP-адреса Фикси.

Редактировать: После дополнительных исследований этоПохоже, мне нужно настроить прокси SOCKS5, а не простой HTTP (S) прокси, так как этот исходящий запрос выполняется с использованием SMTP.Все еще не уверены в моем первоначальном вопросе.

Спасибо!

1 Ответ

0 голосов
/ 12 апреля 2019

Чтобы настроить почтовую программу действий на Heroku, моя стандартная конфигурация выглядит следующим образом

# config/environments/production.rb
  config.action_mailer.default_url_options = { host: 'https://www.example.com' }
  config.action_mailer.perform_deliveries = true
  ActionMailer::Base.smtp_settings = {
    :address => 'smtp.sendgrid.net',
    :port => '587',
    :authentication => :plain,
    :user_name => ENV['SENDGRID_USERNAME'],
    :password => ENV['SENDGRID_PASSWORD'],
    :domain => 'heroku.com'
  }
  ActionMailer::Base.delivery_method = :smtp

Теперь я использую объявление Heroku на SENDGRID и добавляет SENDGRID_USERNAME и SENDGRID_PASSWORD на ваши Config Vars

Теперь я не делаю ничего особенного в почтовой программе, но добавлю одну для примера

# app/mailers/example_mailer.rb
class ExampleMailer < ActionMailer::Base
  default from: 'donotreply@example.com'
  default cc:   'cc@example.com'
  default bcc:  'bcc@example.com'

  layout 'mailer'

  def some_email(example_id)
    @example = Example.find(example_id)
    mail(
        :to =>   'user@example.com',
        :subject =>" SUBJECT ",
        :body => "This can and should be moved to a view like app/view/example_mailr/some_email.html.erb"
    )
  end
end

Я надеюсь, что этовыручает

...