WordPress

“WordPress successfully passed the notification email to the sending server”: what it means

Gravity Forms adds this note when WordPress hands your email to the server. It does not mean the email arrived. Why it goes missing and how to fix it.

October 29, 2026 · 9 min read

Want it fixed today? Free for 5,000 emails a month. No card.

You open a Gravity Forms entry and the note says: “WordPress successfully passed the notification email to the sending server.” It means exactly that and nothing more. Gravity Forms gave the email to WordPress, and WordPress gave it to your server’s mail system without an error. It does not mean the email was delivered. If the email never arrived, the cause is after this point. The form setting that can still be at fault is the address (Send To, or a From Email that does not suit the server), because a wrong address is passed on without complaint too.

For every reason WordPress email goes missing, not only this note, see Why wp_mail() stops working (and the 6-step fix that actually holds).

Where this message comes from

It is a Gravity Forms entry note. Since version 2.4.15, Gravity Forms adds a note to each new entry that records the result of every notification it tried to send. To see it, open Forms → Entries, click the entry and scroll to the Notes box. Entries created before you updated to 2.4.15 have no such note.

If you use another form plugin and see a similar message, the explanation below still applies. The plugin handed the email to WordPress and is telling you nothing about delivery. For the Gravity Forms settings that can stop a notification from being sent at all, see Gravity Forms notifications not sending.

What the message means, and what it does not

Gravity Forms does not send email itself. It calls WordPress’s wp_mail() function. Unless you have changed it, WordPress sends through PHP’s mail() function, which passes the message to a mail program on the web server.

PHP’s own manual describes what mail() returns: true means the message was accepted for delivery, and it warns that this does not mean the mail will reach its destination. wp_mail() reports that same answer to Gravity Forms, and Gravity Forms writes it on the entry.

After that hand-off the message still has to leave your server, reach the recipient’s mail server, pass its checks and get past its spam filter. The note says nothing about any of those steps.

1 Visitor submits the form CAN FAIL HERE Blocked by a cache or security plugin 2 Form plugin builds the email CAN FAIL HERE Wrong “Send to” or a bad mail tag 3 WordPress wp_mail() CAN FAIL HERE PHP mail() disabled or rate-limited 4 Sending server delivers it CAN FAIL HERE No SPF / DKIM, so it is rejected 5 Your inbox receives it CAN FAIL HERE Spam folder, quarantine or a mail filter
The “Thank you” message only proves step 1 worked. The email can still fail at any of the next four.

The note only tells you that stages 2 and 3 reported no error. It does not prove they did their job: a wrong Send To address passes stage 2 without complaint, and a host that limits PHP mail can accept the email at stage 3 and drop it later. Stages 4 and 5 are not covered at all. Logging plugins have the same limit: WP Mail Logging, for example, says on its plugin page that it does not track delivery after WordPress hands the email to the host.

Why the email still does not arrive

The host’s mail system drops or holds it

The mail program on a shared or cloud server often has limits. Some hosts disable PHP mail, cap how many emails you can send per hour, or block outgoing port 25. The message is accepted locally, so WordPress sees success, and then it waits in a queue or is discarded. Nothing is reported back to WordPress.

The email is not authenticated for your domain

Mail sent from a web server usually carries no DKIM signature for your domain, and the server’s IP address is not in your SPF record. Google requires every sender to Gmail accounts to authenticate with SPF or DKIM, and says unauthenticated mail may be marked as spam or rejected, for example with the error 550-5.7.26. Other providers apply their own rules. The three records are explained in SPF vs DKIM vs DMARC.

The From address belongs to a domain the server cannot send for

If WordPress is not given a From address, it uses wordpress@ followed by your site’s domain, which your server may not be allowed to send for. A bigger risk is a notification whose From Email is the visitor’s address, or an address at gmail.com or yahoo.com. Gravity Forms’ own guide warns that strict policies at Yahoo, AOL and Gmail can reject or filter mail that claims to come from them but was sent by your server. It also advises against using the same address in From and To. Use an address on your own domain and put the visitor in Reply To. The reason is covered in why a form must not send from the visitor’s email.

It went to spam or quarantine

