> For the complete documentation index, see [llms.txt](https://docs.appfarm.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.appfarm.io/how-to/integrations/troubleshoot-login-email-delivery.md).

# Troubleshoot login email delivery

Users sign in to Appfarm apps using authentication emails — a one-time **access code** (PIN), a **login link** ("magic link"), or a password-reset email. This guide helps you diagnose why a user is not receiving one of these emails, or is receiving it late.

{% hint style="info" %}
**Good to know**

* Authentication emails are sent from **`login@appfarm.io`**.
* Appfarm's authentication emails are **DMARC compliant** — they pass SPF, DKIM and DMARC checks.
* An access code (one-time PIN) **expires 5 minutes** after it is sent.
* Emails are normally delivered within about a minute. Longer delays or non-delivery are almost always caused on the **receiving** side — a mistyped address, spam filtering, or corporate quarantine — rather than by Appfarm.
  {% endhint %}

## Quick checks

Work through these first — they resolve the large majority of cases.

1. **Check the email address is spelled correctly.** The most common cause is a small typo in the recipient's address (for example, a missing letter in the domain). Confirm the exact address the user is signing in with.
2. **Check spam, junk and quarantine folders.** Search the mailbox for the sender `login@appfarm.io`. Authentication emails are sometimes filtered there.
3. **Request a new access code.** Access codes expire after 5 minutes. Ask the user to request a fresh code and enter it promptly.
4. **Give it a moment and check the connection.** Delivery is usually near-instant, but a poor network or a busy recipient mail server can add a short delay.

## If the email still doesn't arrive

If the address is correct and the email isn't in spam, the recipient's mail system is most likely filtering or quarantining it. Appfarm's authentication emails pass SPF, DKIM and DMARC, so when a message is still blocked it is due to the recipient's own filtering policy rather than Appfarm's sending setup. This is resolved on the **recipient's** side, usually by their IT or email administrator.

Ask them to **allow (safelist) Appfarm as a sender**:

* Sender address: **`login@appfarm.io`**
* Sender domain: **`appfarm.io`** (messages are DKIM-signed for this domain)

Common reasons corporate mail systems block or delay these emails:

* **Strict spam or security filtering** that quarantines external senders by default — even when SPF, DKIM and DMARC all pass — especially noticeable when sending to many recipients in the same organization.
* **Organization-wide rules** that only accept mail from known senders.

{% hint style="info" %}
You can confirm how a mailbox handled the message by inspecting the email headers — look at the `spf`, `dkim` and `dmarc` results, plus any spam score or quarantine reason added by the recipient's security system.
{% endhint %}

## Still need help?

If the email is confirmed not to arrive after the checks above, contact Appfarm support — we can verify whether the code was successfully sent from the platform. To help us investigate quickly, include:

* The **solution name** and **environment** (Development, Test, Staging or Production).
* The **exact email address(es)** affected, and whether it's one user or everyone.
* **When** it started and when it last worked.
* Any **email headers** or screenshots from the recipient's mailbox.

See [Contact support](/solution-administration/contact-support.md) for how to reach us.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.appfarm.io/how-to/integrations/troubleshoot-login-email-delivery.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
