如何使用Phoenix框架发送电子邮件

NoD*_*ame 15 elixir phoenix-framework

使用Phoenix框架发送电子邮件的最佳和最方便的方法是什么?

NoD*_*ame 22

我发现的最好的方法是使用mailman包.对于发送测试电子邮件,我使用我的gmail帐户使用以下配置mailman- >

def config do
  %Mailman.Context{
   config: %Mailman.SmtpConfig{ relay: "smtp.gmail.com",                 
                                port: 587,
                                username: "myusername@gmail.com",
                                password: "mypassword",
                                tls: :always },                                            
   composer: %Mailman.EexComposeConfig{}
  }
end
Run Code Online (Sandbox Code Playgroud)

对于我使用以下内容的电子邮件内容:

def testing_email do
    %Mailman.Email{
      subject: "Hello Mailman!",
      from: "myusername@gmail.com",
      to: ["myotherusername@gmail.com"],          
      text: "Hello Mate",
      html: Phoenix.View.render_to_string(MyApp.PageView,"index.html", foo: "bar")
      }
end
Run Code Online (Sandbox Code Playgroud)

然后你就做 - >

1) email = MyApp.Mailer.deliver testing_email

2) Task.await(email)

  • 关于这个主题的信息不多,所以我决定公布我的努力结果.希望它对任何人都有用 (3认同)
  • 我还建议使用`swoosh`包,这似乎是一个很好的选择. (2认同)

Svi*_*len 7

查看Bamboo - 它是一个优秀的文档库,提供了很好的文档,附带适用于SendGrid和Mandrill的适配器,并提供了一种方便的方法来预览在开发模式下本地发送的电子邮件.它适用于Phoenix,并且也支持渲染模板.


Joe*_*ert 5

经过几次尝试后,我肯定会选择https://github.com/swoosh/swoosh包。它拥有最好的文档、测试支持、浏览器中的邮箱预览以及星数指向更多的用户。