WordPress emails fail through SendGrid when the From address is unverified, the API key lacks Mail Send scope, or the host blocks SMTP ports. Fixes inside.
Updated Jul 1, 2026
The short answer
"SendGrid WordPress email wasn't sent" means WordPress (via WP Mail SMTP) handed your message to SendGrid, but SendGrid rejected or never accepted it. Common causes are an unverified From address (403 "does not match a verified Sender Identity"), an API key missing the Mail Send scope (401/403), or, with a generic SMTP mailer pointed at smtp.sendgrid.net, the host blocking outbound SMTP ports. Fix it by verifying your sender or domain, using an API key with Mail Send access, and matching the From address.
"SendGrid WordPress email wasn't sent" is a generic failure notice (typically surfaced by the WP Mail SMTP plugin or SendGrid's WordPress integration) meaning WordPress attempted to deliver a message through SendGrid and SendGrid did not accept it. It is not a single SMTP reply code — it's a wrapper around whatever SendGrid actually returned. The real diagnostic value is in the underlying SendGrid response, so the first step is always to read the exact error.
In WP Mail SMTP → Tools → Email Test, send a test email. If it fails, the plugin surfaces the underlying API response (often a JSON errors array from SendGrid). That message — not the headline "wasn't sent" — tells you which cause below applies. You can also check SendGrid → Activity Feed to see whether the request reached SendGrid at all.
1. The From address isn't a verified Sender Identity (most common). SendGrid rejects mail whose From is not a verified single sender or an authenticated domain, returning HTTP 403 with: "The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved." This is the single most frequent cause.
2. The API key lacks Mail Send permission, or is wrong/revoked. A key without Mail Send scope, or a malformed/deleted key, yields HTTP 401 Unauthorized or 403 Forbidden.
3. From address mismatch. Your verified sender is news@example.com but WordPress (or another plugin/theme) sets a different From, re-triggering the 403 above.
4. A generic SMTP mailer is being blocked at the port level. WP Mail SMTP's dedicated SendGrid mailer sends over the SendGrid Web API (HTTPS, port 443), so port blocking does not apply to it. But if you instead configured the generic "Other SMTP" mailer pointed at smtp.sendgrid.net, some hosts (certain Amazon EC2/Lightsail and shared environments) block outbound SMTP ports 587 and 465, so the connection never completes.
Verify your sender. In SendGrid → Settings → Sender Authentication, either:
Use a correctly scoped API key. In SendGrid → Settings → API Keys, create a key with Mail Send → Full Access (Restricted Access is fine as long as Mail Send is granted). Paste it into the API Key field under WP Mail SMTP → Settings → SendGrid. (Note: even though SendGrid's dashboard walks you through an "SMTP Relay" screen to create the key, WP Mail SMTP's SendGrid mailer uses the resulting key with the Web API, not SMTP.) If you instead use the generic "Other SMTP" mailer, the username is the literal string apikey and the password is the key value.
Make the From address match. Set WP Mail SMTP → From Email to your verified sender / authenticated domain, and enable "Force From Email" so plugins/themes can't override it.
If you are on the generic SMTP mailer and the host blocks ports, switch to WP Mail SMTP's dedicated SendGrid mailer, which sends via the Web API over HTTPS (port 443) and sidesteps blocked ports 587/465 entirely.
After applying the relevant fix, re-run Email Test to confirm.
SendGrid 403 example:{"errors":[{"message":"The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved.","field":"from","help":null}]}
Note: the standard PHP mail() problems (host disabling mail(), localhost) are reasons to adopt an SMTP/API mailer like SendGrid in the first place — but once SendGrid is configured, a "wasn't sent" error is almost always an authentication, sender-verification, or (for generic SMTP setups) a port issue on the SendGrid side, not PHP.
References
SendGrid: Troubleshooting 'The from address does not match a verified Sender Identity' Error
DOCSWP Mail SMTP: How to Set Up the SendGrid Mailer
DOCSSendGrid Docs: Integrating with the SMTP API (smtp.sendgrid.net, apikey username, ports 587/465)
DOCSSendGrid Docs: Sender Identity / Domain Authentication
FAQ
It's a generic failure message (usually from WP Mail SMTP or the SendGrid WordPress plugin) meaning WordPress handed the message to SendGrid but SendGrid did not accept it. It is not an SMTP reply code — open the plugin's email test log or SendGrid's Activity Feed to see the real underlying error, most often a 403 sender-verification rejection.
In SendGrid → Settings → Sender Authentication, authenticate your domain (add the SPF/DKIM DNS records) or verify a single sender, then set WP Mail SMTP's From Email to exactly that verified address/domain. SendGrid returns HTTP 403 for this until the From matches a verified identity.
Yes. The API key must include Mail Send permission (Full Access). A key without Mail Send scope, or a revoked/mistyped key, causes a 401 or 403 and the email won't send. For SMTP relay, use the literal username "apikey" with the key as the password.
One API, every provider
Courier connects to your email, SMS, and push providers, handles retries and failover, and surfaces delivery errors in plain language.
Last reviewed Jul 1, 2026. Courier is not affiliated with third-party providers; error behavior may vary by implementation.
© 2026 Courier. All rights reserved.