2017-06-15 2 views
1

Je travaille sur l'application dans elixir. Il envoie un email aux clients. J'utilise la bibliothèque bamboo pour envoyer des emails.Modèles d'email en utilisant le bambou sans phoenix

Jusqu'à présent, les e-mails fonctionnent correctement. Mais maintenant, j'essaie d'envoyer des emails en utilisant des modèles. Partout où je vois dans la documentation de bambou utilise bamboo.phoenix.

Je n'utilise pas phoenix pour traiter les demandes. J'utilise une bibliothèque appelée plug. Y at-il un moyen d'envoyer des modèles dans l'e-mail sans phoenix ??

+1

Comme une façon d'aller et je ne suis pas sûr si c'est un bon ou pas, mais vous pouvez utiliser ce -> https://hexdocs.pm/eex/EEx.html#function_from_file/5 pour compiler vos propres modèles dans fonctions et les utiliser pour le rendu. – JustMichael

+0

@JustMichael Intéressant. Il prend également en charge les variables dynamiques dans les modèles. Mais il faut vérifier la performance. – NeiL

+0

Je l'ai fait avant, mais je ne me souviens pas exactement comment en ce moment. Regardez la source Phoenix pour voir comment ils chargent des modèles. Ce devrait être une copie assez facile des pâtes. – Mike

Répondre

0

Ajout d'une réponse à cet article avec l'aide @JustMichael comment.

structure Répertoire -

/priv 
/static 
    /test.html.eex 

Fonction utilisée:

new_email 
|> to("[email protected]") 
|> from(@from_email) 
|> subject("test") 
|> html_body(EEx.eval_file("priv/static/mail_templates/#test.html.eex",[foo: "bar"])) //this will render the template.Also can pass variables 

test.html.eex

<h3>Foo: <%= foo %></h3> 

Bu t, nous ne pouvons pas ajouter css simplement en ajoutant <link rel="stylesheet" href="styles.css">. Je suppose, il y a un besoin de serveur statique. Commentez s'il y a une autre façon d'ajouter css en dehors de css en ligne.