The simple elegant way to send emails from a Sails application
npm i sails-hook-mail --saveIn your Sails action you can use the send helper like so:
await sails.helpers.mail.send.with({
subject: 'Verify your email',
template: 'verify-account',
to: user.email,
templateData: {
token: user.emailProofToken,
fullName: user.fullName
}
})Template names are relative to views/emails/, so template: 'verify-account'
maps to views/emails/verify-account.ejs. Existing templates and callers that
still use names like email-verify-account continue to work too.
Mail supports a couple of mailers including:
- log
- SMTP
To use Mail, create a config/mail.js and specify your default mailer as well as the mailers you'd like to support in your Sails application like so:
module.exports.mail = {
default: process.env.MAIL_MAILER || 'log',
mailers: {
smtp: {
transport: 'smtp'
},
log: {
transport: 'log'
}
},
from: {
address: process.env.MAIL_FROM_ADDRESS || 'boring@sailscasts.com',
name: process.env.MAIL_FROM_NAME || 'The Boring JavaScript Stack'
}
}A big thank you to all our partners for their contributions and efforts in making Sails Mail development possible.
Interested in becoming an Email Partner of Sails Mail? Email Kelvin at koo@hey.com with the subject "Become Sails Mail Partner".