Serverless template sync plugin for Amazon Simple Email Service
npm install @josedlucas/ses-template-serverless-framework[![Serverless][ico-serverless]][link-serverless]
[![NPM][ico-npm]][link-npm]
[![npm][ico-npm-downloads]][link-npm]
[![Build Status][ico-build]][link-build]
Template sync plugin for Amazon Simple Email Service
===
A serverless plugin that allows automatically creating, updating and removing
AWS SES Templates using a configuration file and keeps your AWS SES Templates
synced with your configuration file.
SUPPORTS Serverless ver 2 and 3
REQUIRES nodejs 10+
---
:zap: Features
- Allows declaring email templates that will be synced in pre-deploy phase
- Allows you to optionally add stage to template names while syncing
- Allows you to list and delete SES template by specified name
---
#### Examples
- Plugin integration with asset management
#### Installation
npm install @haftahave/serverless-ses-template
#### Configuration
* All @haftahave/serverless-ses-template configuration parameters are optional
``yamladd to your serverless.yml
plugins:
- '@haftahave/serverless-ses-template'
custom:
sesTemplates:
addStage: true # Specifies whether to add stage to template name (default false)
configFile: './custom-config-file/path.js' # Config file path (default './ses-email-templates/index.js')
deployHook: 'after:deploy:deploy' # Specifies serverless lifecycle event plugin use to deploy templates (default 'before:deploy:deploy')
disableAutoDeploy: true # Specifies whether to sync templates while sls deploy (default false)
region: 'us-west-2' # Specifies AWS region for SES templates (not required)
removeMissed: false # Set this flag in order to remove templates those are not present in your configuration file. (not required, default false)
`
---
Template configuration file should be an async function that returns array of objects (all keys are required):
`javascript`
/**
* @param {Object} serverless - Serverless instance
* @param {Object} options - runtime options
* @returns {Promise<{name: string, subject: string, html: string, text}[]>}
*/
module.exports = async (serverless, options) => [{
name: 'example_name',
subject: 'Your subject',
html: 'Hello world!
',
text: 'Hello world!',
}];
Real world example see here.
- CLI argument named sesTemplatesRegion - top priorityserverless.yml
- plugin configuration param named regionregion
- CLI argument named
- fallback to default region resolving (first region in first stage defined in serverless.yml)
- CLI argument named sesTemplateConfig - top priorityserverless.yml
- plugin configuration param named configFile./ses-email-templates/index.js
- fallback to default
in order to sync your email templates.Optional CLI options:
`
--sesTemplatesRegion The region used to populate your templates. Default: see "Region fallback sequence" in readme.md. [OPTIONAL]
--sesTemplateConfig Template configuration file path. Default: see "Template configuration file sequence" in readme.md. [OPTIONAL]
--stage The stage used to populate your templates. Default: the first stage found in your project. [OPTIONAL]
--removeMissed Set this flag in order to remove templates those are not present in your configuration file. [OPTIONAL]
`
---$3
Run sls ses-template list in order to list your email templates.CLI options:
`
--sesTemplatesRegion The region used to list your templates. Default: see "Region fallback sequence" in readme.md. [OPTIONAL]
--filter Display templates that contain . [OPTIONAL]
`$3
Run sls ses-template delete --template template_name_goes_here in order to delete your email template.CLI options:
`
--template The template name you are going to delete [REQUIRED]
--sesTemplatesRegion The region used to populate your templates. Default: see "Region fallback sequence" in readme.md. [OPTIONAL]
--stage The stage used to populate your templates. Default: the first stage found in your project. [OPTIONAL]
``- [Sending Personalized Email Using the Amazon SES API][link-ses-guide]
- [Amazon SES API sendTemplatedEmail][link-ses-sdk]
MIT
[ico-serverless]: http://public.serverless.com/badges/v3.svg
[ico-npm]: https://img.shields.io/npm/v/@haftahave/serverless-ses-template.svg
[ico-npm-downloads]: https://img.shields.io/npm/dt/@haftahave/serverless-ses-template.svg
[ico-build]: https://app.travis-ci.com/haftahave/serverless-ses-template.svg?branch=master
[link-serverless]: http://www.serverless.com/
[link-npm]: https://www.npmjs.com/package/@haftahave/serverless-ses-template
[link-build]: https://app.travis-ci.com/haftahave/serverless-ses-template
[link-ses-guide]: https://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html
[link-ses-sdk]: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendTemplatedEmail-property