如何使用Bamboo与Phoenix修复'render / 2 is undefined'错误

Ble*_*len 6 email elixir bamboo phoenix-framework

我正在尝试为我的Phoenix / Elixir应用程序使用带有Bamboo(和Amazon SES)的html电子邮件模板发送电子邮件

我设法使用Bamboo的|> text_body(message)方法成功发送了电子邮件。但是我现在希望能够发送HTML模板,而不仅仅是一个字符串,因此我尝试使用renderfn https://hexdocs.pm/bamboo/1.1.0/Bamboo.Phoenix.html#render/3,但是我遇到以下错误:function MyApp.HtmlEmailView.render/2 is undefined (module MyApp.HtmlEmailView is not available)。使用text_bodyfn 时,我的视图没有任何错误。

这是我的朋友:

  def send_test_html_email(to_email_address, subject) do
    new_email()
    |> from("myemail@gmail.com")
    |> to(to_email_address)
    |> subject(subject)
    |> render("email.html")
  end
Run Code Online (Sandbox Code Playgroud)

这是来自文档的示例fn:

  def html_email do
    new_email
    |> render("html_email.html")
  end
Run Code Online (Sandbox Code Playgroud)

我看不出有什么区别,并且正如我之前提到的,fn的其余部分都可以正常工作text_body,而最后一行代替render

我的预期结果是该电子邮件将无错误发送。我的实际结果是function MyApp.HtmlEmailView.render/2 is undefined (module MyApp.HtmlEmailView is not available)错误。

Ble*_*len 2

感谢贾斯汀·伍德和米兰·贾里克的评论。

我正在使用:use Bamboo.Phoenix, view: MyApp.HtmlEmailView在我的模块顶部,但是错误是根据view: MyApp.HtmlEmailView需要引起的view: MyAppWeb.HtmlEmailView。这已经解决了这个问题。感谢您的帮助。