GithubHelp home page GithubHelp logo

halprin / email-conceal Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 1.99 MB

Conceals e-mail addresses

Home Page: https://halprin.io

License: GNU General Public License v3.0

Go 83.55% HCL 14.96% Shell 0.94% Makefile 0.55%

email-conceal's People

Watchers

 avatar  avatar  avatar

email-conceal's Issues

Disable Receiving E-mail Address if too many Bounces

As a owner of this program, in order to save on needlessly expended bandwidth and keep the cloud account in good standing, I want e-mail addresses disabled when their have been too many bounces.

Acceptance Criteria

  • Mark a source e-mail as disabled after one bounce.
    • What if the verification e-mail bounces?
  • Ability to mark an e-mail address as active after showing it can receive e-mails again by sending an e-mail similar to the ownership verification e-mail.
  • Do not forward e-mails to a disabled e-mail address.

Ideas

Use AWS SES's notification functionality to send events to an AWS SNS topic. This is hooked up to a Lambda that is able to write to the actual e-mail entity in DynamoDB. It will write more attributes that it had a hard bounce or marked the message as spam.

In the forwarding usecase, it will also check these attributes and not forward the e-mail if it had a bounce or was marked as spam.

Management

As a halprin, in order to add or delete e-mail mappings, I want a management application to add or delete mappings.

Forward an E-mail to Myself

A local command-line program that takes in a URL, reads from that URL location as an e-mail, and forwards it to me via AWS SES.

This doesn't need an SES rule created, an S3 bucket, nor an SNS topic. No IaC is needed for this. This is just to test the SES API. Later on, we can add a story for SES receiving part that'll require SES rules, S3 bucket, SNS topic, etc. Even beyond that, we can add a story to Dockerize this application and put it in ECS.

Descriptions for Conceal E-mail Addresses

As a halprin, in order to easily differentiate between multiple concealed e-mail addresses, I want to to assign descriptions to them.

Acceptance Criteria

  • Ability to set an optional description on creation of a concealed e-mail address.
  • Ability to add a description to a concealed e-mail address after creation.
  • Ability to delete a description to a concealed e-mail address.
  • Add this description to forwarded e-mails by including them in the custom e-mail address name.
  • Limit the description to 50 unicode characters.

Multiple User Support: Update Existing Endpoints

Update the existing endpoints to require that you are already logged in.
Update the existing endpoints to associate the user with the actual e-mails and conceal e-mails.
Update the existing endpoints to ensure you can only read/update/delete the actual e-mails and conceal e-mails that you created.

Allow E-mails Over 10 MB

AWS SES only allows up to 10 MB e-mails (once it's been encoded Base64) to be sent. Allow e-mails over 10 MB to be received using this service.

Possible Solutions

  • Put the output e-mail (not the input e-mail) into an S3 bucket and then send a simple e-mail out to the forwarded recipients with a S3 pre-signed link.

Anonymously Forward an E-mail for Myself

As halprin, in order to remain anonymous, I want to receive e-mail from a single anonymous e-mail address.

  • Set-up a single e-mail address to be the anonymous e-mail that receives e-mail
  • CI/CD process created
  • Infrastructure as Code created (SES to receive and send e-mails, S3 bucket to receive e-mails, SQS to be notified of e-mails, something to run the forwarder (ECS?))

Prove Ownership of E-mail Address

As a person with an e-mail address, in order for my e-mail address to not be signed up for this service when I don't want it to be, I want e-mail addresses to be verified by the owner before forwarding begins.

Acceptance Criteria

  • Valid owner of e-mail address has ability to verify ownership.
    • Send validation e-mail.
    • Validation link activates the actual e-mail.
  • Owner of e-mail address has ability chose to not approve e-mail address (which could be through ignoring the verification method).
  • Creating a conceal e-mail for a given actual e-mail is only allowed if that actual e-mail is verified.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.