Compliance and Data Handling
This page documents what data EmailEngine stores, how it handles sensitive information, and guidance for compliance requirements including GDPR and Google OAuth verification.
Data Storage Overview
What EmailEngine Stores
EmailEngine stores the following data in Redis:
| Data Category | Examples | Encrypted* | Retention |
|---|---|---|---|
| Account credentials | IMAP/SMTP passwords, OAuth tokens | Yes | Until account deleted |
| Account metadata | Email address, account ID, connection state | No | Until account deleted |
| Message index | Message UIDs, flags, folder structure | No | Until account deleted or flushed |
| OAuth configuration | Client IDs, client secrets | Yes | Until removed |
| Application settings | Webhook URLs, API tokens | No | Persistent |
| Queue jobs | Pending emails, webhook deliveries | No | Until processed (typically minutes) |
| Logs | Connection events, errors | No | Configurable (default: 10,000 entries) |
* Encryption requires EENGINE_SECRET to be configured. Without it, all data is stored in cleartext.
What EmailEngine Does NOT Store
- Email content - Message bodies are fetched on-demand from the mail server and not cached
- Attachments - Retrieved directly from mail server when requested
- Email headers - Only specific headers included in webhooks (configurable)
- Historical message content - No email archive or backup functionality
- User browsing data - No cookies or tracking outside admin interface session
No Developer Access
EmailEngine is fully self-hosted. EmailEngine developers have no access to your instance, data, or credentials. There is no remote management, telemetry collection, or backdoor access.
Outbound connections: EmailEngine makes limited outbound requests for operational purposes:
postalsys.com- License key validation (required)api.github.com- Version update checks (optional, for admin dashboard notifications)
These requests contain no user data, email content, or account information. See Outbound Connection Whitelist for the complete list of external domains.
Data Flow
- Credentials flow from user to EmailEngine to Redis (encrypted)
- Email content flows from mail server through EmailEngine to your application (not stored)
- Webhook payloads contain metadata and optionally message content (sent to your endpoint)
Encryption
EmailEngine supports AES-256-GCM field-level encryption for all sensitive data.
Encrypted when EENGINE_SECRET is set:
- IMAP/SMTP passwords
- OAuth access and refresh tokens
- OAuth client secrets (Gmail, Outlook)
- API secrets and service keys
- OpenAI API key
Not encrypted:
- Account IDs and email addresses
- Message UIDs and folder names
- Application settings (URLs, feature flags)
See Secret Encryption for setup instructions.