Skip to content
This repository has been archived by the owner on Oct 6, 2024. It is now read-only.
/ privatemail Public archive

AWS email forwarding service from verified SES domain to private email server

License

Notifications You must be signed in to change notification settings

ch3ck/privatemail

Repository files navigation

privatemail

Build & Run Tests

Forward emails from verified domains on SES to SES verified email.

Description

A RUST service that uses the inbound/outbound capabilities of AWS SES to forward emails from verified domains to an SES verified email address. For example, if an email is sent from [email protected] to [email protected] is forwarded to a verified email [email protected]. privatemail also add capability to blacklist certain emails from coming to you.

Example email and how the From and Reply-To headers are set:

From: John Doe <[email protected]>
Reply-To: [email protected]

<html>Email body</html>

received by -- <[email protected]>

Pre-requisites

Build

  1. Edit the terraform/variables.tf file accordingly to suit your needs.
  2. If you're using S3 as your backend, you'll need to make changes to terraform/main.tf
  3. Test build locally.
$ cargo build
$ cargo test

Provision Infrastructure with Terraform

  1. Verify your domain and email address on SES before running this
  2. Create a terraform Token which has admin access to your AWS Account
  3. Build and generate your Lambda.zip in the terraform directory
  4. Provision infrastructure
$ cd terraform
$ terraform init
$ terraform validate -json
$ terraform plan
$ terraform apply

Alternately, you can run the release.sh and it builds your code and provisions your infrastructure.

Contributing

We appreciate your contributions; all PRs are welcomed. Please see CONTRIBUTING.md for more information.

Deployment 🚀

Local Deploy

$ bash release.sh

CI / CD (GitHub Actions)

Set up the following GitHub secrets for actions worfklows to work properly

FROM_EMAIL
TF_API_TOKEN
TO_EMAIL
AWS_REGION
BLACK_LIST

All deployments occur via GitHub Actions.

License

The scripts and documentation in this project are released under the MIT License

Author