PHP Send Email

Q. How do I send an email using PHP and Apache webserver under Linux / UNIX operating systems? How do I send email from a PHP Script?

A. The mail() function under PHP allows you to send mail. For the Mail functions to be available, PHP must have access to the sendmail binary on your system during compile time. Usually most webservers are installed with sendmail binary.

Sample PHP Send Email Code

<?php
// Send to?
$to = "[email protected]";
 
// The Subject
$subject = "Email Test";
 
// The message
$message = "This is a test.n
How much is Linux worth today?n
End of email message!";
 
// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);
 
// Send email
// Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise. 
// Use if command to display email message status
if ( mail($to, $subject, $message) )
{
     echo("Your email message successfully sent.");
} 
else 
{
     echo("Sorry, message delivery failed. Contact webmaster for more info.");
}
?>

<?php
// Send to?
$to = "[email protected]"; // The Subject
$subject = "Email Test"; // The message
$message = "This is a test.n
How much is Linux worth today?n
End of email message!"; // In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70); // Send email
// Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
// Use if command to display email message status
if ( mail($to, $subject, $message) )
{
echo("Your email message successfully sent.");
}
else
{
echo("Sorry, message delivery failed. Contact webmaster for more info.");
}
?>

Adding Email Headers such as From Email ID

You can add 4th parameters to mail(). This is typically used to add extra headers (From, Cc, and Bcc). Multiple extra headers should be separated with a CRLF (rn):

<?php
$to = '[email protected]';
$subject = 'Test';
$message = 'This is a test.';
// set headers as per your requirements. 
$headers = 'From: [email protected]' . "rn" .
    'Reply-To: [email protected]' . "rn" .
    'X-Mailer: PHP/' . phpversion();
 
if ( mail($to, $subject, $message, $headers) ) {
	echo 'Message sent!';
}
else
{
	echo 'Message failed, contact webmaster for more info!';
}
?>

<?php
$to = ‘[email protected]’;
$subject = ‘Test’;
$message = ‘This is a test.’;
// set headers as per your requirements.
$headers = ‘From: [email protected]’ . "rn" .
‘Reply-To: [email protected]’ . "rn" .
‘X-Mailer: PHP/’ . phpversion(); if ( mail($to, $subject, $message, $headers) ) {
echo ‘Message sent!’;
}
else
{
echo ‘Message failed, contact webmaster for more info!’;
}
?>

See also:

  1. PHP: Verify And Sanitize Email Address
  2. PHP Send Email Using Authenticated SMTP Mail Server In Real Time
  3. Install PHP Pear Mail / SMTP package on CentOS / Red Hat Enterprise Linux

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.