Why won’t my PHP app send mail?

To comply with current SPAM standards involved with the PHP ‘nobody’ user, our newer servers that run PHP under Apache do not allow PHP to send mail via the mail() function, which is the default for most software. In order for you to be able to send mail you’ll need to configure the software to use SMTP with authentication, similar to how a mail client is set up. Most pre-bundled software packages like Joomla, phpBB, and other CMS’s have an option or plugin that will allow you to use SMTP instead of mail() or sendmail. Custom mailing scripts can usually be programmed to use SMTP using PEAR or the popular phpMailer class:

https://github.com/PHPMailer/PHPMailer

For a phpMailer tutorial, please see this guide:

Using phpMailer to Send Mail through PHP

To use SMTP you will need to use a valid email address that you’ve created in your cPanel. Most software will ask for these settings:

Hostname: localhost OR mail.example.com

Authentication: Yes

Username: your@emailaddress.com

Password: Your email password

Port: 25 / No SSL

or

Port 465 / SSL

If your software or scripts do not allow you to send via SMTP we can move you to a server that does not have the mail() function disabled. In this case you will need to contact technical support to request a server move. When contacting us, please make sure to include your username and original account password for verification.

Thoughts on “Why won’t my PHP app send mail?

Leave a Reply