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

问题描述 投票:6回答:1

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

我已经设法使用Bamboo的|> text_body(message)方法成功发送电子邮件。但是我现在希望能够发送一个html模板而不仅仅是一个字符串所以我正在尝试使用render fn 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_body fn时,我的观点没有错误。

这是我的fn:

  def send_test_html_email(to_email_address, subject) do
    new_email()
    |> from("[email protected]")
    |> to(to_email_address)
    |> subject(subject)
    |> render("email.html")
  end

这是文档中的示例fn:

  def html_email do
    new_email
    |> render("html_email.html")
  end

我看不出任何差异,正如我之前提到的,fn的其余部分与text_body作为最后一行而不是render正常工作。

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

email elixir phoenix-framework bamboo
1个回答
0
投票

感谢Justin Wood和Milan Jaric的评论。

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

© www.soinside.com 2019 - 2024. All rights reserved.