Mailbox build with AWS Lambda
Versatile email infrastructure that operates on AWS.
See mailbox-browser
Dark mode | Light mode |
---|---|
go install github.com/harryzcy/mailbox-cli
For details, refer to mailbox-cli
Clone the repository.
git clone https://github.com/harryzcy/mailbox
Install serverless.
npm install -g serverless@v3
Create an IAM user.
Create an IAM user with AdministratorAccess and export the access key as environment variables.
export AWS_ACCESS_KEY_ID=<your-key-here>
export AWS_SECRET_ACCESS_KEY=<your-secret-key-here>
In production, setup the IAM user following this guide from serverless.
Setup AWS services.
Manually create S3 buckets, and setup SES and SQS (optional) from AWS console.
Copy over example configurations and fill in correct fields.
cp serverless.yml.example serverless.yml
Under provider.environment
section, modify REGION
, S3_BUCKET
, SQS_QUEUE
(optional, only if SQS should be enabled).
Deploy the app.
make deploy
Configure email receiving.
From AWS console -> Configuration -> Email receiving -> Create rule set -> Create rule, add two actions:
mailbox-dev-emailReceive
or mailbox-prod-emailReceive
.Deploy mailbox-browser or use mailbox-cli.
See doc/API.md
It runs on AWS services, including SES, Lambda, API Gateway, DynamoDB, and SQS.
Note that only the two most recent minor versions of Go are officially supported.