【问题标题】:How to send emails with Phoenix framework如何使用 Phoenix 框架发送电子邮件
【发布时间】:2015-11-07 18:24:11
【问题描述】:

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

【问题讨论】:

    标签: elixir phoenix-framework


    【解决方案1】:

    尝试了几次之后,我肯定会选择https://github.com/swoosh/swoosh 包。它拥有最好的documentation,测试支持,在浏览器中的邮箱预览和星数指向更多的用户。

    【讨论】:

      【解决方案2】:

      查看Bamboo — 它是一个出色的库,具有出色的文档,带有用于 SendGrid 和 Mandrill 的适配器,并提供了一种方便的方式来预览在开发模式下本地发送的电子邮件。它与 Phoenix 配合得很好,并且还支持渲染模板。

      【讨论】:

      • 我认为 Bamboo 的一件事让我感到厌烦,那就是他们在 bamboo_smtp 中重新实现了 smtp 客户端,我不知道这有多可靠。
      【解决方案3】:

      我发现最好的方法是使用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)

      【讨论】:

      • 关于这个主题的信息不多,所以我决定发布我努力的结果。希望它对任何人都有用
      • 还可以使用 mailgun API 的包发送电子邮件 -> github.com/chrismccord/mailgun
      • 我正在尝试使用您的代码发送电子邮件,但 Task.await 最终会超时?
      • 我还建议使用swoosh 包,这似乎是一个不错的选择。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-23
      相关资源
      最近更新 更多