// how to fix
SendGrid 403 "from address does not match a verified Sender Identity"
SendGrid rejects mail with 403 when the From address is not a verified sender or authenticated domain. Find the real From address and verify it properly.
What it means
Twilio SendGrid only lets you send from addresses you have verified. Your message used a From address that is neither a verified Single Sender nor part of an authenticated domain, so the Mail Send API answered with HTTP 403. The body usually looks like this:
{
"errors": [{
"message": "The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved. Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements",
"field": "from",
"help": null
}]
}Over SMTP (smtp.sendgrid.net), the same text comes back as a 550 error. Nothing was sent.
Why it happens
- No sender identity yet. New accounts must verify a Single Sender or authenticate a domain before sending.
- The Single Sender is not confirmed. SendGrid sent a verification email to that address and nobody clicked the link.
- Your code sends from another address. A Single Sender covers one exact address. If you verified
hello@yourdomain.combut the app sends fromnoreply@yourdomain.com, it fails. - A plugin overrides the From. WordPress, WooCommerce or a form plugin may send from
wordpress@yourdomain.comor from the visitor's address. See contact form emails sent "From" the visitor's address. - Subdomain mismatch. An authenticated domain covers the domain you authenticated. Check that the From domain is exactly the one listed (or a subdomain covered by it).
- Wrong account or subuser. Sender identities belong to the account or subuser that created them; an API key from another subuser does not see them.
A 403 can also come from an API key without the Mail Send permission; in that case the message is different (it talks about permissions or authorization, not Sender Identity).
How to check
- Log the exact From address in the request (the
from.emailfield in the API JSON, or theMAIL FROMand From header over SMTP). - In the SendGrid console, go to Settings > Sender Authentication. Look at the Single Sender list (is the address there and verified?) and the Domain Authentication list (is the domain there and verified?).
- Confirm the API key belongs to the same account or subuser.
How to fix it
Option 1: verify a Single Sender (quick, for testing)
In Settings > Sender Authentication, choose to verify a single sender, enter the exact From address your code uses, then click the link in the email SendGrid sends to it. The mailbox must exist. SendGrid itself presents this as a testing option, not the best choice for production: the mail is not signed with your own domain.
Option 2: authenticate your domain (recommended)
Domain Authentication adds CNAME records to your DNS so SendGrid signs your mail with DKIM for your domain. After that, any address at the domain can be used as From, and DMARC can pass. If the records do not verify, read SendGrid domain authentication CNAME not verifying.
Fix the application
- Use one From address from your configuration everywhere. Example with the Node.js library:
await sgMail.send({ to: 'customer@example.com', from: { email: 'hello@yourdomain.com', name: 'Your Shop' }, replyTo: 'support@yourdomain.com', subject: 'Your order', text: 'Thank you for your order.' }); - In WordPress SMTP plugins, set the From address and enable the option that forces it, so other plugins cannot override it.
- Never use a Gmail, Outlook or Yahoo address as From through SendGrid. You cannot authenticate those domains, and their DMARC policies cause rejections or spam placement.
Check that it is fixed
Send a message through your application to the unique address on the Delivmail home page. If SendGrid accepts it, the report appears. With Domain Authentication, DKIM should pass for yourdomain.com and DMARC should pass. With only a Single Sender, expect DKIM to be signed by SendGrid's domain instead, which is a reason to move to domain authentication. Then resend the message that failed. For general website sending problems, see emails from your website or WordPress go to spam.
Check that it is fixed
DNS changes can take from a few minutes to a few hours. Then send a new test email or scan your domain again.
Related guides
- No DKIM signature on your emailsDKIM adds a digital signature that proves an email really comes from your domain. Turn it on in your email provider and publish its key in DNS.
- DKIM signature fails (invalid signature or body hash)Your email is signed, but the signature does not check out. Usually the DNS key is wrong, or something changed the email after it was signed.
- DMARC fails: SPF and DKIM do not match your domainSPF or DKIM can pass and DMARC still fail, because they passed for another domain. Make at least one of them use the same domain as your From address.
- Emails from your website or WordPress go to spamContact forms, order confirmations and password resets sent by your website often land in spam. Send them through authenticated SMTP or a transactional email service.
- Someone sends fake emails with your domain (spoofing)Scammers can send emails that look like they come from your domain. A DMARC policy at reject tells receivers to refuse them. Monitor first, then enforce.