1.0.0 • Published 2 years ago

@mmsb/nodemailer-wrapper v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

nodemailer-wrapper

Usage server side

1. Use mailerFactory to create the mailer

import { mailerFactory from 'nodemailer-wrapper'

const mailer = mailerFactory(
  mailerTransportSettings
  defaultMailerName
  defaultMailerAddress
  clientUrl
  mailTemplateDir
  mailerEnforceRecipient (optional)
)

mailerTransportSettings are smtp configuration for nodemailer : https://nodemailer.com/smtp/ Example :

nodemailer.createTransport({
  host: "smtp.example.com",
  port: 587,
  secure: false, // upgrade later with STARTTLS
  auth: {
    user: "username",
    pass: "password",
  },
});

defaultMailerName is the sender of the mail defaultMailerAddress is the email adress of the server (can be a fake one, but it will not be possible to answer to the emails) clientUrl is the url of your client website mailTemplateDir is the directory where your twig templates are stored (twig templates documentation : https://twig.symfony.com/doc/3.x/templates.html) mailEnforceRecipient is optional for dev purpose, if you give an email adress, all emails will be send to this address

2. Send emails

await Mailer.send(
  {
    to: user_email,
    subject: 'Any subject',
  }, //nodemailer.SendMailOptions
  'my_twig_template', //name of the twig template
  {
    variable_i_want_to_print: "something",
    other_variable: "something else",
  }, //variables that will be used in twig template
);

First argument is nodemailer.SendMailOptions, second one is the name of the twig template to use and third one are the variables used in this twig template. Example of twig template for this example :

{% block content %}
  <p>
    <strong>Dear user,</strong>
  </p>
  <br />

  Here's an email that prints {{variable_i_want_to_print}} and {{other_variable}}
  
  <em>This e-mail is automatically sent to you. Please do not reply to this e-mail address.</em>
{% endblock %}