Double opt-in means a new subscriber types their address, then clicks a link in a confirmation email before you add them to your list. It proves the inbox is real and the owner wanted your mail. Single opt-in adds them at once. Double opt-in grows slower but keeps typos and fake signups out.
| Single opt-in | Double opt-in | |
|---|---|---|
| Steps for the subscriber | Submit the form | Submit the form, then click the email link |
| Typos and fake addresses | Get onto the list | Never confirm, so stay off |
| List growth | Faster | Slower, some people never click |
| Proof the owner asked | Form submission only | Form submission plus the click |
Updated
Neither the US CAN-SPAM Act nor UK email marketing rules demand double opt-in, so it is a choice, not a legal checkbox. It is the cheapest way to stop bounces and spam complaints from addresses that were never really yours. Try the flow below to see each step and the consent record it leaves behind.
Step 1: the visitor fills in the form.
Email address
Send me the monthly newsletter. I can unsubscribe at any time.
Sign up
Nothing is sent or stored. This demo runs only in your browser.
Copy this, swap in your business name, and keep it this short.
One clear action, a reason the person got it, and a safe way out if they did not sign up.
Subject: Confirm your subscription to [Business name]
Hi,
Someone (hopefully you) asked to receive [Business name]'s newsletter
at this address. Please confirm with the button below:
[ Confirm my subscription ]
Didn't sign up? Ignore this email and you won't hear from us again.
[Business name], [street address, city]Enough to send only to confirmed people and to show when and how each one agreed.
create table subscribers (
email text primary key,
status text not null default 'pending', -- pending | confirmed | unsubscribed
token text not null, -- random, single use
consent_text text not null, -- exact words shown on the form
source text, -- which form or page
signed_up_at timestamptz not null default now(),
confirmed_at timestamptz,
unsubscribed_at timestamptz
);
UK GDPR says it must be as easy to withdraw consent as to give it. In practice that means a working unsubscribe link in every email and no login standing in the way.
Record withdrawals too. A do-not-contact list stops a later import from adding someone who already left.
Most newsletter services have a confirmed or double opt-in setting per list or form. Turn it on there instead of building it, and edit the confirmation email text so it sounds like your business.
If you collect signups on your own site and send them to the email service by connection, check the setting applies to that source as well.
Not in the places covered here. The FTC says CAN-SPAM does not require prior consent at all, and the UK ICO's email marketing guidance accepts a ticked opt-in box. Some other countries and some email services have stricter rules, so check yours.
The ICO lists who consented, when they consented, what they were told (the exact wording and privacy notice version) and how they consented, such as the form data and a timestamp.
Not where UK GDPR applies. The ICO says you cannot rely on pre-ticked boxes, silence or default settings as consent.
Do not mail them. Send the confirmation once, perhaps one reminder, and then delete the pending record so you are not holding data you have no use for.
It removes the addresses that cause hard bounces and the people most likely to report spam, which are two things inbox providers watch. It cannot fix bad content or missing authentication.
Related: How to create an email newsletter, Welcome email templates, One-click unsubscribe, Hard bounce vs soft bounce, How to add a contact form.
Start for free or see all free tools. We.Inc is free to start, with no card needed. AI building is on paid plans from $20 a month.
We.Inc is an AI-powered website builder you can resell under your own brand. Launch a branded client dashboard, bill on Stripe Connect, and deliver AI-generated websites in minutes. White-label plans start at $99 a month for 25 client sites, with a 7-day free trial and no per-site fees.