Have you ever tried to use the mail function in PHP and it doesn’t work? Chances are the sendmail on the host server is not configured correctly. Maybe you may need to play around with PHP.INI to make it work. There is an easy workaround to make your mail function work without tinkering with sendmail. Try PHPMailer.

PHPMailer is a PHP class for PHP ( that provides a package of functions to send email. The two primary features are sending HTML Email and e-mails with attachments. PHPMailer supports nearly all possiblities to send email: mail(), Sendmail, qmail & direct to SMTP server. You can use any feature of SMTP-based e-mail, multiple recepients via to, CC, BCC, etc. In short: PHPMailer is an efficient way to send e-mail within PHP.

The key feature of PHPMailer is having the ability to use the mail function with a smtp server. There several features worth noting such as the ability to send an HTML email, CC and BCC recipients, embedded images, attachments, custom mail headers, redundant SMTP servers, SMTP authentication, wordwrap, etc.

A sample PHP mail function may look like this:

$to      = '';
$subject = 'the subject';
$message = 'hello';
$headers = 'From:' . "\r\n" .
           'Reply-To:' . "\r\n" .
mail($to, $subject, $message, $headers);

In PHPMailer, you would write something like this using SMTP server:

$mail = new PHPMailer();
$mail->Host = "";
$mail->From = "";
$mail->FromName = "Your name";
$mail->AddAddress("", "John Doe");
$mail->Subject = "Hello there";
$mail->Body = "Hi, just wanted to drop by and say hi." ;
if(!$mail->Send()) {
  echo "Message could not be sent.";
} else {
  echo "Message successful";

Some smtp servers may require authentication. You may need to add these lines:

$mail->SMTPAuth = true;
$mail->Username = "username";
$mail->Password = "password";

PHPMailer is an excellent and simple replacement for the PHP mail function. It’s easy and it works. Give PHPMailer a try.