adis
adis

Reputation: 5951

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?

Upvotes: 13

Views: 4935

Answers (1)

ndeverge
ndeverge

Reputation: 21564

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);

}

Upvotes: 19

Related Questions