All articles

Email deliverability for adult classifieds: why the verification code never arrives

10 min read

The failure nobody gets an alert for

A new user signs up, enters an email address, and waits for the six-digit code that lets them finish age verification. It does not arrive within the minute it should. Maybe it lands in the spam folder ten minutes later, long after the user has given up and closed the tab. Maybe the receiving mail server rejects it outright at the moment of sending, with a bounce message that scrolls past in a log nobody is watching. Either way, nothing about the experience tells the operator that anything went wrong. The signup funnel just shows one more visitor who filled in an email address and never came back, indistinguishable from someone who simply changed their mind.

That ambiguity is the actual problem, more than any single technical cause. Most sites monitor whether an email was sent, a green checkmark in a dashboard, not whether it was actually placed in front of a human being. Those are different events, and the gap between them is exactly where a deliverability problem hides for months. An operator who has never had a hosting outage or a payment processor freeze can still be losing a real share of new signups to a mail problem they have no way of noticing, because there is no incident, no support ticket, no dashboard turning red.

This is a different kind of vendor risk than the one that shuts down a hosting account with a notice citing a clause nobody reread since signing. A suspended host is loud: the site goes dark, and the operator finds out within minutes because customers say so and the dashboard says so too. A deliverability problem is quiet by design. The sending account stays open, the monthly bill keeps arriving, and the only visible symptom is a signup funnel that loses people at the last step for reasons that look, from the operator's side, like ordinary drop-off rather than a fixable technical fault.

The underlying cause is still the same kind of category-level friction that shows up with hosts, banks, and payment processors. Mailbox providers and email-sending services score this category as higher-risk than most, some explicitly and by name, and a new domain with no sending history starts every message with a disadvantage that has nothing to do with what the message actually says.

Why this category gets filtered harder than most

Spam filters and email-service providers do not treat every industry the same, and the differences are worth reading before signing up rather than after an account gets flagged. SendGrid's own published policy on prohibited content lists, as separate line items, "pornography or sexually explicit content" and, distinctly, "escort services, mail-order bride or spouse finders, international marriage brokers, and other similar services." That second category is not about what the email contains. It names the business itself as the reason for exclusion, meaning a plain-text verification code sent by an escort directory can fall outside the policy on category alone, regardless of how tame the message is.

Mailgun's acceptable use policy draws the line somewhere else entirely. Its prohibited-content section is scoped to material that constitutes or promotes child exploitation, bestiality, or non-consensual acts, without a separate clause naming adult businesses or escort services as a category. That is a materially narrower restriction than SendGrid's, aimed at what is illegal rather than at what industry is sending. Two large, mainstream providers, reachable through the same kind of signup form, draw the line in genuinely different places, and an operator who picks one without reading past the pricing page has no way of knowing which side of that line their account sits on until a review flags it.

This is the same due-diligence gap that leaves operators surprised by a hosting or CDN termination clause they never read, one layer further down the stack. The question to ask before choosing an email provider is not whether it technically allows sending mail for this kind of business in general. It is whether the provider's own written policy names the business category specifically, in writing, before the first verification code goes out, not after an abuse review finds it.

A new sending domain compounds this on top of whatever the provider allows. Filters weigh a domain's history and volume pattern heavily, and a domain that appeared recently and immediately started sending automated codes at volume looks, to a filter with no other signal, like the pattern of an account created for one narrow purpose and abandoned once flagged. That is not a judgment on the business; it is a pattern match that any brand-new domain triggers, adult classifieds or not, and it fades only with time and consistent sending behavior.

The technical floor every mailbox provider now enforces

Even a provider whose policy welcomes the account outright cannot make an email land in the inbox on its own. Since February 1, 2024, Google requires every sender pushing mail to Gmail addresses, regardless of volume, to meet a documented baseline: at minimum, SPF or DKIM configured correctly on the sending domain. SPF lists which servers are allowed to send on the domain's behalf; DKIM signs each message so the receiving server can confirm it was not altered in transit. Senders reaching 5,000 messages a day to Gmail addresses specifically face a higher bar: both SPF and DKIM together, plus DMARC published on the domain, at minimum in monitoring mode. A classifieds site sending age-verification codes, password resets, and payment receipts at any real scale crosses that 5,000-message threshold quickly, since every one of those counts toward it.

