Как отправлять электронные письма с помощью феникс-фреймворка

Каков наилучший и наиболее удобный способ отправки писем с использованием феникс-фреймворка?

Ответы

Ответ 1

Лучший способ, который я нашел, - использовать mailman. Для отправки тестовых писем я использовал свою учетную запись gmail, используя следующую конфигурацию для mailman

def config do
  %Mailman.Context{
   config: %Mailman.SmtpConfig{ relay: "smtp.gmail.com",                 
                                port: 587,
                                username: "[email protected]",
                                password: "mypassword",
                                tls: :always },                                            
   composer: %Mailman.EexComposeConfig{}
  }
end

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

def testing_email do
    %Mailman.Email{
      subject: "Hello Mailman!",
      from: "[email protected]",
      to: ["[email protected]"],          
      text: "Hello Mate",
      html: Phoenix.View.render_to_string(MyApp.PageView,"index.html", foo: "bar")
      }
end

а затем вы просто сделаете →

1) email = MyApp.Mailer.deliver testing_email

2) Task.await(email)

Ответ 2

Отъезд Bamboo - это отличная библиотека с отличной документацией, поставляется с адаптерами для SendGrid и Mandrill и имеет удобный способ для предварительного просмотра электронных писем, отправленных локально в режиме разработки. Он отлично работает с Phoenix и имеет поддержку для создания шаблонов.

Ответ 3

Попробовав несколько, я обязательно пойду с пакетом https://github.com/swoosh/swoosh. Он имеет лучшую документацию, поддержку тестирования, предварительный просмотр почтового ящика в браузере, а число звезд указывает на большее количество пользователей.