I use Phoenix 1.7, “mix phx.gen.auth”, and set up my email with the following code.
# config/config.exs
config :hello, Hello.Mailer,
adapter: Swoosh.Adapters.Sendgrid,
api_key: System.get_env("SENDGRID_API_KEY")
config :swoosh, :api_client, Swoosh.ApiClient.Finch
When I register a user, I get the following error message.
[error] GenServer #PID<0.601.0> terminating
** (UndefinedFunctionError) function false.post/4 is undefined (module false is not available)
false.post(["https://api.sendgrid.com/v3", "/mail/send"], [{"Content-Type", "application/json"}, {"User-Agent", "swoosh/1.9.1"}, {"Authorization", "Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}], "{\"content\":[{\"type\":\"text/plain\",\"value\":\"\\n==============================\\n\\nHi vincent.open.source.taiwan@gmail.com,\\n\\nYou can confirm your account by visiting the URL below:\\n\\nhttp://localhost:4000/users/confirm/uejATJ8x_lsnnYTnEH7s_GMOUztU_jubWsIc4ovHeVg\\n\\nIf you didn't create an account with us, please ignore this.\\n\\n==============================\\n\"}],\"from\":{\"email\":\"service@word.today\",\"name\":\"Hello\"},\"personalizations\":[{\"to\":[{\"email\":\"vincent.open.source.taiwan@gmail.com\"}]}],\"subject\":\"Confirmation instructions\"}", %Swoosh.Email{subject: "Confirmation instructions", from: {"Hello", "service@word.today"}, to: [{"", "vincent.open.source.taiwan@gmail.com"}], cc: [], bcc: [], text_body: "\n==============================\n\nHi vincent.open.source.taiwan@gmail.com,\n\nYou can confirm your account by visiting the URL below:\n\nhttp://localhost:4000/users/confirm/uejATJ8x_lsnnYTnEH7s_GMOUztU_jubWsIc4ovHeVg\n\nIf you didn't create an account with us, please ignore this.\n\n==============================\n", html_body: nil, attachments: [], reply_to: nil, headers: %{}, private: %{}, assigns: %{}, provider_options: %{}})
(swoosh 1.9.1) lib/swoosh/adapters/sendgrid.ex:128: Swoosh.Adapters.Sendgrid.deliver/2
(hello 0.1.0) lib/hello/mailer.ex:2: anonymous fn/2 in Hello.Mailer.instrument/3
(telemetry 1.2.1) /Users/vincentlin/projects/hello/deps/telemetry/src/telemetry.erl:321: :telemetry.span/3
(hello 0.1.0) lib/hello/accounts/user_notifier.ex:15: Hello.Accounts.UserNotifier.deliver/3
(hello 0.1.0) lib/hello_web/live/user_registration_live.ex:60: HelloWeb.UserRegistrationLive.handle_event/3
(phoenix_live_view 0.18.16) lib/phoenix_live_view/channel.ex:396: anonymous fn/3 in Phoenix.LiveView.Channel.view_handle_event/3
(telemetry 1.2.1) /Users/vincentlin/projects/hello/deps/telemetry/src/telemetry.erl:321: :telemetry.span/3
(phoenix_live_view 0.18.16) lib/phoenix_live_view/channel.ex:216: Phoenix.LiveView.Channel.handle_info/2
(stdlib 4.2) gen_server.erl:1123: :gen_server.try_dispatch/4
(stdlib 4.2) gen_server.erl:1200: :gen_server.handle_msg/6
(stdlib 4.2) proc_lib.erl:240: :proc_lib.init_p_do_apply/3
Last message: %Phoenix.Socket.Message{topic: "lv:phx-F0dIUxRFO5LYlQKD", event: "event", payload: %{"event" => "save", "type" => "form", "value" => "_csrf_token=Jx9bNy8wHDIlPwQMen0McHALCTIGdxcCwfhTNylmIkI45DXI3NBgQZXJ&user%5Bemail%5D=vincent.open.source.taiwan%40gmail.com&user%5Bpassword%5D=12345678901234567890"}, ref: "35", join_ref: "33"}
State: %{components: {%{}, %{}, 1}, join_ref: "33", serializer: Phoenix.Socket.V2.JSONSerializer, socket: #Phoenix.LiveView.Socket<id: "phx-F0dIUxRFO5LYlQKD", endpoint: HelloWeb.Endpoint, view: HelloWeb.UserRegistrationLive, parent_pid: nil, root_pid: #PID<0.601.0>, router: HelloWeb.Router, assigns: %{__changed__: %{}, check_errors: false, current_user: nil, flash: %{}, form: nil, live_action: :new, trigger_submit: false}, transport_pid: #PID<0.594.0>, ...>, topic: "lv:phx-F0dIUxRFO5LYlQKD", upload_names: %{}, upload_pids: %{}}
How do I solve the error?
Many thanks for your replying.