Using the PHP mail() function on Ubuntu 14.04
Alright, I'll start off by saying that I know there are better and more professional solutions for sending email on web servers. But sometimes you just want to use PHP's
mail() function to get it done quickly and simply. The following tutorial will walk you through the installation and setup process of Ubuntu's
Step 1: Install sendmail
Sendmail might already be installed, but just in case, enter this into the server terminal:
sudo apt-get install sendmail
Step 2: Configure sendmail
Enter the following command into the terminal:
Y for each question it asks.
Step 3: Edit the Hosts File
Time to edit the
hosts file on your server. Access it by entering the following command into the terminal:
sudo vim /etc/hosts
Add the following line to the top of the file and save it:
127.0.0.1 localhost localhost.localdomain YOUR_DOMAIN_NAME_HERE.COM
Comment out any duplicate lines that already existed.
Step 4: Restart Apache
Let's restart your server just for good measure.
sudo service apache2 restart
At this point emails sent out via PHP's
mail() function should be sending successfully and without much delay.
Step 5: Test the Functionality
This is a handy little script to help test your hosting to ensure you can send emails from PHP based sites which include a contact form or similar. This includes CMS systems such as WordPress and Joomla as well as eCommerce platforms such as Magento.
If you have made changes (eg enabled SMTP in the PHP settings) or moved hosts, this is a quick way to be confident the emails are working.
test-email.php script with the following:
<?php ini_set( 'display_errors', 1 ); error_reporting( E_ALL ); $from = "MailTest@YOUR_DOMAIN.COM"; $to = "YOUR_EMAIL_ADDRESS.COM"; $subject = "PHP Mail Test script"; $message = "This is a test to check the PHP Mail functionality"; $headers = "From:" . $from; mail($to,$subject,$message, $headers); echo "Test email sent"; ?>
From your server, run the following command:
That's it! You should be off and running now with a simple PHP mail setup.