Giter VIP home page Giter VIP logo

lockerpm / maily Goto Github PK

View Code? Open in Web Editor NEW
9.0 2.0 1.0 3.98 MB

A privacy-first email solution that provides an email alias @maily.org to hide the original email address when using the internet

Home Page: https://maily.org

License: GNU General Public License v3.0

Dockerfile 0.49% Python 97.31% HTML 2.20%
aliases email-alias email-privacy email-protection email-security locker password-manager private-relay security end-to-end-encryption

maily's Introduction

Locker Password Manager


Maily

Maily is the core of Locker Private Email that allows users to create email aliases @maily.org to keep their original email addresses hidden when using the internet. With Maily, users can create unique email aliases for different purposes, such as online shopping, social media, or business contacts, and manage them within one secure inbox.

Development

Maily is written in Python 3.10 and utilizes a stack of AWS (Amazon Web Services) to process and store messages including S3, SES, and SQS.

Run locally

  1. Clone and change to the directory:

    git clone https://github.com/lockerpm/maily.git
    cd maily
  2. Create and activate a virtual environment:

    Unix based systems:

    virtualenv env
    source env/bin/activate

    Windows:

    python -m venv env
    source env/Scripts/activate
  3. Install Python requirements:

    pip install -r requirements.txt
  4. Set environment variables Maily requires a list of variables defined in the config file. You should set the following variables:

    Variable Description Example
    RELAY_DOMAIN The relay domain maily.org
    REPLY_EMAIL The email used for replying [email protected]
    RELAY_FROM_ADDRESS The relay email address [email protected]
    LOCKER_TOKEN_API The token to authenticate with the Locker server. You should implement your own backend server to serve requests from Maily
    AWS_REGION The default region of AWS S3 us‑east‑1
    AWS_SES_CONFIG_SET Maily uses AWS SES to send emails, so you have configure the configure set in SES
    AWS_SNS_TOPIC The SNS topic of AWS for getting new notifications
    AWS_SQS_URL The SQS URL of AWS for getting tasks from the queue

    The variables can be set by the command export NAME=VALUE

  5. Run the prgram

    python manage.py

Docker

In the production environment, Maily is packaged in Docker containers and run on Kubernetes (k8s). You can run an instance of Maily as following

docker build -t maily .
docker run maily 

API Access

We published the docs for using Locker Private Email here. You can use it to create unlimited email aliases without building Maily

Credits

Maily is inspired by Mozilla Private Relay and uses some of its code for message handling. Thanks to Mozilla for the awesome project.

License

GPLv3

maily's People

Contributors

dangzed avatar everping avatar khaitranquang avatar minhunderscore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

tasi788

maily's Issues

may hit cloudflare subdomain limit

def create_dns_record(record_type, record_key, record_value, priority=None):
"""
Create DNS records in Cloudflare
"""
payload = {"type": record_type, "name": record_key, "content": record_value}
if priority:
payload["priority"] = priority
r = requests.post(CF_API, headers=CF_HEADERS, json=payload)
logger.info(f'[+] Created record {record_type} {record_key} {record_value}')
return r

In this code, it seems there is no exception handling, and there could also be potential issues. According to Cloudflare community, there are only 1000 subdomain records for the free plan and 3500 for the paid plan, whereas the Enterprise plan differs. But from what can be seen currently, maily.org seems only to be using the free or pro plan. Do we have any future plans regarding this?

edit:
ref: https://community.cloudflare.com/t/limit-on-dns-records-per-domain/415781

realy header text not work

maily/src/maily/message.py

Lines 295 to 299 in cde1768

relay_header_text = (
"This email was sent to your alias "
"{alias}. To stop receiving emails sent to this alias, "
"update the forwarding settings in your dashboard.\n"
"{extra_msg}---Begin Email---\n"

According to the above code, it seems to be not working properly. I'm not sure if maily has changed its architecture.

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.