The biggest magic of MoonMail: SEND BILLIONS OF EMAILS WITH NO SERVERS!
- 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
- Filter lists by Segments
- React powered frontend / UI to send campaigns
- Apply liquid syntax within the campaigns
- Public API to interact with the SAAS version
Notes about the serverless version
Version 0.5.x is required to run several parts of the MoonMail API such as the api and events sub-packages, for these, the root of the repository provides the required
s-templates.json. Find more information about how to handle functions with serverless 0.5 here.
The rest of the services require serverless 1.x and are self-contained. For details on how to manage them, you should follow the instructions provided in their respective README.md
Install serverless 0.5 globally:
yarn global add email@example.com
Install the root project dependencies:
Install the API dependencies:
cd api && yarn install
Install the event processors' dependencies:
cd events && yarn install
Installing the dependencies for the rest of the services follow the same convention. You just need to cd into it and install its dependencies.
Initialize and configure the Serverless 0.5 project
sls project init -c -n your-lower-case-project-name
s-variables-<stage>-<region>.json files inside the
_meta directory by providing the required variables.
Servereless 0.5 resources
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
Due to the amount of resources it might be difficult to deploy everything at once. It's totally fine to cd into sub-directories of api or events and perform the above mentioned actions in order to reduce the scope of deployments. Also, using the dash deploy subcommand might be useful when deploying independent functions. Aside from that, there are some functions depending on serverless 0.5 which require NodeJS > 4.3. For those, you will have to change the runtime version through the AWS Lambda Console because it's not supported to do so through Serverless on this version.
If the above doesn't solve your issues, there are a couple of things you should double check:
1.- Your current Serverless version (different parts of the project require different versions), this is how you can do it:
2.- You have provided all the required variables in the
admin.env file should exist in the root of the project containing the AWS profile to be used by the deployments (this only applies for the function and resources depending on firstname.lastname@example.org). Here is an example of what it should look like:
4.- The provided profile in
admin.env should exist in your
Serverless 1.x resources
To configure and deploy these, you will have to follow the instructions provided in their respective README.md
If you have set up everything correctly you'll be able to send an email campaign using our demo ui
Please post your questions on StackOverflow and tag 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 Email Marketing and Serverless Experts:
- A Cloud Guru - AWS training & serverless experts (Visit Web Site)
- Just Serverless
MoonMail Email Marketing Software done the right way