【发布时间】:2015-11-07 18:24:11
【问题描述】:
使用 Phoenix 框架发送电子邮件最好和最方便的方式是什么?
【问题讨论】:
使用 Phoenix 框架发送电子邮件最好和最方便的方式是什么?
【问题讨论】:
尝试了几次之后,我肯定会选择https://github.com/swoosh/swoosh 包。它拥有最好的documentation,测试支持,在浏览器中的邮箱预览和星数指向更多的用户。
【讨论】:
查看Bamboo — 它是一个出色的库,具有出色的文档,带有用于 SendGrid 和 Mandrill 的适配器,并提供了一种方便的方式来预览在开发模式下本地发送的电子邮件。它与 Phoenix 配合得很好,并且还支持渲染模板。
【讨论】:
bamboo_smtp 中重新实现了 smtp 客户端,我不知道这有多可靠。
我发现最好的方法是使用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
对于电子邮件内容,我使用了以下内容:
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
然后你就这样做 ->
1) email = MyApp.Mailer.deliver testing_email
2) Task.await(email)
【讨论】:
swoosh 包,这似乎是一个不错的选择。