Most developers treat From and Reply-To as the same thing. They're not.
The difference matters for deliverability, user trust, and DMARC alignment. Get it wrong and your password resets land in spam—even with perfect SPF/DKIM setup.
From address should match your authenticated sending domain. The Reply-To can route to support or a team inbox.From vs Reply-To: What's the Difference?
These two headers serve different purposes but often get conflated:
- From: The sender identity shown in the inbox. This must align with your SPF/DKIM domain for DMARC to pass.
- Reply-To: Where replies actually go. This can be a different address, like a support inbox or personal email.
Inbox providers use the From address to check authentication. Users click "Reply" and it routes to the Reply-To.
5 Common Mistakes That Break Deliverability
1) Using no-reply@ as the From address
Many teams use no-reply@yourdomain.com as the From address. This looks robotic, reduces trust, and signals to spam filters that you don't want engagement.
Better approach: Use a real address like hello@yourdomain.com or team@yourdomain.com that accepts replies.
2) From domain doesn't match Reply-To domain
If your From is noreply@mail.yourdomain.com but your Reply-To is support@yourdomain.com, spam filters see this as inconsistent sender behavior.
Why it matters: Mismatched domains look like spoofing or forwarding—both are red flags for phishing detection.
yourdomain.com). Subdomains like mail.yourdomain.com are fine if both use the same subdomain.3) From address doesn't match DKIM signing domain
Your From address must align with the domain in your DKIM signature for DMARC to pass. If your ESP signs emails with mail.esp.com but your From is you@yourdomain.com, DMARC fails.
# Check DKIM alignment:
# From: hello@yourdomain.com
# DKIM d=yourdomain.com ✅ Aligned
# DKIM d=sendgrid.net ❌ Not aligned
# To fix: configure your ESP to sign with your domain4) Reply-To points to a personal Gmail/Outlook address
Setting Reply-To: founder@gmail.com while sending from hello@yourdomain.com looks suspicious. Spam filters see this as a potential business email compromise (BEC) pattern.
Better approach: Use an address on your sending domain, then forward it internally if needed:
// From and Reply-To both on your domain
const email = {
from: "hello@yourdomain.com",
replyTo: "support@yourdomain.com", // Forward this to Gmail internally
to: user.email,
subject: "Your password reset link",
};5) Not setting Reply-To at all
If you don't specify a Reply-To, replies go to the From address. If that's a system address like system@mail.yourdomain.com, users hit a dead end.
Fix: Always set an explicit Reply-To that routes to a monitored inbox.
Production Pattern: The Right Way
Here's a production-safe pattern for React Email + Resend (or any ESP):
import { Resend } from "resend";
import PasswordResetEmail from "@/emails/password-reset";
const resend = new Resend(process.env.RESEND_API_KEY);
export async function sendPasswordReset(
to: string,
resetUrl: string
) {
return resend.emails.send({
// From: authenticated domain, visible sender name
from: "YourApp <hello@yourdomain.com>",
// Reply-To: where replies actually go
replyTo: "support@yourdomain.com",
to,
subject: "Reset your password",
react: PasswordResetEmail({ resetUrl }),
});
}From field: "YourApp Support <hello@yourdomain.com>". This builds trust and improves open rates.How to Test DMARC Alignment
Before you go live, verify that your From address aligns with SPF and DKIM:
- Send a test email to yourself
- Open it in Gmail, click "Show original" (three dots menu)
- Look for these lines in the headers:
# SPF alignment
Received-SPF: pass
(yourdomain.com designates 1.2.3.4 as permitted sender)
# DKIM alignment
DKIM-Signature: d=yourdomain.com
# DMARC result
dmarc=pass
(p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=yourdomain.comIf you see dmarc=fail, your From domain doesn't match either SPF or DKIM. Fix that before sending production emails.
The UX Side: What Users See
Beyond deliverability, From and Reply-To affect trust and usability:
- From name: Should be recognizable. "YourApp" beats "Transactional Email Service."
- From address: Use your brand domain, not a generic ESP subdomain.
- Reply-To: Route to a real inbox. "Need help? Just reply" is powerful UX.
Reply-To to a support alias that auto-creates tickets. This turns replies into trackable conversations.Pre-Flight Checklist
Before you ship transactional emails, verify:
- ✅
Fromaddress is on your authenticated domain - ✅
Reply-Tois set explicitly - ✅ Both addresses use the same root domain
- ✅ DKIM signature domain matches
Fromdomain - ✅ SPF includes your ESP's servers
- ✅ DMARC policy is set to
p=quarantineorp=reject - ✅
Reply-Toroutes to a monitored inbox - ✅ No
no-reply@addresses in production
Miss any of these and you're adding friction to deliverability. Fix them once, ship confidently.
Next Steps
If you're setting up transactional email for the first time, start here:
- SPF, DKIM, DMARC: The Minimum Deliverability Setup
- React Email + Resend: Production Checklist
- Inbox Placement Red Flags: 8 Technical Patterns That Trigger Spam Filters
Bottom line: From is for authentication and inbox display. Reply-To is for routing responses. Keep them consistent, on your domain, and monitored. Your inbox placement will thank you.