@universal-packages/background-jobs-mailing
v1.1.29
Published
Mailing on top of Background Jobs
Downloads
383
Readme
Background Jobs
Mailing on top of Background Jobs.
Install
npm install @universal-packages/background-jobs-mailing
npm install @universal-packages/background-jobs
npm install redis
Jobs
After installation jobs will automatically load email job classes, pass all the mailing options through the jobs option loaderOptions
.
import { Jobs } from '@universal-packages/background-jobs-mailing'
import WelcomeEmail from './src/emails/Welcome.email'
const jobs = new Jobs({ jobsLocation: './src/jobs', loaderOptions: { mailing: { engine: 'local' } } })
await jobs.prepare()
await WelcomeEmail.sendLater({ userId: 123 })
await jobs.release()
// WelcomeEmail.job.js|ts
import { BaseEmail } from '@universal-packages/background-jobs-mailing'
export default class WelcomeEmail extends BaseEmail {
async build(params) {
const user = await User.find(params.userId)
return { subject: `Welcome ${user.name}`, to: user.email, from: '[email protected]' }
}
}
LoaderOptions
Mailing
takes the same options as the original Mailing.
BaseEmail
Base interface to enable a JS class to be used as a mailer class, it will need a build
method that return the send options.
Static properties
Same static properties as BaseJob
Templates
Instead of passing a templatesLocation
an Email class can automatically infer a template derived from the same name as the class.
- emails
|- Welcome.email.js
|- welcome-email.html
|- welcome-email.txt
Now the welcome-email
template will be rendered and used as html contents when sending the welcome email without specifying it.
Typescript
This library is developed in TypeScript and shipped fully typed.
Contributing
The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.