- Notifications
You must be signed in to change notification settings - Fork15
Versatile email infrastructure on AWS serverless
License
harryzcy/mailbox
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Versatile email infrastructure that operates on AWS.
Dark mode | Light mode |
---|---|
![]() | ![]() |
go install github.com/harryzcy/mailbox-cli
For details, refer tomailbox-cli
Clone the repository.
git clone https://github.com/harryzcy/mailbox
Installserverless.
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 followingthis 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, modifyREGION
,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:
- Deliver to Amazon S3 bucket, then enter your bucket name.
- Invoke AWS Lambda function, and select
mailbox-dev-emailReceive
ormailbox-prod-emailReceive
.
Deploymailbox-browser or usemailbox-cli.
Seedoc/API.md
It runs on AWS services, including SES, Lambda, API Gateway, DynamoDB, and SQS.
- Go >= 1.24
Note that only the two most recent minor versions of Go are officially supported.
About
Versatile email infrastructure on AWS serverless