Skip to main content
When a reader asks for a magic link, whether they are signing up, signing in, or subscribing to a newsletter, your theme’s success notice can carry a button that takes them into their own webmail, filtered to the message that is arriving. Outpost calls this inbox links. The feature has two halves:
  • The button. The Outpost inbox links drop-in, a template pack installed in your Ghost theme, renders the button, decides when to show it, and builds the link.
  • The lookup. A public endpoint on your Outpost domain that says which webmail provider sits behind an email domain. It is what makes the button work for readers at company addresses instead of only at the well-known consumer domains.
This page documents the lookup, and what the drop-in does with it.
The lookup on its own renders nothing. The button comes from the Outpost inbox links drop-in, which the Outpost team installs in your theme and matches to its design. To add inbox links to your site, contact support@outpost.pub.

Providers Outpost recognizes

Nine providers are recognized by email domain. Any other domain is resolved from the domain’s mail records, which is how addresses on Google Workspace and Microsoft 365 are recognized.

The lookup

provider is one of gmail, yahoo, outlook, proton, icloud, hey, aol, mailru, or feedbin, or null when Outpost cannot place the domain.
  • Your Outpost domain is the one your theme already stores in partials/integrations/outpost-domain-name.hbs. See Ghost Theme Integration for where that value comes from.
  • No key and no member are involved. The request carries the email domain and nothing else.
  • Send the domain, never the address. The endpoint accepts no other value, and the reader’s full address does not need to leave their browser.
  • Requests from the reader’s browser are allowed. The endpoint accepts cross-origin requests from any origin and does not accept credentialed ones, so your theme can call it directly from the page.

How Outpost decides

Domains in the table above are answered from that list, with no mail record lookup. For any other domain, Outpost reads the domain’s MX records and finds the most preferred priority level that contains a mail server it recognizes. If every server at that level belongs to the same provider, Outpost returns that provider. If that level mixes two providers, or includes a server Outpost does not recognize, the answer is null. Records at any other priority level are ignored. This is what catches company domains hosted on Google Workspace or Microsoft 365. An answer is remembered for 24 hours, including a null answer, so a repeat question about the same domain does not trigger a fresh mail record lookup.

What the lookup is not

Outpost answers only when the host you call resolves to a live Outpost site. A host that does not resolve to one gets a 404. That is the only part your site plays. The answer itself does not depend on the site. It is the same for every caller, and Outpost caches it by email domain across the platform, so a domain another site has already asked about is answered from that cache. Treat this as a public lookup, not as an endpoint private to your site.

Responses

A domain is accepted if it is at most 253 characters and looks like a hostname: dot-separated labels of letters, digits, and hyphens, with at least one dot. A single word such as localhost is rejected.
Send Accept: application/json with the request. Without that header, a rejected domain is answered with a redirect to an HTML page rather than a 422.

Rate limit

The endpoint allows 10 requests a minute per reader IP address. That allowance is shared with the member label endpoints under /ghost/members/. A page that uses both spends one allowance across the two. Waiting for a pause in typing, and remembering each domain for the life of the page, keeps normal use well inside the limit.

Building your own button

The drop-in is the supported path, and it already does all of this. If you are writing your own instead, these are the rules it follows.
  1. Recognize the domains in the table above in the browser. Most readers are on one of them, and those addresses then need no request at all.
  2. Wait until the reader stops typing before calling, and remember the answer for each domain on the page. The drop-in waits about 400 milliseconds.
  3. Treat every failure as no provider. A refused, slow, or unavailable lookup should leave the plain notice in place, with no error shown and no button.
  4. Hide the button on iOS. Web links cannot reliably open the installed mail app there, and the drop-in hides it for that reason.
  5. Send the bare domain. Never the address, and nothing else.

FAQ

No. The lookup only answers which webmail provider is behind an email domain. The button, its icons, and the logic that shows and hides it come from the Outpost inbox links drop-in, which the Outpost team installs in your theme. Contact support@outpost.pub to have it added.
No. The only value it accepts is the domain, the part after the @. The drop-in sends nothing else, and the reader’s full address stays in their browser.
There are three common reasons. The reader may be on iOS, where the button is hidden on purpose because web links cannot reliably open the installed mail app. The domain may not be one Outpost recognizes, with mail records that do not point at a provider Outpost knows. Or the theme may be missing the Outpost domain name partial, which switches the lookup off and leaves only the well-known consumer domains working.

Ghost Theme Integration

Add the Outpost script and integration partials to your theme.

Theme Connect Wizard

Let Outpost add the integration partials to your theme for you.

Contact Support

Contact the Outpost team about adding inbox links to your site.