Send email marketing campaigns with Amazon SES. Let Amazon Lambda compose email by email and literaly scale it to infinite.
With MoonMail you can: create & edit lists of recipients (email addresses) and store them within a DynamoDB. Create & edit html email marketing campaigns, send them and track their opens and clicks.
The biggest magic of MoonMail: SEND BILLIONS OF EMAILS WITH NO SERVERS!
[See the wiki for detailed specs and infrastructure graphs.] (https://github.com/microapps/MoonMail/wiki)
- Create and store recipients in lists
- Compile and send email campaigns
- Parse (track) opened emails + clicked links within an email
- Create, edit and delete campaigns
- Schedule campaigns to be sent in the future
- Extend the recipient fields with extra values like: gender, country... (Liquid powered)
- Update the recipient status with any of the following: Unsubscribed, Bounced, Complaint-Spam, Suppresion-list
- React powered frontend / UI to send campaigns
- Apply liquid syntax within the campaigns
- Public API to interact with the SAAS version
You need to have installed the Serverless Framework (version 0.5.2 or higher is required to run the MoonMail API).
Install npm packages:
npm install
cd events/
npm install
cd ../api/
npm install
Initialize the Serverless project:
sls project init -c -n your-lower-case-project-name
Add variables to s-variables-<stage>-<region>
:
{
...,
"apiHost": "yourendpointhost.com"
}
Create all the needed resources in your AWS account:
sls resources deploy
Deploy all the Lambda functions:
sls function deploy
Deploy MoonMail events:
sls event deploy
Create the API Gateway endpoints:
sls endpoint deploy
Please pose your questions in StackOverflow by tagging them with: moonmail.
Contributions are always welcome! If you'd like to collaborate with us, take into account that:
Feel free to contact us if you have any question!
MoonMail is available under the MIT license. See the LICENSE file for more info.
If you need support getting MoonMail into production in your AWS account, contact the experts: