Why Are Website Forms Not Sending Email?

Website forms usually stop sending email because the form can submit data correctly, but the message is blocked, misrouted, or rejected before it reaches the mailbox. In a hosting environment, the issue is often related to SMTP authentication, DNS records, server-side mail restrictions, spam filtering, or a form plugin that is not configured to use a proper mail service. If you are using a hosted website on a control panel such as Plesk, checking the mail logs and outbound mail settings is often the fastest way to narrow down the problem.

In this guide, you will learn how to identify where the delivery chain breaks, how to test your form, and what to check in your hosting account, DNS zone, and application settings to restore reliable email delivery.

Why website forms can submit successfully but no email arrives

A contact form does not send email in the same way as a normal mailbox. Most forms collect the submitted data and then try to hand it over to the server’s mail system or to an external SMTP service. If any part of that process fails, the user sees a successful form submission, but the recipient receives nothing.

The most common causes are:

  • The form uses the PHP mail() function, which is often unreliable on shared hosting or blocked by server policy.
  • The sender address does not match the domain or is not allowed to send mail from the server.
  • DNS records such as SPF, DKIM, or DMARC are missing or incorrect.
  • The message is being marked as spam, rejected, or deferred by the recipient mail server.
  • SMTP credentials are wrong, expired, or the mailbox has reached a limit.
  • A security plugin, firewall, or application setting is blocking outgoing mail.
  • The hosting platform has outbound mail restrictions to protect server reputation.

Check whether the form is actually sending mail

Before changing settings, confirm whether the issue is with the form, the server, or the mailbox. This saves time and prevents unnecessary troubleshooting.

Test the form with a different recipient

Send a form submission to a second email address, ideally on a different provider. If the message arrives there but not in your main mailbox, the issue may be related to spam filtering or mailbox rules.

Check spam, junk, and filtered folders

Messages from website forms often land in spam if the sender identity is weak or the server is not properly authenticated. Review:

  • Spam or junk folder
  • Quarantine or security filtering
  • Mailbox rules and forwarding rules
  • Provider-level message filtering

Confirm whether other mail works

Test sending a normal email from the same mailbox. If regular mail works but form mail does not, the problem is probably with how the form submits mail, not with the mailbox itself.

Use SMTP instead of the default mail function

In most hosting environments, SMTP is the most reliable way to send form notifications. Many CMS platforms and plugins can be configured to authenticate against your mailbox or an external mail service. This gives the message a proper sending identity and improves deliverability.

Why SMTP is better:

  • It authenticates the sender.
  • It uses a defined mail server instead of server-side defaults.
  • It usually works better with spam filters.
  • It gives clearer error messages when delivery fails.

If your form plugin has an SMTP option, configure it with:

  • SMTP host
  • Port, usually 587 for TLS or 465 for SSL
  • Encryption method
  • Mailbox username
  • Password or app password
  • From address that matches your domain

For hosted websites in a managed hosting or Plesk environment, this is often the most stable setup for contact forms, order forms, and quote requests.

Check the sender address used by the form

One of the most common causes of missing form emails is a mismatch between the sender address and the domain. For example, if your form sends as [email protected] while the website is on your domain, many mail systems will reject or flag it.

Recommended practice:

  • Use an address on the same domain as the website, such as [email protected].
  • Use the same domain in the From field and the authenticated SMTP account when possible.
  • Set the customer’s email as Reply-To, not as the sender.

This is especially important when the contact form sends notifications to multiple recipients or forwards to shared mailboxes.

Review DNS records that affect email delivery

DNS settings strongly influence whether your form emails are accepted by the recipient’s mail server. Even if the form sends successfully, missing authentication records can cause the messages to be rejected or sent to spam.

SPF

SPF tells receiving servers which systems are allowed to send email for your domain. If your website sends mail through your hosting account or an SMTP provider, that service must be included in the SPF record.

Make sure the SPF record:

  • Exists for the domain
  • Includes the correct hosting mail server or SMTP provider
  • Does not contain too many lookups or conflicting records

DKIM

DKIM signs outgoing email so the receiving server can verify that the message was not altered and that it came from an authorized system. In Plesk or similar control panels, DKIM can often be enabled from the mail settings or DNS management section.

If DKIM is missing or invalid, email deliverability may drop significantly.

DMARC

DMARC tells receiving servers how to handle mail that fails SPF or DKIM checks. A strict DMARC policy can cause form messages to be rejected if the sender is not aligned properly.

If you recently added DMARC and your form mail stopped working, check whether the form is using an unauthenticated sender or a mismatched domain.

How to troubleshoot in Plesk or similar hosting control panels

If your hosting account uses Plesk, there are several useful places to check when website forms are not sending email.

Check the mail settings for the domain

Confirm that mail service is enabled for the domain and that the mailbox used by the form exists and is active. If the form is sending through a mailbox that was deleted or suspended, delivery will fail.

Review outgoing mail limits

Hosting platforms often apply limits to prevent abuse. If a form suddenly stops working after a burst of submissions, the account may have hit a sending threshold or temporary outbound restriction.

Inspect mail logs

Mail logs can show whether messages were accepted by the server, rejected by the recipient, or blocked by a policy. Look for entries related to:

  • Authentication failures
  • Relay denied errors
  • Invalid sender address
  • Spam policy rejections
  • Mailbox quota issues

Check if the server can send mail locally

Some forms use the hosting server’s own mail service. If the server mail component is disabled or not configured correctly, the form will not deliver messages. In that case, switching the form to SMTP usually solves the problem.

