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
| Protocol | Purpose | Standard |
|---|---|---|
| IMAP4 | Mailbox access (read, move, flag, search) | RFC 9051 |
| SMTP | Message submission | RFC 5321 |
| JMAP | Modern 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.
| Setting | Value |
|---|---|
| Server | mail.eunifyer.com |
| Port | 993 |
| Security | TLS/SSL |
| Username | Full email address (user@yourdomain.com) |
| Password | EUnifyer 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 autodiscoverMost clients (Thunderbird, Apple Mail, Outlook) configure automatically from the email domain — just enter the email address.
SMTP
Submit messages using STARTTLS on port 587.
| Setting | Value |
|---|---|
| Server | mail.eunifyer.com |
| Port | 587 |
| Security | STARTTLS |
| Username | Full email address |
| Password | EUnifyer 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 enforcement —
mail:readandmail:sendscopes 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.