Skip to content
This repository was 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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3265ece Â· Jun 22, 2024
Jun 22, 2024
Jun 22, 2024
Jun 22, 2024
Apr 25, 2021
Feb 12, 2021
Dec 23, 2021
Feb 12, 2021
Jun 25, 2022
Jun 25, 2022
Mar 21, 2021
Jun 22, 2024
Jun 22, 2024
Jun 25, 2022
Jun 22, 2024
Apr 22, 2024
Mar 15, 2022
Jun 25, 2022

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 john@doe.example to achu@fufu.soup is forwarded to a verified email onions@suya.io. 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 <achu@fufu.soup>
Reply-To: john@doe.example

<html>Email body</html>

received by -- <onions@suya.io>

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