172 lines
4.0 KiB
Markdown
172 lines
4.0 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
./install-cron.sh
|
|
```
|
|
|
|
This sets up automatic syncing every 5 minutes.
|
|
|
|
## Verify It's Working
|
|
|
|
### Check Logs
|
|
|
|
```bash
|
|
tail -f /tmp/email-rules-sync.log
|
|
```
|
|
|
|
### Check Sieve Scripts (Auto-Reply)
|
|
|
|
```bash
|
|
# For support@qrmaster.net
|
|
cat /home/timo/docker-mailserver/docker-data/dms/mail-data/qrmaster.net/support/home/.dovecot.sieve
|
|
```
|
|
|
|
### Check Virtual Aliases (Forwarding)
|
|
|
|
```bash
|
|
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:
|
|
```bash
|
|
sudo node sync.js
|
|
# Look for "✅ Created Sieve script for..."
|
|
```
|
|
|
|
2. Check Dovecot logs:
|
|
```bash
|
|
docker logs mailserver-new 2>&1 | grep -i sieve
|
|
```
|
|
|
|
### Forwarding not working
|
|
|
|
1. Check virtual aliases:
|
|
```bash
|
|
cat /home/timo/docker-mailserver/docker-data/dms/config/postfix-virtual.cf
|
|
```
|
|
|
|
2. Check Postfix logs:
|
|
```bash
|
|
docker logs mailserver-new 2>&1 | grep -i virtual
|
|
```
|
|
|
|
3. Manually reload:
|
|
```bash
|
|
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
|