webhooksEnabledboolean nullable
Enable or disable webhook delivery for all accounts
webhooksstring nullable
Target URL that will receive webhook notifications via POST requests
webhookEventsstring[] nullable
List of event types that will trigger webhook notifications
notifyHeadersstring[] nullable
Email headers to include in webhook payloads for additional context
serviceUrlstring nullable
Base URL of this EmailEngine instance (used for generating public URLs, path component is ignored)
notificationBaseUrlstring nullable
Public callback URL for external OAuth providers. Falls back to serviceUrl if not set
trackClicksboolean nullable
Rewrite links in outgoing HTML emails to track click-through rates
trackOpensboolean nullable
Insert a tracking pixel in outgoing HTML emails to detect when messages are opened
imapIndexer'full' | 'fast' nullable
How much of a mailbox EmailEngine tracks on each sync
resolveGmailCategoriesboolean nullable
Automatically detect and categorize Gmail tabs (Primary, Social, Promotions, etc.) for IMAP connections
ignoreMailCertErrorsboolean nullable
Allow connections to mail servers with self-signed or invalid TLS certificates (not recommended for production)
generateEmailSummaryboolean nullable
Generate AI-powered summaries for incoming emails using OpenAI
openAiAPIKeyboolean nullable
Whether a value is set for this setting. Secret values are never returned, only a boolean marker
openAiModelstring nullable
Model name for AI processing. Empty means the built-in default, gpt-6-luna
openAiAPIUrlstring nullable
Base URL for the OpenAI API
openAiTemperaturenumber nullable
Controls randomness in AI responses (0 = deterministic, 2 = very creative). Not sent to a reasoning model while it reasons
openAiTopPnumber nullable
Nucleus sampling parameter for AI text generation (0-1, lower = more focused). Not sent to a reasoning model while it reasons
openAiReasoningEffort'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max' nullable
Reasoning effort for reasoning models such as GPT-5 and later. Empty sends "low" to those models and nothing to others. A value the model refuses is dropped
openAiMaxTokensnumber nullable
Token budget for the prompt sent to the model, the instructions and the email together. The email text is cut to fit. Defaults to 30000
openAiPromptstring nullable
Instructions for the AI, sent as the system message ahead of the email. They say which JSON properties to return. Empty means the built-in instructions
inboxNewOnlyboolean nullable
Trigger "messageNew" webhooks only for messages arriving in the Inbox folder
serviceSecretboolean nullable
Whether a value is set for this setting. Secret values are never returned, only a boolean marker
authServerstring nullable
External authentication service URL for retrieving mailbox credentials dynamically
tokenAuditLogboolean nullable
Record which requests each access token makes, readable at GET /v1/tokens/{token}/log. Disabled by default, and entries only exist from the point it is enabled
proxyEnabledboolean nullable
Route all outbound connections through a proxy server: IMAP and SMTP sessions as well as HTTP/HTTPS requests (Gmail API, Microsoft Graph, OAuth2 token exchange, webhooks, license validation) unless a dedicated HTTP proxy is configured
proxyUrlstring nullable
Proxy server URL for outbound connections
httpProxyEnabledboolean nullable
Route outbound HTTP/HTTPS requests (webhooks, OAuth2 token exchange, Gmail API and Microsoft Graph calls, license validation) through a dedicated proxy instead of the global proxy
httpProxyUrlstring nullable
Dedicated proxy URL for outbound HTTP/HTTPS requests. When not set, HTTP/HTTPS requests use the global proxy
smtpEhloNamestring nullable
Hostname to use in SMTP EHLO/HELO commands (defaults to system hostname)
notifyTextboolean nullable
Include plain text message content in webhook payloads
notifyWebSafeHtmlboolean nullable
Sanitize HTML content to remove potentially dangerous elements before including in webhooks, and fold quoted thread history into a collapsed block
notifyTextSizeinteger nullable
Maximum size (in bytes) of text content to include in webhook payloads
notifyAttachmentsboolean nullable
Include attachment data in webhook payloads
notifyAttachmentSizeinteger nullable
Maximum size (in bytes) per attachment to include in webhook payloads
notifyCalendarEventsboolean nullable
Include parsed calendar event data in webhook payloads
mcpEnabledboolean nullable
Enable the MCP (Model Context Protocol) endpoint at /mcp, which lets AI agents work with the connected email accounts using access tokens. Disabled by default
mcpOAuthEnabledboolean nullable
Enable the built-in OAuth2 authorization server for the MCP endpoint, used by MCP clients that cannot be configured with a static access token. Requires mcpEnabled and a configured serviceUrl. Disabled by default
sentryEnabledboolean nullable
Send unhandled error reports to a Sentry server. Applied at runtime, no restart needed. Ignored when the SENTRY_DSN environment variable is set
sentryDsnstring nullable
Sentry DSN to send error reports to. If empty, reports go to the Sentry instance run by the EmailEngine developers
imapStrategy'default' | 'dedicated' | 'random' nullable
IP address selection strategy for mailbox access when multiple local addresses are available: IMAP sessions, Gmail API and MS Graph requests, and the OAuth2 token requests of every account. The key keeps its historical name
smtpStrategy'default' | 'dedicated' | 'random' nullable
IP address selection strategy for sending over SMTP when multiple local addresses are available
localAddressesstring[] nullable
List of local IP addresses to use for outbound connections (requires appropriate network configuration)
smtpServerEnabledboolean nullable
Enable the built-in SMTP server for receiving emails
smtpServerPortinteger nullable
Port number for the built-in SMTP server
smtpServerHoststring nullable
IP address to bind the SMTP server to (empty = all interfaces)
smtpServerProxyboolean nullable
Enable PROXY protocol support for the SMTP server. The PROXY header is accepted from any peer, so the port must only be reachable through the proxy
smtpServerAuthEnabledboolean nullable
Require SMTP authentication for incoming connections
smtpServerPasswordboolean nullable
Whether a value is set for this setting. Secret values are never returned, only a boolean marker
smtpServerTLSEnabledboolean nullable
Serve the SMTP submission server over implicit TLS. STARTTLS is never offered
tlsProvisioning'acme' | 'manual' | 'self-signed' nullable
Where the TLS certificate for the built-in listeners comes from: "acme" orders one from Let's Encrypt, "manual" uses the certificate uploaded through the admin UI, "self-signed" stops trying to get a real one
tlsHostnamesstring[] nullable
Additional hostnames to hold certificates for, beyond the Service URL hostname. Each one is ordered separately and served over SNI, so a mail client connecting to smtp.example.com is offered a certificate for that name
apiTLSCertificatestring nullable
The certificate the Admin UI and API presents by default (to a client that names no host, and for every name the certificate covers). "auto" lets EmailEngine decide: the material from EENGINE_API_TLS_* when it is set, otherwise the certificate for the Service URL hostname. Otherwise an id from the TLS Certificates page: "manual", "self-signed", "acme:<hostname>", or "env:api" / "env:smtp" / "env:imapProxy". A name the default does not cover is still served its own certificate
smtpServerTLSCertificatestring nullable
The certificate the SMTP server presents by default (to a client that names no host, and for every name the certificate covers). "auto" lets EmailEngine decide: the material from EENGINE_SMTP_TLS_* when it is set, otherwise the certificate for the Service URL hostname. Otherwise an id from the TLS Certificates page: "manual", "self-signed", "acme:<hostname>", or "env:api" / "env:smtp" / "env:imapProxy". A name the default does not cover is still served its own certificate
imapProxyServerTLSCertificatestring nullable
The certificate the IMAP proxy presents by default (to a client that names no host, and for every name the certificate covers). "auto" lets EmailEngine decide: the material from EENGINE_IMAPPROXY_TLS_* when it is set, otherwise the certificate for the Service URL hostname. Otherwise an id from the TLS Certificates page: "manual", "self-signed", "acme:<hostname>", or "env:api" / "env:smtp" / "env:imapProxy". A name the default does not cover is still served its own certificate
imapProxyServerEnabledboolean nullable
Enable the IMAP proxy server
imapProxyServerPortinteger nullable
Port number for the IMAP proxy server
imapProxyServerHoststring nullable
IP address to bind the IMAP proxy to (empty = all interfaces)
imapProxyServerProxyboolean nullable
Enable PROXY protocol support for the IMAP proxy. The PROXY header is accepted from any peer, so the port must only be reachable through the proxy
imapProxyServerPasswordboolean nullable
Whether a value is set for this setting. Secret values are never returned, only a boolean marker
imapProxyServerTLSEnabledboolean nullable
Enable TLS support for the IMAP proxy
queueKeepinteger nullable
Number of completed and failed queue entries to retain for debugging
deliveryAttemptsinteger nullable
Maximum number of delivery attempts before marking a message as permanently failed
gmailSubscriptionTtlinteger nullable
Gmail Pub/Sub subscription inactivity expiration in days. Empty for Google default (31 days), 0 for no expiration.
templateHeaderstring nullable
Custom HTML to inject at the top of hosted pages (e.g., for branding)
templateHtmlHeadstring nullable
Custom HTML to inject into the <head> section of hosted pages (e.g., for analytics)
scriptEnvstring nullable
JSON object containing environment variables available to pre-processing scripts
enableApiProxyboolean nullable
Trust X-Forwarded-* headers when behind a reverse proxy
locale'en' | 'et' | 'fr' | 'de' | 'pl' | 'ja' | 'nl' | 'sv' | 'es' | 'it' | 'tr' nullable
Default language/locale for the user interface
timezonestring nullable
Default timezone for date/time display (IANA timezone identifier)
pageBrandNamestring nullable
Brand name displayed in page titles
openAiPreProcessingFnstring nullable
JavaScript function to filter emails before AI processing (return true to process, false to skip)
imapClientNamestring nullable
Client name advertised via IMAP ID extension
imapClientVersionstring nullable
Client version advertised via IMAP ID extension
imapClientVendorstring nullable
Vendor name advertised via IMAP ID extension
imapClientSupportUrlstring nullable
Support URL advertised via IMAP ID extension
exportMaxConcurrentinteger nullable
Maximum concurrent exports per account
exportMaxGlobalConcurrentinteger nullable
Maximum concurrent exports system-wide across all accounts
gmailExportBatchSizeinteger nullable
Number of parallel message fetch requests for Gmail export operations (default: 10, max: 50)
outlookExportBatchSizeinteger nullable
Number of messages per batch request for Outlook export operations (default: 20, max: 20 - MS Graph API limit)
exportMaxMessagesinteger nullable
Maximum number of messages per export (default: 500000)
exportMaxSizeinteger nullable
Maximum export file size in bytes (default: 10GB)
exportMaxMessageSizeinteger nullable
Maximum size of a single message included in an export, in bytes. Larger messages are skipped (default: 50MB)
exportMaxAgeinteger nullable
How long a finished export is kept before it is deleted, in milliseconds (default: 24 hours)
eventTypesstring[]
Supported webhook event types