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: [email protected]

Password: Your email password

Port: 25 / No SSL

or

Port 465 / SSL

Carrie Smaha
Carrie Smaha Senior Manager Marketing Operations

Carrie enjoys working on demand generation and product marketing projects that tap into multi-touch campaign design, technical SEO, content marketing, software design, and business operations.

More Articles by Carrie

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

  1. I cannot get SMTP authentication to work. Does the user name and password used to authenticate need to match the sender’s address?

    1. Hello Len – SMTP authentication is based on each account sending email out. So, yes, the credentials must match the sender’s email address.

Was this article helpful? Join the conversation!