The email was accepted, then filtered. Check the Spam or Junk folder first. On business mailboxes, also ask the mail administrator to check the quarantine, because filtered mail may not appear in the user’s own Spam folder. Provider-specific causes are in emails not reaching Gmail or Google Workspace and emails not reaching Outlook or Microsoft 365.

The recipient’s server rejected it

The address may have a typo, the mailbox may be full, or the server may refuse your server’s IP address. This produces a bounce. Where the bounce goes depends on how the server sets the return address, and on a shared host it often goes somewhere you never look. The numeric codes are explained in email bounce codes.

How to find out what happened

1. Send the notification again, to several addresses

In Forms → Entries, tick the entry, choose Resend Notifications in the bulk actions menu and click Apply. Pick the notification. In the optional Send To field, enter other addresses, separated by commas. Use one Gmail address, one Outlook or Microsoft 365 address and one address on your own domain. Where the email arrives, and where it does not, narrows down the cause.

What your test showsMost likely causeNext
Arrives in the inbox at your test addresses, but not at the real recipientSomething on that mailbox: a wrong address, a mail rule, forwarding, or an admin quarantine.Check that mailbox and the Send To value.
Arrives in spam, and the header shows spf or dkim is not “pass”The email is not authenticated for your domain, or the From address is wrong.Fix it, steps 2 and 3.
Arrives at one provider but not anotherThat provider is stricter, usually about authentication.Fix it, steps 2 and 3, then the Gmail and Outlook guides.
Arrives nowhere, and no bounce comes backThe host’s mail system queued or dropped it.Read the host’s mail log, then Fix it, step 1.
Arrives nowhere, and a bounce or log line gives a reasonThe recipient’s server refused it.Look up the code in the bounce guide.
A password reset email is also missingWordPress sending is broken for the whole site.Fix it, step 1.

2. Test a different WordPress email

Request a password reset for a test user. If that email is also missing, the problem is WordPress sending as a whole and not this form. This points straight at Fix it, step 1.

3. Read a log that shows delivery

WordPress does not keep an email log by default. You have three places to look:

  • Your SMTP service’s log, if you use one. It shows the final status of each email, including bounces that happen later.
  • Your host’s mail log. On a cPanel host, open Email → Track Delivery. It lists recent messages with a result such as success, deferred or failed. Your host must have the feature switched on, and it keeps data only for the number of days the host sets. On other hosts, ask support for the mail log and give them the recipient address, the From address and the time of your test.
  • A WordPress logging plugin such as WP Mail Logging. It records each email WordPress sends and any error, which tells you the email was attempted. It cannot tell you what happened afterwards.

4. Read the headers of an email that did arrive

In Gmail, open the received email, click More and then Show original. Find the Authentication-Results line. It lists spf, dkim and dmarc with a result for each. If dkim is none or spf is not pass for your own domain, the email is not authenticated and you need Fix it, steps 2 and 3.

Fix it

1. Send through authenticated SMTP, not PHP mail

Install an SMTP plugin, or your mail provider’s plugin, and enter the settings it gives you: the SMTP host, port 587 with STARTTLS or 465 with SSL/TLS, and a username and password. Use one of those two ports, not port 25. Hosts that block outgoing SMTP often allow one of the two ports above, so try the other if one times out. If the plugin shows an error, see WP Mail SMTP not working? Common errors and how to fix them. The general settings are also in our SMTP documentation.

2. Use a From address on your own domain

Open the form, go to Settings → Notifications and edit the notification. Set From Email to an address such as [email protected]. Put the visitor’s Email field in Reply To, so pressing Reply still reaches them. Make sure Send To is a different address from From Email.

3. Add the DNS records for your sending domain

Your mail provider gives you the records to add where your domain’s DNS is managed, which is your registrar, Cloudflare or your host. The usual set is:

  • DKIM: a TXT record (or CNAME, if your provider uses one) that lets receivers verify the signature on your mail.
  • SPF: one TXT record starting v=spf1 that lists who may send for your domain. A domain must have only one SPF record, so add your provider to the existing one instead of creating a second. Some providers do not need a change to your main domain’s SPF record. Follow theirs.
  • DMARC: a TXT record at _dmarc.yourdomain.com, for example v=DMARC1; p=none; rua=mailto:[email protected]. Start with p=none, which only reports.

Do not delete the records for the service that hosts your normal mailboxes, such as Google Workspace or Microsoft 365. Wait for the provider to show the records as verified before you test. A worked example is in Domains and DNS.

