If you specified a "Templates collection" parameter during configuration of the extension, you can create and manage Handlebars templates templates for your emails.
Template collection structure
Give each document a memorable ID that you use as the template name in the documents you write to your templates collection.
The template document can include any of the following fields:
- subject:A template string for the subject of the email.
- text:A template string for the plaintext content of the email.
- html:A template string for the HTML content of the email.
- amp:A template string for the AMP4EMAIL content of the email.
- attachments:An array of attachments with template strings as values; Nodemailer options supported: utf-8 string, custom content type, URL, encoded string, data URI, and pre-generated MIME node (be aware that your email has no access to the cloud server's file system).
An example template might have an ID of following 
and content like:
  { 
  
 subject 
 : 
  
 "@{{username}} is now following you!" 
 , 
  
 html 
 : 
  
 "Just writing to let you know that <code>@{{username}}</code> ({{name}}) is now following you." 
 , 
  
 attachments 
 : 
  
 [ 
  
 { 
  
 filename 
 : 
  
 "{{username}}.jpg" 
 , 
  
 path 
 : 
  
 "{{imagePath}}" 
  
 } 
  
 ] 
 } 
 
 
Send emails using templates
To deliver email using templates, when adding documents to your mail collection,
include a template 
field with name 
and data 
properties. For example,
using our following 
template from above:
  admin 
  
 . 
 firestore 
 () 
  
 . 
 collection 
 ( 
 "MAIL_COLLECTION" 
 ) 
  
 . 
 add 
 ({ 
  
 toUids 
 : 
  
 [ 
 "abc123" 
 ], 
  
 template 
 : 
  
 { 
  
 name 
 : 
  
 "following" 
 , 
  
 data 
 : 
  
 { 
  
 username 
 : 
  
 "ada" 
 , 
  
 name 
 : 
  
 "Ada Lovelace" 
 , 
  
 imagePath 
 : 
  
 "https://example.com/path/to/file/image-name.jpg" 
  
 }, 
  
 }, 
  
 }); 
 
 
Template Partials
You can compose templates using reusable partials 
by specifying {partial: true} 
in the template document. Each of the standard
data fields ( subject 
, html 
, text 
, and amp 
) will be defined as a partial
used only in its own environment. For example, a partial called footer 
might
have data like:
  { 
  
 partial 
 : 
  
 true 
 , 
  
 html 
 : 
  
 "<p>This mail was sent by ExampleApp, Inc. <a href='https://example.com/unsubscribe'>Unsubscribe</a></p>" 
 , 
  
 text 
 : 
  
 "This mail was sent by ExampleApp, Inc. Unsubscribe here: https://example.com/unsubscribe" 
 } 
 
 
In another template, include the partial by referencing its name (document ID):
 <p>This is my main template content, but it will use a common footer.</p>
{{> footer }} 
 

