2015-08-14 3 views

Antwort

21

Der beste Weg, den ich gefunden habe, ist das mailman Paket zu verwenden. Für den Versand von Test-E-Mail wurde ich mein Google Mail-Konto mit dem folgenden config für 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 

und für den E-Mail-Inhalt I wurde mit der folgenden:

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 

und dann tun Sie gerade ->

1) email = MyApp.Mailer.deliver testing_email

2) Task.await(email)

+1

Es gibt nicht viele Informationen zu diesem Thema, also habe ich beschlossen, das Ergebnis meiner Bemühungen zu posten. Hoffentlich ist es für jeden nützlich – JustMichael

+0

Es ist auch möglich, E-Mails mit einem Paket für Mailgun API zu senden -> https://github.com/chrismccord/mailgun – JustMichael

+0

Ich versuche, Ihren Code zu verwenden, um E-Mails senden, sondern Task.await irgendwann mal raus? –

5

Auschecken Bamboo - es ist eine ausgezeichnete Bibliothek mit großer Dokumentation, kommt mit Adaptern für SendGrid und Mandrill, und bietet eine praktische Möglichkeit zur Vorschau von E-Mails lokal im Entwicklungsmodus gesendet. Es funktioniert hervorragend mit Phoenix und unterstützt auch Rendering-Vorlagen.

+0

Ich denke, es gab eine Sache an Bamboo, die mich davon abgebracht hat, dass sie den SMTP-Client in 'bamboo_smtp' neu implementiert haben und ich weiß nicht, wie zuverlässig das ist. – JustMichael

Verwandte Themen