If you’ve recently moved your website over to a Plesk-powered hosting environment, or have just built a new website there, a common problem that website owners may quickly come across is that their contact forms won’t work – for no immediately apparent reason.
Never fear though! The answer is a quick and simple fix, which we will outline for you below. But first, for those who may be interested, an explanation of the problem.
A Little Context
Most of the popular website CMS systems, including WordPress, are built to use your web hosting account’s built-in mail server as the default method for sending out website emails. Those emails may include any notifications your website might try to send you, such as new order notifications, new user notifications, password reset emails, or, perhaps most critically, contact form submissions (when a visitor or potential sales lead fills in a contact form on your website).
Missing out on any of the above emails can be catastrophic for a business, so it’s important to ensure your website’s emailing abilities are all in order.
In recent years, cPanel has dominated the hosting space, providing the most commonly used software for managing your hosting account. By default, cPanel’s built-in mail server capabilities (referred to as phpmail or phpmailer) work reasonably well straight out of the box (so long as it is enabled by your hosting provider). We say only ‘reasonably’, because using the default, built-in mail system certainly has its flaws, and can result in much less reliable mail delivery than dedicated mail server options (often referred to as SMTP services).
However, Plesk has started to see it’s own fair share of popularity, especially with hosting services that are designed/marketed/optimised specifically as “WordPress hosting”. Plesk’s built-in email functionality works a little differently to cPanel though and commonly won’t work straight out of the box.
The Plesk Problem
The reason for the problem is actually fairly simple. cPanel creates a default mailbox for every hosting account, which is the same address it uses to send phpmail from. The address is made up of the cPanel username, followed by the hosting server’s domain, for example [email protected]. When your website uses phpmailer on a cPanel server, the default from address is the same as the default, built-in email account. Because this email address exists, it, therefore, works without any need for intervention.
Plesk on the other hand, when using phpmailer, has a default from address of [email protected]. Plesk doesn’t usually create any default email account either. Because of those two factors, that from email address is highly unlikely to actually exist.
Because the from address doesn’t exist, the recipient server (of the email notifications) will reject those incoming emails on the basis that sender verification is failing, due to a non-existent address. (Phew! Are you still with us?)
The Solutions
Thankfully, there are multiple, quick and easy solutions to solve this issue.
Paid option: Use a third-party SMTP server to send your website’s mail
There are many paid SMTP services which you can purchase and use to handle the sending of your website’s outbound emails. When you buy an SMTP service, you’ll receive a few details such as the hostname, username, password, port number and recommended security settings. With these settings on-hand, you can download and input them into an SMTP plugin on your website. Your website will then use that server for sending mail, bypassing your built-in options. This route brings extra security and reliability to your outbound mail deliverability, but it also has a monetary cost.
If you’re looking for a free solution, we’ve still got you covered. You have two main options to resolve this issue that shouldn’t cost a thing.
Free option #1: Ensure the default Plesk from address actually exists
Essentially, wherever the mail system is for your domain, whether that be built-in to your hosting, or external such as G Suite or MS365, all you need to do is create the email address that Plesk is trying to send from by default. It doesn’t need to be created as a full email account (in fact, it’s tidier not to be), it just simply needs to exist as an alias or a forwarder so that it won’t fail sender verification tests for being non-existent. Just to remind you, the default Plesk from address is [email protected] – just remember to change “cpanelusername” to whatever your actual cPanel username is, as well as changing the second half of the address to your actual domain.
Free option #2: Change Plesk’s default from address to an address that exists.
In Plesk, you can make this adjustment in just a few seconds. What you’ll want to do is set the sendmail_from parameter so that phpmail sends from a different address that does exist, this would be done via: PHP Settings > mail.force_extra_parameters. In the box, type in: -t -i -f [email protected]
Then, just change the email address to one of your own email addresses that already exists. You’ll then just need to make sure that your hosting server is included in your SPF record, to allow the server to send emails on behalf of your domain. If you’re not sure how to do this, your hosting provider should be able to guide you.
Once you’ve chosen your preferred solution, give your contact forms or website notifications another shot! You should now find your website emails are being sent and received as expected.
As always, if you have any questions about this post or our shared hosting, VPS, reseller or dedicated server plans, simply call us on 1300 MY HOST (694 678) during business hours, or submit a ticket through our Support Portal and one of the crew will be in touch!