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 %}