'to'参数无效错误通过 Heroku 在凤凰城应用程序中使用 Mailgun



我正在尝试关注tut以在我的凤凰应用程序中创建邮件。我已经走了很远,但是现在我试图从IEX控制台中发送一封测试电子邮件,我会收到以下错误:

iex(2)> Radios.Mailer.my_first_email("myemail@domain.com")
{:error, 400,
 "{n  "message": "'to' parameter is not a valid address. please check documentation"n}"}

mailer.ex

defmodule Radios.Mailer do
  use Mailgun.Client,
      domain: Application.get_env(:radios, :mailgun_domain),
      key: Application.get_env(:radios, :mailgun_key)
  def my_first_email(email_address) do
                send_email to: "email_address", #<= this appears to be the issue
                from: "test@example.com",
                subject: "My first email",
                text: "This is an email send with Phoenix and Mailgun"
  end
end

config.exs

config :radios,
  ecto_repos: [Radios.Repo],
  mailgun_domain: "https://api.mailgun.net/v3/XXXXXXXXX.mailgun.org",
  mailgun_key: "pubkey-XXXXXXXX"

我一直在乱七八糟地将双引号更改为单句,而send_email(to: :email_address)也添加了我自己的实际地址。

全部没有欢乐。

我想念什么?

更新已将 config.exs 更改为以下:

config :radios,  Radios.Mailer,
  mailgun_domain: "https://api.mailgun.net/v3/XXXXXXXX.mailgun.org",
  mailgun_key: "pubkey-XXXXXX"

但现在接收:

iex(1)> Radios.Mailer.my_first_email("myemail@domain.com")
** (FunctionClauseError) no function clause matching in IO.chardata_to_string/1
    (elixir) lib/io.ex:445: IO.chardata_to_string(nil)
    (elixir) lib/path.ex:468: Path.join/2
    (elixir) lib/path.ex:450: Path.join/1
             lib/client.ex:44: Mailgun.Client.send_without_attachments/2

有两个错误:

  1. email_address是一个变量,但是您将字符串"email_address"传递给send_emailto参数。这个:

    send_email to: "email_address",
    

    应该是:

    send_email to: email_address,
    
  2. 您正在从Env获取错误的设置。设置存储在关键字列表中Application.get_env(:radios, Radios.Mailer)

    这个:

    use Mailgun.Client,
        domain: Application.get_env(:radios, :mailgun_domain),
        key: Application.get_env(:radios, :mailgun_key)
    

    应该是:

    use Mailgun.Client,
        domain: Application.get_env(:radios, Radios.Mailer)[:mailgun_domain],
        key: Application.get_env(:radios, Radios.Mailer)[:mailgun_key]
    

最新更新