Qual è il modo migliore e più conveniente per inviare e-mail utilizzando il framework Phoenix?Come inviare e-mail con il framework Phoenix
risposta
Il modo migliore che ho trovato è utilizzare il pacchetto mailman. Per l'invio di messaggi di posta elettronica di prova stavo usando il mio account Gmail utilizzando la seguente configurazione per mailman
->
def config do
%Mailman.Context{
config: %Mailman.SmtpConfig{ relay: "smtp.gmail.com",
port: 587,
username: "[email protected]",
password: "mypassword",
tls: :always },
composer: %Mailman.EexComposeConfig{}
}
end
e per il contenuto di posta elettronica che stavo usando la seguente:
def testing_email do
%Mailman.Email{
subject: "Hello Mailman!",
from: "[email protected]",
to: ["[email protected]"],
text: "Hello Mate",
html: Phoenix.View.render_to_string(MyApp.PageView,"index.html", foo: "bar")
}
end
e poi basta fare ->
1) email = MyApp.Mailer.deliver testing_email
2) Task.await(email)
Check out Bamboo - è un'eccellente libreria con un'ottima documentazione, è dotato di adattatori per SendGrid e Mandrill e offre un modo pratico per visualizzare in anteprima le e-mail inviate localmente in modalità sviluppo. Funziona alla grande con Phoenix e ha anche il supporto per i modelli di rendering.
Penso che ci fosse una cosa su Bamboo che mi ha allontanato dal fatto che hanno reimplementato il client smtp in 'bamboo_smtp' e non so quanto sia affidabile. – JustMichael
Dopo aver provato alcuni, andrò sicuramente con il pacchetto https://github.com/swoosh/swoosh. Offre il miglior supporto documentation, il test di verifica, l'anteprima della casella di posta nel browser e il conteggio delle stelle punta a un numero maggiore di utenti.
Non ci sono molte informazioni sull'argomento, quindi ho deciso di pubblicare il risultato dei miei sforzi. Spero che sia utile per chiunque – JustMichael
Inoltre è possibile inviare e-mail usando un pacchetto per API mailgun -> https://github.com/chrismccord/mailgun – JustMichael
Sto provando a usare il tuo codice per inviare e-mail ma Task.await alla fine scade? –