Google's own published guidance sets a hard number on top of authentication: senders of any size must keep the spam complaint rate reported through Google's Postmaster Tools below 0.30 percent, and the same guidance recommends staying under 0.10 percent as a working buffer rather than treating 0.30 percent as a safe target to sit near. Non-compliance shows up as two distinct, separately documented failure modes rather than one vague penalty. Mail that fails SPF, DKIM, or DMARC can be marked as spam or rejected outright with SMTP error 5.7.26. Senders who exceed the sending quota Google allows them run into a separate wall, a 4.7.28 rate-limit error. Neither of these announces itself as "this industry is not welcome here." Both look, from a developer's dashboard, like an ordinary technical fault, which is exactly why they tend to get noticed weeks later rather than fixed the day they start.

Yahoo, whose infrastructure also serves AOL addresses, publishes the same shape of requirement independently: both SPF and DKIM, a DMARC policy of at least p=none that must pass, and the same 0.30 percent spam-rate ceiling, in effect on the same timeline since February 2024. An operator who solves this for Gmail and assumes Yahoo and AOL will follow along is usually right about the mechanics, since the two providers converged on nearly identical numbers, but the two systems still track and enforce separately, so a domain in good standing with one is not automatically in good standing with the other.

One requirement in this set is written narrowly on purpose. One-click unsubscribe, using the List-Unsubscribe header, applies to marketing messages and subscribed messages specifically, in Google's own wording. A verification code or a payment receipt is neither of those, so it is not what that particular line is aimed at. The authentication and reputation requirements above it, SPF, DKIM, DMARC, and the spam-complaint ceiling, are not scoped that way: they apply to every message a domain sends, transactional included.

The mistake that drags the important mail down with it

The most common way an operator damages their own verification emails is sending marketing mail from the same domain that sends verification codes and payment receipts. Reputation is tracked mostly at the sending domain and subdomain level, which is why separating streams helps, but the isolation between subdomains is not absolute: a spike in complaints on one subdomain can still register at the parent domain, particularly if both streams share the same DKIM signing identity behind the scenes. A promotional email announcing a feature or a seasonal offer, sent to a list that has gone stale, produces exactly the kind of complaint spike that can push a shared domain's reputation down, and some of that damage reaches the verification code a brand-new user is waiting on right now, a message that has nothing to do with the marketing send that caused the problem.

This is also where the operational discipline built around age verification intersects with a purely technical mail-delivery problem in a way that is easy to miss. A verification flow that depends on a code reaching an inbox is only as reliable as the sending domain's reputation on the day that code goes out, and reputation is a resource shared across every message type using related infrastructure, unless the operator deliberately keeps them apart.

The fix is structural, not a setting to flip after a complaint spike already happened. Send transactional mail, verification codes, payment confirmations, password resets, from a dedicated subdomain used for nothing else, for example mail.example.com rather than the bare domain or a shared marketing subdomain, and sign it with its own DKIM key rather than one reused across every stream. Send marketing or newsletter content from a separate subdomain entirely, such as news.example.com, with its own authentication records and its own reputation that can absorb a bad complaint week without dragging the mail that has to arrive down with it. The two streams can run through the same provider account, but they need to look, and be signed, as distinctly different senders as far as the receiving mail server is concerned.

What to actually check this week

Start by pulling up the acceptable use policy of whatever service is currently sending the site's transactional email, and find, in writing, whether it names the business category specifically, the same way the earlier check on hosting and CDN agreements worked for infrastructure vendors. A provider whose policy already excludes the category by name is not a provider to build a verification flow on, no matter how reliable it has been so far, since an account review can end that reliability with no warning attached.

Check that SPF, DKIM, and DMARC are actually published and passing on the domain sending verification and receipt emails right now, rather than assumed to be correct because someone configured them once, years ago. A DNS record that was right when it was written can go stale after a provider migration, and a domain missing authentication starts every message with a real chance of rejection under the rules Google and Yahoo have enforced since February 2024, regardless of what the message says.

Split transactional and marketing mail onto separate subdomains with separate signing keys if they are not already separate, and treat this as infrastructure work rather than a marketing-team decision, since getting it wrong costs a failed identity check, not a missed sale.

Watch the actual complaint rate through the provider's own reporting or through Google's Postmaster Tools on a fixed schedule, and treat any approach toward 0.10 percent as the point to investigate, not 0.30 percent, since 0.30 percent is closer to the point where mail starts getting rejected than to where a problem begins. And periodically send a real test signup to a personal Gmail and a personal Yahoo address, and time how long the code takes to land and where it lands, because a dashboard reporting a successful send is reporting what left the server, not what a user actually saw.

Try the DEMO

Escort directory software, ready to go