For do this you can use the package :
meteorhacks:ssr
https://atmospherejs.com/meteorhacks/ssr
Example :
To call : ( My mail.js file )
Meteor.methods({
sendConfirmationLinkUser: function(userId,email){ var url = Meteor.absoluteUrl() + "confirmation/email/" +userId; var html = SSR.render('userConfirmationMail', {url:url}); var subject = "Email Confirmation "; var to = email; try{ Meteor.call('sendMail',to, subject, html); }catch(err){ throw Meteor.Error(err.reason); } }
});
Tips:
- Here you can pass values and collections for your Template.
var html = SSR.render('userConfirmationMail', {url:url});
In this example I send for there a url attribute, but you can pass N values like :
var html = SSR.render('userConfirmationMail', {url:url, value2:value2, value3:value3});
- When you will use this values you need call this.value2, this.url, etc …
Make the template : ( Javascript File )
userConfirmationMail.js
- Here you can implement the helpers and functions that you will need to build your email.
SSR.compileTemplate("userConfirmationMail", Assets.getText("emailTemplates/userConfirmationMail.html")); Template.userConfirmationMail.helpers({ getConfirmationURL: function() { return this.url; } });
Tips: :
SSR.compileTemplate("userConfirmationMail", Assets.getText("emailTemplates/userConfirmationMail.html"));
- You will call by this name : userConfirmationMail
- This is the path in your application : “emailTemplates/userConfirmationMail.html”
userConfirmationMail.html ( HTML file)
In this file you need put your html code.
<html lang="pt-Br" xmlns="http://www.w3.org/1999/xhtml"> <head> <!--[if gte mso 9]> <o:OfficeDocumentSettings> <o:AllowPNG/> <o:PixelsPerInch>96</o:PixelsPerInch> </o:OfficeDocumentSettings> </xml><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=device-width"> <meta http-equiv="X-UA-Compatible" content="IE=9; IE=8; IE=7; IE=EDGE"> <title></title> </head> <body style="width: 100% !important;min-width: 100%;-webkit-text-size-adjust: 100%;-ms-text-size-adjust: 100% !important;margin: 0;padding: 0;background-color: #FFFFFF"> <style id="media-query"> /* Media Queries */ @media only screen and (max-width: 500px) { .prova { width: 500px; } table[class="body"] img { width: 100% !important; height: auto !important;
{...} </body></html>
Tips :
- For you call any helper method use : {{getHelperMethodName}}
- The HTML files need be in the private directory in your application.
- All styles need be in this file.