Rails, транзакционная электронная почта и проверка отправителя - PullRequest
0 голосов
/ 12 января 2020

Я хотел бы использовать Sendinblue для отправки транзакционной электронной почты из моего веб-приложения Rails.
Чтобы настроить приложение на использование Sendinblue, я отредактировал config/environments/production.rb следующим образом (ПРИМЕЧАНИЕ: fireworks.com - просто пример):

Rails.application.configure do
  ...
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  host = 'fireworks.com'
  config.action_mailer.default_url_options = { host: host }
  ActionMailer::Base.smtp_settings = {
    :address        => 'smtp-relay.sendinblue.com',
    :port           => '587',
    :authentication => :plain,
    :user_name      => ENV['SENDINBLUE_USERNAME'],
    :password       => ENV['SENDINBLUE_PASSWORD'],
    :domain         => 'fireworks.com',
    :enable_starttls_auto => true
  }
  ...
end

Нужен ли мне какой-нибудь драгоценный камень, например sib-api-v3-sdk?
Полагаю, этот гем полезен только для отправки электронной почты с помощью API Sendinblue.

В Sendinblue я аутентифицировал свой домен 'fireworks.com' и создал отправителя noreply@fireworks.com, который я использовал бы для учетной записи активация.

app/mailers/application_mailer.rb

class ApplicationMailer < ActionMailer::Base
  default from: "noreply@fireworks.com"
  layout 'mailer'
end

Чтобы я мог использовать этого отправителя, Sendinblue хочет, чтобы я его проверил (или подтвердил).
Теперь дело в том, что noreply@fireworks.com не существует. Майкл Хартл в своем уроке использует noreply@example.com, я бы использовал noreply@fireworks.com, потому что у меня есть домен fireworks.com.
Поскольку я не смогу проверить отправителя, я думал, что единственным решением будет создание на моем сервере учетной записи пользователя noreply, настройка Postfix для получения электронной почты от Inte rnet и добавление записи MX в мой сервер. DNS зона.
Я буду поддерживать эту конфигурацию, пока не получу письмо с подтверждением.
Это решение необходимо? У меня есть другой выбор?

1 Ответ

1 голос
/ 12 января 2020

Теперь дело в том, что noreply@fireworks.com не существует.

Прежде чем продолжить, я хочу отметить, что в конечном итоге это не очень хорошая практика. Вы захотите, чтобы какой-то адрес получал и распознавал отказы.

Сказав это, я только что проверил их документацию и там написано здесь , что вместо проверки отдельных адресов электронной почты вы можете просто проверить весь домен через запись DNS, загрузку файла или отправив им электронное письмо.

...