# Double opt-in: confirm the address before you send

Double opt-in means a signup counts only after the person confirms by email. How it works, the trade-offs, and where the confirm step fits with Mimeo.

**Definition:** Double opt-in is a signup that counts only after the person confirms it, usually by clicking a link in a confirmation email, so every address on the list is real and belongs to someone who asked to join.

## How it works

1. A person enters their email address in a signup form.
2. The sender emails one message with a confirmation link.
3. The person clicks it, and only then joins the list. The time of the click is a record of consent.
4. If they never click, they never join.

With **single opt-in** there is no confirmation: submitting the form subscribes the person at once.

## Why it matters

- **Typos and fake addresses stay off the list.** An address nobody can open never confirms, so it never hard-bounces later.
- **Nobody is signed up by someone else.** A bot, or a person typing a stranger's address, can fill in a form, but only the owner of the inbox can confirm.
- **Gmail recommends it.** Google's sender guidelines say to confirm each recipient's email address before subscribing them.
- **The trade-off is growth.** Some real people never click the confirmation, so the list grows more slowly.

## How Mimeo handles it

Mimeo is built for opt-in lists. People arrive as events your site or app sends to Mimeo. The convention is an `opted_in` event, with the form named in `details.entry_point` ([opt-in intake](https://mimeohq.com/docs/api/events#opt-in-intake)). That puts the confirmation step where the signup happens: if your site sends `opted_in` only after the person confirms, unconfirmed addresses never reach your list.

If you'd rather have Mimeo send the confirmation email, build it as a [flow](https://mimeohq.com/docs/usage/flows):

1. Trigger on your signup event.
2. Send the confirmation email.
3. A [gate](https://mimeohq.com/docs/usage/flows#gates) waits, with an expiry, until the person has clicked a link in that email. Mimeo's click conditions count human clicks only, so a link scanner can't confirm anyone.
4. On the **Criteria met** path, add a `confirmed` tag.

Start your welcome flow from that tag being added, and have your broadcast segments require it. People who never confirm stay outside every audience that requires the tag. See [Mimeo terms](https://mimeohq.com/docs/glossary#working-in-mimeo) for events, flows and gates in Mimeo's own words.

## Sources

1. [Email sender guidelines](https://support.google.com/a/answer/81126), checked 2026-11-09
2. [The event contract](https://mimeohq.com/docs/api/events), checked 2026-11-09
3. [Flows](https://mimeohq.com/docs/usage/flows), checked 2026-11-10

---

This is the Markdown copy of https://mimeohq.com/glossary/double-opt-in.
