Unable to use php mail function in PrestaShop 1.5 Updated on March 11, 2022 by Scott Mitchell 1 Minutes, 52 Seconds to Read In the PrestaShop 1.5 back office, you have the ability to send email via either the php mail() function or SMTP. It is the most common to use the php mail() function. When using this setting, you may receive an error like the one below: Sending failed using mail() as PHP’s default mail() function returned boolean FALSE This error occurs because of a false return code for the following statement in the MailSend.php. if (!ini_get(“safe_mode”)) $success = mail($to, $subject, $message, $headers, $params); else $success = mail($to, $subject, $message, $headers); The first thing you want to check is to see if the mail() function is enabled on your server. This can be easily checked by using a phpinfo page. If the mail function is disabled, it will display in the disable_functions label as shown here. If the mail function is enabled, then you may need to follow the steps below to fix the issue and allow your site to send mail. Follow the guide below as we show you how to fix the “Sending failed using mail() as PHP’s default mail() function returned boolean FALSE” error in PrestaShop 1.5. Fixing the ability to use the mail function in PrestaShop 1.5 First, log into your cPanel dashboard. From the main cPanel, navigate to the root folder for your PrestaShop application by using the File Manager. Once in the root folder, you will need to make three code changes in three files. The first is located in the /tools/swift/Swift/Plugin/MailSend.php at around line 158. Change $headers = $headers->build(); To $headers = $headers->build(); $params = “”; Next, navigate to the /tools/swift/Swift/Message.php file to around line 79. Change $this->setFrom(“”); To $this->setFrom(“[email protected]”); Finally, navigate and change the /tools/swift/Swift.php file at around line 370. Change if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from); To if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from); if (!$has_reply_to[0]) $message->setReplyTo($from->getAddress()); Ensure you save each of the edited files in order to activate the changes. Your PrestaShop 1.5 site should now be able to send email. Special thanks from Sales Mechanics in the PrestaShop.com forums for this fix! Share this Article Related Articles Adding a category in PrestaShop 1.6 How to Add a Product to your PrestaShop 1.6 Store Best Practices for Creating a PrestaShop Shop Fix 404 Error When Logging into PrestaShop 1.5 How to reset your admin password in PrestaShop 1.5 Working with the product SEO tab in PrestaShop 1.6 Adding Shipping Details to Products in PrestaShop Install a Theme in PrestaShop 1.6 How to enable/disable the new customer notification in PrestaShop 1.5 How to install and set up the UPS Carrier module in PrestaShop 1.5
I turned on Error reporting in Prestashop but I don’t get any message on a display. Where can I check the logfile? Maybe useful.
Hello Bianchery, I am unsure if you are one of our customers so I cannot check into your server. Did you follow the same instructions above and still get the error? Have you also tested the mail() functionality separate from the PrestaShop? Your host may also be able to provide more information on whether mail() is working for your server/account. Kindest Regards, Scott M
This fix works for prestashop 1.6.0.9 as well , i had same issue and your post help me to fix my mail sending problem, thank you very much!!
Hello John, Thank you very much for the help. This problem little bit mistery for me. My Prestashop run more than 1 years ago without any problems. I use Prestahop 1.5.2.0 Few weeks ago happened when change the status in one order for shipped, the system show the error message: have a problem with the mail. The costumer don’t get any mail. I went to “Advanced parameters > Email” and try to send test email. Didn’t works. I got this message: “Error: please check your configurationSending failed using mail() as PHP’s default mail() function returned boolean FALSE.” After is found this topic, changing every php files, but still unable sending email.
Hello Bianchery, Thank you for your comment. We are happy to help, but will need some additional information. What happens when you try to send mail. Are you getting any errors? What are they? Turning on Error reporting in PrestaShop may help provide a more detailed error. Are the emails being returned/bounced? If you have any further questions, feel free to post them below. Thank you, -John-Paul