2012-09-21 31 views
12

Trong Play 1.2.4. bạn có thể gửi e-mail phức tạp, năng động bằng cách sử dụng cơ chế và cú pháp mẫu tiêu chuẩn (link), điều này có vẻ thực sự cooll mặc dù tôi đã không sử dụng nó. Là mailer plugin của Play2.0 có khả năng như vậy không?Mẫu email làm mẫu scala trong Play?

Trả lời

17

Nếu bằng "email động, phức tạp", bạn có nghĩa là nội dung email HTML dựa trên mẫu, bạn có thể làm tương tự với Play 2.0.

Bạn chỉ cần có để tạo ra một cái nhìn mới dựa trên một mẫu, ví dụ mailBody.scala.html:

@(user:User) 

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

Sau đó, trong phương pháp của bạn mà sẽ gửi một email, bạn chỉ cần gọi render() phương pháp xem của bạn:

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

} 
+0

Haha, tôi vừa phát hiện ra điều này, tôi yêu thích khung công tác này! Chỉ một câu hỏi phụ: sự khác biệt giữa .toString() và đề xuất của bạn: .body() ?? – adis

+0

Từ mã nguồn, nó giống nhau: https://github.com/playframework/Play20/blob/master/framework/src/play/src/main/scala/play/api/templates/Templates.scala#L28 –

Các vấn đề liên quan