Darling is a POP3 implementation of AWS SES' email system
- Go 99.5%
- Shell 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| assets | ||
| aws-remote-code | ||
| local-server | ||
| .DS_Store | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
POP3 implementation of AWS SES email system
Prerequisites
- Golang installed on your system
- POSIX compliant shell on your system (Git Bash if using Windows, else, it should be installed on your device)
Basic Usage
AWS Remote
- Go into
aws-remote-code, and run./build.sh. - Create an AWS lambda function, with these settings:
- Amazon Linux 2023 as the operating system
- The architecture set to
aarch64 - In the configuration section:
- In General configuration, change the timeout to
0m 25sec - These environment variables set:
DYNAMODB_TABLE_NAME: the prefix for the DynamoDB tables. DO NOT MANUALLY CREATE THIS.S3_BUCKET_NAME: the name for the S3 bucket. DO NOT MANUALLY CREATE THIS.
- In General configuration, change the timeout to
- Upload the ZIP file
aws-remote-code/ServerlessFunction.zip(in Code Source tab) - In IAM, add both
AmazonDynamoDBFullAccessandAmazonS3FullAccessto the lambda function's role. - If you don't have this setup already, create a email recieving rule set, and set it as active.
- Create a new reciept rule, with these actions:
- First, make it deliver to S3 bucket
S3_BUCKET_NAME, with the Object key prefixUnprocessedMail. - Second, make it invoke the lambda function that you created.
- Allow it to create the S3 bucket, and fix permissions as needed. DO NOT ENABLE ENCRYPTION.
Local Server
- In AWS, create a new user, with the permissions
AmazonDynamoDBFullAccessandAmazonS3FullAccess. - Create an access key.
- Go into
local-server, and rungo build .. - Set the environment variables:
AWS_ACCESS_KEY_ID: access key IDAWS_SECRET_ACCESS_KEY: secret access keyDYNAMODB_TABLE_NAME: the prefix for the DynamoDB tables
- Start the server binary.
- Configure the client you're using (custom code, Thunderbird, etc) to use the SMTP configuration you created, and these POP3 settings:
- 127.0.0.1 (or server IP) for the IP
- No transport security (No STARTTLS, TLS, etc.)
- Port
110