Hello.
I was trying to add email to this newly setup phoenix 1.7.7 app. I’ve used bamboo before in the my past projects but this time i want to use the swoosh lib that comes with phoenix.
I was reading tutorials and other threads here about some simple set up and fixes but i encounter this error
(UndefinedFunctionError) function false.post/4 is undefined (module false is not available)
I found a thread here Issues Sending Emails with Swoosh - #3 by ScriptyScott
that mentions about false.post error and how he fixes it but that approach seems not working for me.
Any idea?
Hello sir, sorry for the late response. Here are my codes…
# config/config.exs
config :swoosh, :api_client, Swoosh.ApiClient.Hackney
config :hello, Hello.Mailer,
adapter: Swoosh.Adapters.Mailgun,
api_key: "my-api-key",
domain: "domain-here"
# lib/hello/mailer.ex
defmodule Hello.Mailer do
use Swoosh.Mailer, otp_app: :hello
end
# lib/hello/email.ex
defmodule Hello.Email do
import Swoosh.Email
def welcome() do
new()
|> to({"John", "john@gmail.com"})
|> from({"Jake", "jake@gmail.com"})
|> subject("Hello, World!")
|> html_body("<h1>Hello World</h1>")
|> text_body("Hello World\n")
end
end
# hello_web/controllers/page_controller.ex
alias Hello.{Email, Mailer}
def index(conn, _params) do
Email.welcome() |> Mailer.deliver()
render(conn, :index)
end
Just to make sure – did you add hackney
to your mix.exs
list of dependencies?
Notice that this thread and others linked to it say that you must also add gen_smtp
if you use non-SMTP adapter to deliver emails.
Yes sir, i have gen_smtp
and hackney
dependencies installed.
In dependecy section, it states
" Mailgun adapter requires Plug to work properly."
I don’t know if it just requires to install plug or have to create some function plugs (and i dont know what to write in those plugs) to work