Darling is a POP3 implementation of AWS SES' email system
  • Go 99.5%
  • Shell 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2024-07-26 13:05:13 +00:00
assets feature: Adds branding. 2024-07-22 11:14:07 -04:00
aws-remote-code feature: Implements AWS bridge code. 2024-07-25 16:07:18 -04:00
local-server chore: Slightly refactor POP3 server code. 2024-07-26 08:07:47 -04:00
.DS_Store feature: Adds authentication support. 2024-07-22 19:45:17 -04:00
.gitignore feature: Adds AWS support to local-server. 2024-07-25 19:46:13 -04:00
LICENSE Initial commit 2024-07-20 19:59:42 +00:00
README.md Update README.md 2024-07-26 13:05:13 +00:00

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

  1. Go into aws-remote-code, and run ./build.sh.
  2. 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.
  1. Upload the ZIP file aws-remote-code/ServerlessFunction.zip (in Code Source tab)
  2. In IAM, add both AmazonDynamoDBFullAccess and AmazonS3FullAccess to the lambda function's role.
  3. If you don't have this setup already, create a email recieving rule set, and set it as active.
  4. Create a new reciept rule, with these actions:
  • First, make it deliver to S3 bucket S3_BUCKET_NAME, with the Object key prefix UnprocessedMail.
  • 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

  1. In AWS, create a new user, with the permissions AmazonDynamoDBFullAccess and AmazonS3FullAccess.
  2. Create an access key.
  3. Go into local-server, and run go build ..
  4. Set the environment variables:
  • AWS_ACCESS_KEY_ID: access key ID
  • AWS_SECRET_ACCESS_KEY: secret access key
  • DYNAMODB_TABLE_NAME: the prefix for the DynamoDB tables
  1. Start the server binary.
  2. 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