2017-05-04 6 views
0

私のphoenixアプリケーションにメーラを作成しようとしています。私は次のエラーを取得する私はかなり遠いんだけど、今はIEXコンソールからテストメールを送信しようとしている:'to'パラメータが不正です。Heroku経由でPhoenixアプリケーションのMailgunを使用しています。

iex(2)> Radios.Mailer.my_first_email("[email protected]") 
{: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: "[email protected]", 
       subject: "My first email", 
       text: "This is an email send with Phoenix and Mailgun" 
    end 
end 

config.exs私は広告もしているシングルに二重引用符を変更いじり、及びsend_email(to: :email_address)とされてきた

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

私自身の実際の住所をそこにも捧げてください。

すべて喜んでいません。

私には何が欠けていますか?

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

しかし、今受け取る:

更新 は、以下にconfig.exsを変更した

iex(1)> Radios.Mailer.my_first_email("[email protected]") 
** (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 
+0

誤植? '' email_address "'ではなく、変数の値を使いたいので '' email_address "'は 'email_address'でなければなりません。 – Dogbert

+0

'send_email to:email_address、'は同じエラーを発行します。 –

+0

まったく同じエラーですか?本気ですか? – Dogbert

答えて

1

2つのミスがあります。

  1. は、 email_addressは変数ですが、文字列"email_address"toの引数send_emailに渡しています。これは:

    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] 
    
関連する問題