privatemail

Rust Run Security Audit Deploy new email service supply-chain security forthebadge

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

Email body

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. bash $ 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 bash $ 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 :rocket:

Local Deploy

bash $ bash release.sh

CI / CD (GitHub Actions)

Set up the following GitHub secrets for actions worfklows to work properly bash 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