4. Resend and compare

Resend the notification to the same three test addresses you used in step 1 of “How to find out what happened”. If one of them still fails, go back to that section’s table.

Do not read the Gravity Forms note as proof that the fix worked. It will say “passed to the sending server” before and after the fix. Judge the result by the email arriving in the inbox and by a delivery log.

SecureSMTP for WordPress helps with steps 1 and 3. The WordPress plugin connects your site in a few minutes and routes wp_mail() and form emails through SecureSMTP. SMTP on ports 587 and 465 and a REST API work too. Mail is sent from your own domain with DKIM signing. You verify the domain by adding DNS records, and until then you can send up to 10 test emails a day to your own address. Every email appears in the email log with its delivery status, and bounces and complaints go on a suppression list. The Free plan includes 5,000 emails a month, 1 site and 1 sending domain, and paid plans start at $7 a month.

Confirm it works

  1. Resend the notification to your Gmail, Outlook and own-domain test addresses. All three should show it in the inbox, not in spam.
  2. In Gmail, use More → Show original and check that spf, dkim and dmarc all say pass for your domain.
  3. Open your SMTP service’s log, or the email log in your SecureSMTP dashboard, and check each test email is marked delivered.
  4. Submit the live form once as a visitor, from a different device, and confirm the real recipient gets it.

The other sending-result notes

The success note is one of several. The wording below comes from the Gravity Forms documentation, and each note appears on the entry in the same Notes box.

Note on the entryWhat it meansWhat to do
WordPress successfully passed the notification email to the sending serverWordPress handed the email to the mail system without an error.Look after this point. The rest of this guide.
WordPress was unable to send the notification emailWordPress’s mail function reported a failure. No reason is given: Gravity Forms says the cause is unknown and the server gave no details.Fix how WordPress sends email (Fix it, step 1).
Could not instantiate mail functionPHP’s mail function failed. The server is not set up to send mail, or has switched it off.Send through SMTP (Fix it, step 1) or ask your host.
SMTP Error: connect() failedWordPress could not reach the SMTP server.Check host and port. The web host may block outgoing connections on that port.
SMTP Error: Could not authenticateThe SMTP server refused the login.Check username, password, port and encryption.
SMTP Error: Data not acceptedThe SMTP server refused the message itself.Often the From address is not one the login may send from. Match them.

If an entry has no note at all, turn on logging at Forms → Settings → Logging, submit a test entry and read the log. Turn logging off afterwards. Gravity Forms warns that logs can hold personal data, and turning logging off deletes the log files.

Frequently asked questions

Does this note mean the email was delivered?

No. It means WordPress handed the email to the server’s mail system and no error came back. Whether the email reached the inbox depends on what happens next: the host’s mail queue, the recipient’s server, and its spam filter.

Is this a Gravity Forms bug?

No. Gravity Forms builds the email and gives it to WordPress. Its own documentation says that when this note shows, only your server administrator can investigate further. The fix is in how your site sends email, not in the form.

Why do my older entries have no note?

Gravity Forms added these sending-result notes in version 2.4.15, and only for entries created with that version or newer. Entries from before the update do not get one.

Does an SMTP plugin change what the note means?

Slightly. With SMTP, “passed to the sending server” means your SMTP service accepted the message. That is a stronger signal than PHP mail, but the email can still bounce or be filtered afterwards. Use the SMTP service’s log to see the final result.

Can I change the wording of the note?

Developers can, with the gform_notification_note filter that Gravity Forms added in version 2.4.15. It changes the text or turns the note off. It does not check delivery, so a different wording proves nothing more.

The email arrives in Gmail but not in Outlook. Why?

Each provider applies its own rules. Mail without SPF or DKIM for your domain, or sent from an address the server cannot send for, is the usual reason one provider accepts it and another does not. Fix the authentication first, then check each provider’s spam or quarantine.

Related reading

Send WordPress email from your own domain with SecureSMTP →

Fix email delivery on your site

SecureSMTP sends WordPress, Shopify and app email through an authenticated mail service, DKIM-signed for your own domain, and shows the result of every email.

or sign up with email

Free plan: 5,000 emails a month. No card needed. Setup takes a few minutes, plus DNS time for your sending domain.