Proton offers a few different methods to create aliases for maintaining privacy and security while using web based services.

Types of email addresses and aliases | Proton
An address can be made directly within proton but you are limited to 15 addresses. +Aliases provide additional unlimited aliases.

  • Can only reply to +Aliases, cannot send from them.
  • Some services don't allow +Aliases for sign-up.
  • If any alias gets compromised, then so does the base address.

Ideally you should have a unique address per website or services. SimpleLogin, which is included in the Proton Unlimited subscription, is a good service that offers that capability. Unlimited unique aliases can be created and used as normal emails to send and receive mail. A drawback though is the complicated setup process and need to create a new reverse aliases for each email and contact combination that you need to send mail to.

Setup

Domain Allocation

Configure the following domains through their respective applications.

  • <private-domain> is your unique domain.
  • <shared-domain> can be shared with multiple people.

Proton: @sieve.<shared-domain>.<tld>
SimpleLogin: @<shared-domain>.<tld>
@<private-domain>.<tld>

Email Allocation

Add a new address in PM with your name and the custom domain.
Proton Email: <name>@[proton-domain]

Create new SL mailboxes for each PM folder used for inbox sorting.
SimpleLogin Mailboxes: <name>+<category>@[proton-domain]

Create SL aliases as needed.

  • <website>.<random-prefix>@<SL-public-domains> as default
  • <website>.<random-prefix>@<shared-domain> for loss prevention
  • <website>@<private-domain>* for important emails (banks, gov, personal)

Filters

Incoming mail can be sorted using <website> and <category> portions of their recipient addresses:

require ["include", "environment", "variables", "relational", "comparator-i;ascii-numeric", "spamtest"];
require ["fileinto", "imap4flags", "vnd.proton.expire", "envelope"];

if envelope :domain "to" ["@sieve.<shared-domain>.<tld>"] {
  
  if envelope :contains "to" ["category1"] {
  	fileinto "category1";
  } elsif envelope :contains "to" ["category2"] {
	fileinto "Something/category2";
  } 

  return;
}

Extend the conditional statement for as many categories as needed.