J'ai un formulaire de contact simple envoi email
et message
champs. J'utilise Mailgun.envoyer un e-mail à partir de formulaire - protocole String.Chars non mis en œuvre
je peux envoyer un e-mail parfaitement de la console, mais quand j'essayer d'envoyer de la forme dans l'interface utilisateur, je reçois l'erreur suivante:
protocol String.Chars not implemented for %Iotc.Contact.Email{__meta__:
#Ecto.Schema.Metadata<:loaded, "contact_emails">, email:
"[email protected]", id: 25, inserted_at: ~N[2017-06-15 10:34:26.229957],
message: "I'd like a cake please.", updated_at: ~N[2017-06-15 10:34:26.229977]}
email_controller.ex
def create(conn, %{"email" => email_params,
"email" => %{"email" => email,
"message" => message}}) do
changeset = Contact.Email.changeset(%Iotc.Contact.Email{}, email_params)
case Contact.create_email(email_params) do
{:ok, email} ->
Iotc.Mailer.send_email(email, message) #<this is the issue.
conn
|> put_flash(:info, "Email sent")
|> redirect(to: email_path(conn, :index))
{:error, changeset} ->
conn
|> put_flash(:error, "Something went wrong")
|> render("index.html", changeset: changeset)
end
Je l'ai essayé de changer
Iotc.Mailer.send_email(email, message)
à
Iotc.Mailer.send_email(email_params)
Mais je puis me
key :to not found in: %{"email" => "[email protected]", "message" => "I'd like a cake please.", "name" => "Simon"}
Essayez 'Iotc.Mailer.send_email (email.email, message) '. – Dogbert
Merci encore @Dogbert qui semble avoir fonctionné. Qu'est-ce que nous faisons avec '(email.email, message)'? –