Privacy Tools Guide

When you need to sign up for a service you’ll use once—testing a trial, downloading a resource, accessing an one-off discount—your primary email inbox becomes cluttered with marketing emails, verification requests, and potential data breaches. Throwaway email accounts provide a buffer between your real identity and services that don’t need long-term communication.

This guide covers methods for creating throwaway email accounts that actually protect your privacy, rather than simply adding another disposable address to your already overflowing inbox.

Why Throwaway Email Matters for Privacy

Every service you sign up for becomes part of your digital footprint. Data breaches expose email addresses regularly, and that information gets sold, leaked, or compiled into marketing profiles. Using a throwaway email for one-time signups limits this exposure.

The key requirements for a secure throwaway email setup include:

Method 1: Email Alias Services

Email alias services sit between your real email and the outside world. You create unique aliases for each service, and all email flows through to your real inbox. If one service compromises your alias or starts spamming you, you disable that specific alias.

Self-Hosted Alias Solution with Mailu

For developers who want full control, Mailu provides a self-hosted email server with alias support. Here’s how to configure an alias forward in Mailu’s docker-compose setup:

# mailu-compose.yml snippet
version: '3.8'
services:
  mailu:
    image: mailu/mailu:latest
    environment:
      - DOMAIN=yourdomain.com
      - POSTMASTER=admin@yourdomain.com

Create aliases through the admin interface or API:

# Using Mailu API to create alias
curl -X POST "http://mailu.example.com/api/v1/alias" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"address": "newsletter@yourdomain.com", \
       "destination": "yourrealemail@gmail.com", \
       "comment": "for one-time signups"}'

Cloud Alias Services

Services like Forward Email, DuckDuckGo’s forwarding service, or SimpleLogin (acquired by Proton) offer alias functionality. These services handle the infrastructure while you maintain control over your aliases.

The trade-off involves trusting a third party with your forwarding rules. For high-threat scenarios, self-hosting provides more control.

Method 2: Dedicated Forwarding Addresses

Create a separate email account specifically for one-time use. This approach works well when you need something more than aliases but don’t want to set up a full alias infrastructure.

Gmail Filters for Disposable Management

If you use Gmail, you can use the plus-addressing feature combined with filters:

  1. Create a base address like myprojectsignups@gmail.com
  2. Sign up for services using myprojectsignups+netflix@gmail.com
  3. Create filters to automatically label and archive emails from these addresses
// Gmail filter configuration
// Match: to:(myprojectsignups+*@gmail.com)
// Action: Apply label "throwaway", Never send to Spam, Skip Inbox

This approach requires no additional services, but Gmail still sees all your email traffic, which matters for high-threat models.

Method 3: Command-Line Alias Generation

For developers comfortable with the terminal, generating email aliases programmatically provides maximum flexibility. Here’s a Python script that generates unique aliases for each service:

#!/usr/bin/env python3
import hmac
import hashlib
import secrets
import sys

def generate_alias(domain: str, service: str, secret: bytes) -> str:
    """Generate a deterministic email alias based on service name."""
    # Create unique but reproducible alias
    h = hmac.new(secret, service.encode(), hashlib.sha256)
    suffix = h.hexdigest()[:8]
    return f"{service.lower()}.{suffix}@{domain}"

def main():
    if len(sys.argv) != 3:
        print("Usage: alias_gen.py <domain> <service>")
        sys.exit(1)

    domain = sys.argv[1]
    service = sys.argv[2]
    secret = secrets.token_bytes(32)

    alias = generate_alias(domain, service, secret)
    print(f"Service: {service}")
    print(f"Generated alias: {alias}")
    print(f"Secret (save this!): {secret.hex()}")

if __name__ == "__main__":
    main()
# Usage example
python3 alias_gen.py mydomain.com github
# Output: Service: github
# Generated alias: github.a1b2c3d4@mydomain.com
# Secret (save this!): [hex string]

Store the secret in your password manager—you’ll need it if you ever want to regenerate the same alias or verify it’s yours.

Method 4: Burner Email for Maximum Disposability

When you need an email that truly disappears after use, burner email services provide temporary addresses that self-destruct. These work for quick verifications but shouldn’t be used for anything requiring future access.

Using a Self-Hosted Burner

Deploy your own temporary email service using Mailcow or similar:

# Mailcow docker-compose includes a temporary alias feature
# Access via: https://yourmail.example.com/temp

The advantage of self-hosting is knowing exactly how long data persists. Commercial burner services may log more than you expect.

Automating Alias Creation

For power users who sign up for services frequently, automating alias creation saves time. Here’s a bash script using a simple alias service API:

#!/bin/bash
# create-throwaway.sh

ALIAS_SERVICE="api.forwardemail.net"
API_KEY="your-api-key-here"
DOMAIN="your-domain.com"

create_alias() {
    local service_name="$1"
    local alias_name="${service_name}-$(date +%s)@${DOMAIN}"

    curl -X POST "https://${ALIAS_SERVICE}/v1/aliases" \
        -H "Authorization: Bearer ${API_KEY}" \
        -H "Content-Type: application/json" \
        -d "{\"name\": \"${alias_name}\", \"description\": \"${service_name} signup\"}"

    echo "Created: ${alias_name}"
}

# Usage
create_alias "product-hunt"

Best Practices for Throwaway Email

Regardless of which method you choose, follow these practices:

  1. Never use throwaway emails for sensitive accounts: Banking, healthcare, and password resets should always go to your primary, well-protected email.

  2. Track which alias maps to which service: If a service gets breached, you know exactly which alias to disable.

  3. Set up monitoring: Use HaveIBeenPwned alerts for your primary email, then check if any aliases appear in breaches.

  4. Consider email encryption: For forwarded emails containing sensitive data, encrypt messages end-to-end so the forwarding service can’t read them.

  5. Rotate regularly: Periodically disable old aliases to reduce your attack surface.

Choosing the Right Method

Your threat model determines which approach works best:

For most developers and power users, a combination works well: an alias service for ongoing one-time signups and a temporary email service for quick verifications.


Built by theluckystrike — More at zovo.one