Transactional vs cold email: what's the difference?
Password resets and prospecting emails follow different laws and different inbox rules, and they carry different risk. Here is how to tell them apart and where each one should be sent from.
Direct answer. Transactional email completes or confirms something the recipient started: a password reset, a receipt, a sign-in code. Cold email is a commercial message to someone who has not asked to hear from you, so US law requires it to carry an opt-out and a postal address. The two follow different rules and carry different risks, so send them from different places: transactional mail from the domain your product depends on, cold email from separate domains whose reputation can take a hit without locking customers out.
Key takeaways
- The test is the message's main purpose, not who receives it. A receipt with a sales pitch at the top can stop being transactional.
- Cold email is commercial email. In the US it needs a working opt-out, honored within 10 business days, and your postal address.
- Inbox providers grade them differently. One-click unsubscribe is required for marketing mail and not for transactional mail, but the spam-rate ceiling applies to everything you send.
- Keep them apart. Reputation is tracked per domain and sending address, so complaints about outreach can slow down your password resets if both share a domain.
- Use the right system for each: a transactional email API for mail people expect, and a paced outreach tool on warmed secondary domains for cold email.
What counts as transactional email
The US rules for commercial email turn on a message's "primary purpose". The FTC's compliance guide treats a message as transactional or relationship content when it completes or confirms a transaction the recipient already agreed to, or delivers things like warranty and security information, account changes or balance notices. Mail like that is exempt from most of the law's requirements, although it still must not use false or misleading routing information.
Two details catch people out:
- The categories are narrow. The guide says the law "views these categories narrowly", so a message to an existing customer is not transactional just because they are a customer.
- Mixed messages are judged by what comes first. If the subject line reads as promotional, or the transactional part does not appear mainly at the beginning, the message is treated as commercial.
What makes an email cold
Cold email is commercial email sent to someone who has not asked for it: prospecting, introductions, follow-ups to a lead. The same FTC guide covers "all commercial messages" and "makes no exception for business-to-business email". For commercial mail, the basics are:
- a clear way to opt out, honored within 10 business days;
- your valid physical postal address;
- honest From, subject and routing details.
Other countries set their own rules, and they differ on consent. Before you start, read is cold email legal for the country-by-country picture.
What Gmail and Yahoo expect from each
Inbox providers care less about the legal category and more about how recipients react. Their published requirements still draw a line between the two:
- Spam rate applies to everything. Gmail's sender guidelines ask senders to keep the spam rate in Postmaster Tools below 0.10% and never reach 0.30%. Yahoo's best practices set the same 0.3% line.
- One-click unsubscribe is for marketing mail. Gmail requires it on marketing and subscribed messages, and its sender FAQ says "transactional messages are excluded from this requirement". Yahoo asks senders to honor unsubscribes within 2 days.
- Don't blend them. Gmail's guidelines say not to mix different types of content in one message, for example promotions inside sales receipts.
- Separate by type. Yahoo advises segregating email types by IP or DKIM domain, because each one builds its own reputation.
- Bulk status follows the main domain. Gmail counts mail sent from subdomains toward the primary domain when it decides whether you send 5,000 or more messages a day.
Side by side
| Transactional email | Cold email | |
|---|---|---|
| Purpose | Complete or confirm something the recipient started | Start a conversation or make an offer |
| Who triggers it | The recipient's action, or your app or agent reacting to it | The sender |
| Opt-out rules (US) | Exempt from most requirements; no one-click unsubscribe required by Gmail | Opt-out and postal address required; honor opt-outs within 10 business days |
| Volume pattern | Follows what your users do, at any hour | Planned, paced, small numbers per mailbox each day |
| Sending domain | Your primary domain or a notification subdomain of it | Separate secondary domains |
| Infrastructure | A transactional email API | Your own warmed mailboxes and a scheduler that paces sends |
| If you mix them | Complaints about outreach can delay resets and receipts | Your outreach and your product share one reputation |
Why one domain should not carry both
Gmail says it tracks volume, feedback and limits per domain and IP address. Cold email draws more complaints than mail people are waiting for, however careful you are. When both kinds leave from the same domain, a rough week of outreach lands on the same reputation your sign-in codes depend on, and it can surface first as a customer who cannot log in.
The usual setup is simple:
- Transactional: your primary domain, or a notification subdomain of it, sending through a transactional email API with SPF, DKIM and DMARC in place.
- Cold: one or more separate domains, each with its own warmed mailboxes. Here is how many secondary domains you need.
A subdomain on its own is not a full wall: Gmail still counts its volume toward your main domain. That is one more reason to keep cold email on domains of its own. If your transactional domain is new or has taken a hit, warming up a transactional domain covers how to bring it up gradually.
Where each kind of email should go
Transactional mail: a transactional email API
Mail your product sends because a person did something belongs on a sending API built for it. AgentiSend is one: it is built for email people are expecting, such as receipts, alerts, resets and invoices, and cold email is not a supported use. Its deliverability guide publishes the rates that trigger action (a warning at 2% bounces or 0.05% complaints, an automatic pause at 4% or 0.08%) and asks senders to raise volume gradually on a new domain. That matters more now that agents trigger app mail: the guard belongs below the agent, as covered in how to stop an AI agent sending the same email in a loop.
Cold email: paced outreach from warmed mailboxes
Cold email should leave from your own mailboxes on your secondary domains, at a pace those mailboxes can carry. In WarmySender:
- campaigns send from mailboxes you connect, and warmup builds each one up gradually, raising its volume every two days toward its target;
- each mailbox has its own daily limit (50 by default), and a new sending domain starts with a combined ceiling of 200 emails a day until it has aged, sent enough mail and stayed free of complaints;
- a campaign pauses itself if its bounce rate goes above 5%;
- every campaign email carries an opt-out line and a one-click unsubscribe header, plus your postal address once you add it in settings.
AI agents can run all of it. Claude, ChatGPT, Cursor, Codex, OpenClaw, Hermes Agent and any agent that speaks MCP can build, launch and manage cold email campaigns in plain language, but the agent never sends a message directly and can never raise a limit; the scheduler paces every send. Here is what your AI agent can and cannot do with cold email, and why what actually burns domains is pacing, not the agent.
A quick way to sort any email
- Did the recipient's own action cause it? A reset they requested, an order they placed: transactional.
- Is its main job to promote something? Then it is commercial, even if it goes to a customer.
- Would the recipient be surprised to get it? If yes, treat it as cold and send it from your outreach domains.
- Is there a promotion at the top of a receipt? Move it down or out, or the receipt stops being transactional.
Frequently asked questions
Is a welcome email transactional?
Usually, when it confirms an account the person just created and its main content is about that account. If the subject line or the opening is a promotion, the primary-purpose test can make it commercial, and then it needs an opt-out.
Do transactional emails need an unsubscribe link?
Under the US rules, transactional messages are exempt from most requirements, and Gmail excludes them from its one-click unsubscribe rule. Keep them free of promotions; once a message is mainly promotional, the commercial rules apply.
Does a subdomain keep cold email separate?
Only partly. Gmail counts mail from subdomains toward the primary domain when it decides whether you are a bulk sender. For cold email, separate domains keep outreach away from the domain your product mail depends on.
Do transactional domains need warmup?
A new domain has no history, so raise volume gradually instead of starting at full volume. The same applies after a domain has had a reputation problem.
Can one AI agent handle both kinds of email?
Yes, as long as each kind goes through its own system. Outreach goes through an outreach tool where the agent builds campaigns and the scheduler sends; app mail goes through a transactional email API with a guard that refuses repeats and keeps budgets the agent cannot raise.
Can I send cold email from my main domain?
You can, but complaints from outreach then land on the domain your receipts and sign-in codes use. Most teams keep cold email on separate domains for exactly that reason.
This article explains how the rules and inbox requirements differ; it is not legal advice.