template-email
TypeScript icon, indicating that this package has built-in type declarations

0.1.8 • Public • Published

Template Email - HTML Template Based Email Service for Node.js Backend

Overview

  • Template Email is a Node.js package that simplifies sending emails with HTML templates. It allows dynamic data binding within templates.

Features

  • Send emails with custom HTML templates.
  • Attachments support.
  • Replace placeholders in templates with dynamic data.
  • Support for Gmail as the email service provider.
  • Error handling for template loading and email sending.

Installation

  • npm install template-email

Usage

  • Import and Initialize EmailService
import { EmailService } from 'template-email';

const emailService = new EmailService({
    emailUser: 'your.email@gmail.com',
    emailPassword: 'yourpassword',
    emailTemplatesDirectory: './utils/email-templates' // Path to email templates
});
  • Sending an Email Using an HTML Template
emailService.sendMail({
    to: 'recipient@example.com',
    subject: 'Welcome!',
    templateRef: 'welcome', // Reference to the HTML template file eg. welcome.html
    data: {
        username: "John Doe",
        frontendUrl: 'https://www.example.com'
    },
    attachments: [
        {
            filename: "report.png",
            path: "/public-accessable-file-path"
        }
    ]
});
  • Sending an Email Without a Template
emailService.sendMail({
    to: 'recipient@example.com',
    subject: 'Test Email',
    html: '<p>This is a test email.</p>',
    attachments: [
        {
            filename: "report.png",
            path: "/public-accessable-file-path"
        }
    ]
});

Create an HTML Template

  • create an HTML file inside your emailTemplatesDirectory (e.g., ./utils/email-templates/welcome.html) with placeholders wrapped in {{ }} e.g: welcome.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Login Credentials</title>
</head>
<body>
    <div style="max-width: 600px; margin: 0 auto; padding: 20px;">
        <p>Welcome to ABC Portal!</p>
        <p>Dear {{Username}},</p>
        <p>Login to our portal: <a href="{{frontendUrl}}">{{frontendUrl}}</a></p>
        <p>Thank you!</p>
    </div>
</body>
</html>

License

  • MIT

Readme

Keywords

Package Sidebar

Install

npm i template-email

Weekly Downloads

3

Version

0.1.8

License

ISC

Unpacked Size

9.76 kB

Total Files

6

Last publish

Collaborators

  • shazee257