IMAP & POP3 access

Read your API-registered inboxes in any standard mail client — Apple Mail, Thunderbird, Outlook, Mutt — using the standard IMAP and POP3 protocols. Available on Growth and Enterprise plans.

Your existing fce_ API key is the password. No new credentials to manage. Each message you fetch costs 1 request from your monthly quota; connecting, listing, and searching are free.

Connection details

ProtocolHostPortSecurity
IMAPimap.freecustom.email993SSL/TLS (required)
POP3pop.freecustom.email995SSL/TLS (required)
FieldValue
Usernameyour inbox address (e.g. alice@addmy.space)
Passwordyour fce_ API key
AuthenticationPLAIN (over TLS — safe)
Supported folderINBOX only

Connection limits

PlanIMAP connectionsPOP3 connections
Growth ($89/mo)5 concurrent3 concurrent
Enterprise ($199/mo)20 concurrent10 concurrent

Billing

ActionCost
Connect / authenticateFree
SELECT, LIST, SEARCH, UIDL, STATFree
IMAP FETCH (message body)5 requests per message
POP3 RETR5 requests per message

Supported IMAP commands

FCE implements IMAP4rev1 (RFC 3501) with the most-used command subset.

CAPABILITYNOOPLOGOUTLOGINSELECTEXAMINECLOSEFETCHUID FETCHSEARCHUID SEARCHSTOREUID STOREEXPUNGEUID EXPUNGE

Supported POP3 commands

CAPAUSERPASSQUITSTATLISTUIDLRETRDELENOOPRSETTOP

Code examples

Python — IMAP (imaplib)

python
import imaplib, email

INBOX   = "alice@addmy.space"
API_KEY = "fce_your_api_key"

with imaplib.IMAP4_SSL("imap.freecustom.email", 993) as m:
    m.login(INBOX, API_KEY)
    m.select("INBOX")
    _, ids = m.search(None, "UNSEEN")  # free — no billing
    for num in ids[0].split():
        _, data = m.fetch(num, "(RFC822)")  # 1 req billed per fetch
        msg = email.message_from_bytes(data[0][1])
        print("From:", msg["From"])
        print("Subject:", msg["Subject"])
        if msg.is_multipart():
            for part in msg.walk():
                if part.get_content_type() == "text/plain":
                    print(part.get_payload(decode=True).decode())

Node.js — IMAP (imap-simple)

javascript
const imaps = require("imap-simple");

const config = {
  imap: {
    user:     "alice@addmy.space",
    password: "fce_your_api_key",
    host:     "imap.freecustom.email",
    port:     993,
    tls:      true,
    authTimeout: 10000,
  },
};

imaps.connect(config).then(async (conn) => {
  await conn.openBox("INBOX");
  const msgs = await conn.search(["UNSEEN"], {
    bodies: [""],          // fetch full body — 1 req per message
    markSeen: true,
  });
  for (const msg of msgs) {
    const body = msg.parts.find(p => p.which === "").body;
    console.log("Body length:", body.length);
  }
  conn.end();
});

Python — POP3 (poplib)

python
import poplib, email

INBOX   = "alice@addmy.space"
API_KEY = "fce_your_api_key"

with poplib.POP3_SSL("pop.freecustom.email", 995) as p:
    p.user(INBOX)
    p.pass_(API_KEY)
    count, _ = p.stat()
    print(f"{count} messages in inbox")
    for i in range(1, count + 1):
        _, lines, _ = p.retr(i)   # 1 req billed
        msg = email.message_from_bytes(b"\n".join(lines))
        print("Subject:", msg["Subject"])

Mail client quick-setup

Use these settings in Apple Mail, Thunderbird, or Outlook:

IMAP hostimap.freecustom.email
IMAP port993
POP3 hostpop.freecustom.email
POP3 port995
SSL/TLSAlways on (required)
Usernamealice@addmy.space
Passwordfce_your_api_key
AuthenticationNormal password / PLAIN

Common issues

ErrorCause / fix
AUTHENTICATIONFAILEDWrong inbox address or API key; check the key is active in the dashboard.
[LIMIT] Too many connectionsYou have hit the concurrent connection limit for your plan. Disconnect idle sessions or upgrade.
inbox_not_ownedThe inbox is not registered on your account. Register it first via POST /v1/inboxes.
SSL certificate errorMake sure SSL/TLS is enabled (port 993/995). Plaintext ports 143/110 are not available.