Common plugin and application issues

Content management systems and custom applications can break form delivery even when the hosting configuration is correct. The issue may be in the form code, plugin settings, or an outdated extension.

Wrong recipient address

Double-check the destination address inside the form settings. A typo, hidden space, or old mailbox can make it seem like the form is not working.

From address forced by the plugin

Some form plugins force the sender to use the same address as the website administrator or the account owner. If that address is not valid for sending or is not authorized by SPF/DKIM, delivery may fail.

Outdated plugin or CMS version

Older plugins may rely on outdated mail functions or incompatible libraries. Update the form plugin, CMS core, and any related mail add-ons before testing again.

Conflict with security extensions

Security plugins, firewall modules, or anti-spam tools may block the submission or strip form data before it reaches the mail handler. If the form stopped working after a security update, review recent changes carefully.

How to test email delivery properly

A structured test helps you find the exact failure point.

  1. Submit the form with a unique subject line.
  2. Use a recipient address you can monitor directly.
  3. Check the mailbox, spam folder, and logs.
  4. Send the same message through SMTP test tools if your plugin provides one.
  5. Compare a successful test with a failed one and note the differences.

If possible, enable logging in your form plugin so you can see whether the message was handed off to the mail system. This is especially useful when debugging in managed hosting environments where server access is limited.

Message delivered but not visible to the recipient

Sometimes the form email is sent, but the recipient never sees it in the inbox. In these cases, the message may be filtered, redirected, or rejected downstream.

Check the following:

  • Spam and quarantine folders
  • Mailbox rules that move or delete messages
  • Forwarding settings
  • Recipient server logs, if available
  • Blacklists or reputation issues for the sending domain

If you are sending to business email systems with strong filtering, make sure the domain has SPF, DKIM, and DMARC properly configured. Also use a recognizable sender name and a valid reply address.

What to do if the hosting server blocks the mail

Some hosting platforms restrict outgoing mail for security reasons or due to a reputation incident. If the server blocks the message, you may see a bounce or an error such as relay denied, sender verification failed, or message rejected by policy.

In that situation:

  • Switch the form to authenticated SMTP.
  • Use a mailbox created inside the hosting account or a trusted external SMTP service.
  • Verify that the domain’s DNS records match the sending method.
  • Ask support to review mail logs and outbound policy if the issue continues.

This is common on shared hosting and also on managed hosting platforms that monitor outbound traffic to protect email reputation across the infrastructure.

Recommended configuration for reliable form email

For the best results, set up your website form with the following approach:

  • Use SMTP authentication instead of mail().
  • Send from an address on the same domain as the website.
  • Set the user’s submitted email as Reply-To.
  • Enable SPF and DKIM for the domain.
  • Use a mailbox that is active and not over quota.
  • Keep the CMS, form plugin, and mail plugin updated.
  • Test after each change to isolate the problem.

If the website sends sensitive or high-value requests, such as quote forms or account alerts, consider using a dedicated transactional mail service rather than relying only on default server mail.

Step-by-step checklist

Use this checklist when a website form is not sending email:

  1. Confirm the form submits successfully on the website.
  2. Check spam, junk, and filtered folders.
  3. Verify the recipient address inside the form settings.
  4. Make sure the sender address uses your domain.
  5. Switch from mail() to SMTP if possible.
  6. Check SPF, DKIM, and DMARC records.
  7. Review mail logs in the hosting control panel.
  8. Test with a different mailbox provider.
  9. Update the CMS, plugin, and related extensions.
  10. Ask hosting support to check outbound mail restrictions if needed.

FAQ

Why do form submissions work but email does not arrive?

The form may be saving the submission correctly while the email delivery part fails. This usually happens because of SMTP misconfiguration, missing DNS authentication, server-side restrictions, or spam filtering.

Is PHP mail reliable for website forms?

Usually not. It can work in some environments, but SMTP is generally more reliable and provides better deliverability and error reporting.

Should the form use the visitor’s email as the sender?

No. The visitor’s email should normally be used as the Reply-To address, not the sender. The sender should be a domain address you control.

Can missing SPF or DKIM cause forms to fail?

Yes. Even when the server sends the message, missing authentication records can cause the receiving mail server to reject or filter it.

What should I check first in Plesk?

Start with the domain’s mail settings, mailbox status, and mail logs. Then confirm that the form is using SMTP and that the sender address matches the domain.

Why did form email stop working after a plugin update?

An update may have changed the mail method, sender identity, or compatibility with the CMS. Review the plugin settings, test SMTP, and check whether the update introduced a conflict.

When to contact support

Contact hosting support if you have already checked the form settings, SMTP credentials, DNS records, and spam folders but messages still do not arrive. Provide as much detail as possible, including:

  • The website URL
  • The form plugin or application name
  • The recipient address used for testing
  • The exact time of a failed submission
  • Any error message shown in the form or mail log
  • Whether SMTP or server mail is being used

This information helps support identify whether the problem is in the application, the mail server, the DNS setup, or an outbound policy on the hosting account.

Conclusion

When website forms are not sending email, the issue is usually not the form itself but the path between the form and the mailbox. In a hosting environment, the most reliable fix is to use authenticated SMTP, ensure the sender address matches your domain, and confirm that SPF, DKIM, and DMARC are configured correctly. If you are using Plesk or a similar control panel, mail logs and domain mail settings are the best places to start. With a structured check of the form, DNS, and hosting mail configuration, most delivery problems can be resolved quickly and permanently.

  • 0 Users Found This Useful
Was this answer helpful?