config-email/sync/QUICKSTART.md

4.0 KiB

Quick Start Guide - Email Rules Sync

What This Does

Reads email rules from AWS DynamoDB Generates Sieve scripts for Out-of-Office auto-replies Generates Postfix virtual aliases for email forwarding Syncs every 5 minutes automatically

Setup (5 Minutes)

Step 1: Setup Sudo Permissions

cd /home/timo/config-email/sync
./setup-sudo.sh

This allows the sync script to change file ownership without password prompts.

Step 2: Test Manual Sync

sudo node sync.js

You should see:

✅ Found X email rules
✅ Created Sieve script for user@domain.com
✅ Updated virtual aliases
✅ Postfix reloaded
✅ Dovecot reloaded

Step 3: Install Cron Job

./install-cron.sh

This sets up automatic syncing every 5 minutes.

Verify It's Working

Check Logs

tail -f /tmp/email-rules-sync.log

Check Sieve Scripts (Auto-Reply)

# For support@qrmaster.net
cat /home/timo/docker-mailserver/docker-data/dms/mail-data/qrmaster.net/support/home/.dovecot.sieve

Check Virtual Aliases (Forwarding)

cat /home/timo/docker-mailserver/docker-data/dms/config/postfix-virtual.cf

Test Auto-Reply

  1. Go to Roundcube → Settings → Email Configuration
  2. Click "Open Email Configuration"
  3. Enable "Out of Office"
  4. Set message: "I'm out until Monday"
  5. Click "Update Rule"
  6. Wait 5 minutes (or run sudo node sync.js manually)
  7. Send an email to that address
  8. You should receive an auto-reply! 🎉

Test Forwarding

  1. Go to Roundcube → Settings → Email Configuration
  2. Click "Open Email Configuration"
  3. Go to "Email Forwarding" tab
  4. Add forward address: your@email.com
  5. Click "Update Rule"
  6. Wait 5 minutes (or run sudo node sync.js manually)
  7. Send an email to that address
  8. You should receive it at your forward address! 🎉

Architecture

┌──────────────┐
│   React UI   │  ← User configures rules
└──────┬───────┘
       │
       ↓
┌──────────────┐
│  Express API │  ← Saves to DynamoDB
└──────┬───────┘
       │
       ↓
┌──────────────┐
│   DynamoDB   │  ← Rules stored here
└──────┬───────┘
       │
       ↓ (Every 5 min)
┌──────────────┐
│  Sync Script │  ← YOU ARE HERE
└──────┬───────┘
       │
       ↓
┌──────────────────────────────┐
│       Mail Server            │
│  ┌────────┐  ┌────────────┐  │
│  │ Sieve  │  │  Postfix   │  │
│  │  OOO   │  │ Forwarding │  │
│  └────────┘  └────────────┘  │
└──────────────────────────────┘

Troubleshooting

Sync fails with permission error

Run: ./setup-sudo.sh

Auto-reply not working

  1. Check Sieve script was created:

    sudo node sync.js
    # Look for "✅ Created Sieve script for..."
    
  2. Check Dovecot logs:

    docker logs mailserver-new 2>&1 | grep -i sieve
    

Forwarding not working

  1. Check virtual aliases:

    cat /home/timo/docker-mailserver/docker-data/dms/config/postfix-virtual.cf
    
  2. Check Postfix logs:

    docker logs mailserver-new 2>&1 | grep -i virtual
    
  3. Manually reload:

    docker exec mailserver-new postfix reload
    

Next Steps

  1. Setup sudo permissions
  2. Test manual sync
  3. Install cron job
  4. Test auto-reply
  5. Test forwarding
  6. 🎉 Enjoy automated email rules!

Files

  • sync.js - Main sync script
  • setup-sudo.sh - Setup sudo permissions
  • install-cron.sh - Install cron job
  • .env - Configuration (AWS credentials)
  • QUICKSTART.md - This file
  • README.md - Detailed documentation