Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Email templates as scala templates in Play?

In Play 1.2.4. you could send complex, dynamic e-mail using the standard templates mechanism and syntax (link), this looks realy cooll although I haven't used it. Is the mailer plugin of Play2.0 capable of such things?

like image 666
adis Avatar asked Sep 21 '12 21:09

adis


1 Answers

If by "complex, dynamic e-mail" you mean HTML email body based on template, you can do the same with Play 2.0.

You just have to create a new view based on a template, for instance mailBody.scala.html:

@(user:User)

<h3>Welcome @user.name</h3>
<br/>
....

Then, in your method which sends an email, you just have to call the render() method of your view:

public static void sendMail(User user) {

   MailerAPI mail = play.Play.application().plugin(MailerPlugin.class).email();
   mail.setSubject(...);
   mail.addRecipient(user.email);
   mail.addFrom(...);

   String body = views.html.mailBody.render(user).body();
   mail.sendHtml(body);

}
like image 94
ndeverge Avatar answered Sep 26 '22 17:09

ndeverge