2015-12-02 69 views
1

當我嘗試通過mailgun庫發送電子郵件,我得到的錯誤:** (FunctionClauseError) no function clause matching in IO.chardata_to_string/1藥劑mailgun錯誤:未在IO.chardata_to_string功能的語句匹配/ 1

我已經捕獲測試中的問題:

測試/郵寄者/ mailer_test.ex

defmodule Myapp.MailerTest do 
    use Myapp.ModelCase 

    test "mailer test" do 
    Myapp.Mailer.invitation_email("abc.com", "[email protected]") 
    end 
end 

LIB/mailer.ex

defmodule Myapp.Mailer do 
    use Mailgun.Client, domain: "abc.mailgun.org", 
         key: "key-abc", 
         mode: :test, 
         mailgun_test_file_path: "mail.json" 

    def invitation_email(host, to_email) do 
    send_email to: to_email, 
       from: "[email protected]#{host}", 
       subject: "Invitation!", 
       html: "<strong>Welcome</strong>" 
    end 
end 

測試運行:

$ mix test test/mailers/mailer_test.ex                          
Compiled lib/mailer.ex 
Generated myapp app 

    1) test mailer test (Myapp.MailerTest) 
    test/mailers/mailer_test.ex:4 
    ** (FunctionClauseError) no function clause matching in IO.chardata_to_string/1 
    stacktrace: 
     (elixir) lib/io.ex:333: IO.chardata_to_string(nil) 
     (elixir) lib/file.ex:701: File.write/3 
     lib/client.ex:22: Mailgun.Client.do_send_email/3 
     test/mailers/mailer_test.ex:5 

Finished in 0.2 seconds (0.1s on load, 0.01s on tests) 
1 test, 1 failure 

Randomized with seed 182269 

另外,順便說一句,該錯誤消失,如果我刪除mode參數。但它也不會發送電子郵件。

回答