Skip to Content

Mail

EUnifyer mail is built on Apache James  — an open-source IMAP/SMTP/JMAP mail server. External clients connect using standard protocols; no EUnifyer-specific API required.


Supported protocols

ProtocolPurposeStandard
IMAP4Mailbox access (read, move, flag, search)RFC 9051
SMTPMessage submissionRFC 5321
JMAPModern mail API (read, send, search)RFC 8620 + RFC 8621

IMAP

Connect using TLS on port 993. Use the user’s EUnifyer email address as the username.

SettingValue
Servermail.eunifyer.com
Port993
SecurityTLS/SSL
UsernameFull email address (user@yourdomain.com)
PasswordEUnifyer account password (or app-specific password if 2FA is enabled)

Auto-discovery

Mail clients discover these settings automatically:

GET /.well-known/autoconfig/mail/config-v1.1.xml # Thunderbird autoconfig POST /autodiscover/autodiscover.xml # Outlook/Exchange autodiscover

Most clients (Thunderbird, Apple Mail, Outlook) configure automatically from the email domain — just enter the email address.


SMTP

Submit messages using STARTTLS on port 587.

SettingValue
Servermail.eunifyer.com
Port587
SecuritySTARTTLS
UsernameFull email address
PasswordEUnifyer account password

Authentication method: PLAIN or LOGIN (over TLS).


JMAP

James exposes a full JMAP implementation (RFC 8620 + RFC 8621). The EUnifyer webmail UI uses JMAP internally. External JMAP access is available for integrations that need a more capable mail API than IMAP.

Session endpoint

GET /jmap/session Authorization: Basic <base64(email:password)>

Response includes the API and upload URLs, capabilities, and account IDs.

Common JMAP operations

# List mailboxes curl -X POST https://mail.eunifyer.com/jmap/api \ -u "user@yourdomain.com:password" \ -H "Content-Type: application/json" \ -d '{ "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"], "methodCalls": [ ["Mailbox/get", { "accountId": "ACCOUNT_ID", "ids": null }, "0"] ] }' # Query emails in inbox curl -X POST https://mail.eunifyer.com/jmap/api \ -u "user@yourdomain.com:password" \ -H "Content-Type: application/json" \ -d '{ "using": ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"], "methodCalls": [ ["Email/query", { "accountId": "ACCOUNT_ID", "filter": { "inMailbox": "INBOX_ID" }, "sort": [{ "property": "receivedAt", "isAscending": false }], "limit": 20 }, "0"], ["Email/get", { "accountId": "ACCOUNT_ID", "#ids": { "resultOf": "0", "name": "Email/query", "path": "/ids" }, "properties": ["subject", "from", "to", "receivedAt", "preview"] }, "1"] ] }'

App-specific passwords (2FA users)

If a user has two-factor authentication (TOTP) enabled, their main account password cannot be used with IMAP/SMTP directly. They can generate an app-specific password from Settings → Security → App passwords.

App-specific passwords work only for IMAP and SMTP — they cannot be used to log in to the web UI.


What’s not in v1

  • Custom mail REST API — EUnifyer does not expose a custom REST API for mail in v1. Use IMAP, SMTP, or JMAP instead.
  • External JMAP scope enforcementmail:read and mail:send scopes are defined but not yet enforced on external endpoints. When a stable external JMAP surface launches, these scopes will activate.
  • Programmatic mailbox provisioning via Partner API — mail domains are configured by admins; individual mailboxes are created automatically when a user account is created.

Do not build new custom mail REST wrappers. JMAP is the preferred path for API-based mail access when IMAP/SMTP is insufficient.


Email authentication records

EUnifyer configures DKIM, SPF, and DMARC automatically for managed domains. When setting up a custom domain, admins add DNS records that the setup wizard generates. See the Email Setup guide for instructions.