Send Email in PHP using Gmail SMTP

In this tutorial, let us see how to send email in PHP using PHPMailer library via Gmail SMTP. Sending email in PHP can be done with various mail transfer libraries available. For example,  PHPMailer, PEAR::Mail interface. These libraries provide advanced features like SMTP authentication and more.

Sending email with PHP’s core function mail() is simpler. This function is too simple and lacks advanced features for sending email. For example, we cannot send attachments using PHP’s mail().

sending_email

In this tutorial, lets use PHPMailer class for sending emails by using Gmail SMTP server. This library is popular because of its advanced features. Some of those features are,

  • Allows both plaintext and HTML content as email body.
  • Allows array of email addresses for to|cc|bcc|reply-to.
  • It provides Secure/MIME encryption.
  • It supports various encoding techniques binary, base64 and etc.
  • It has multiple language support (Engligh by default).
  • It provides email validation, SMTP authentication, word wrapping and more.

PHP Script for Sending Email using Gmail SMTP

For sending email using SMTP we need not have entire PHPMailer library. It is sufficient to have only class.phpmailer.php and class.smtp.php of this library.

We should set subject, content and header information. When we send email using Gmail SMTP make sure to set SMTPAuth as TRUE and SMTPSecure as tls/ssl. Use your Gmail  Username and Password to send email.

<?php
require('phpmailer/class.phpmailer.php');
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 0;
$mail->SMTPAuth = TRUE;
$mail->SMTPSecure = "tls";
$mail->Port     = 587;  
$mail->Username = "your gmail username";
$mail->Password = "your gmail password";
$mail->Host     = "smtp.gmail.com";
$mail->Mailer   = "smtp";
$mail->SetFrom("Your from email", "from name");
$mail->AddReplyTo("from email", "PHPPot");
$mail->AddAddress("recipient email");
$mail->Subject = "Test email using PHP mailer";
$mail->WordWrap   = 80;
$content = "<b>This is a test email using PHP mailer class.</b>"; $mail->MsgHTML($content);
$mail->IsHTML(true);
if(!$mail->Send()) 
echo "Problem sending email.";
else 
echo "email sent.";
?>

For setting FromEmail and FromName, we can either use SetFrom() function or use PHPMailer properties PHPMailer::From and PHPMailer::FromName. For example,

$mail->From = "from email address";
$mail->FromName = "from name";

AddReplyTo(), AddAddress() functions will accept array of email addresses, and name is optional.

If we have HTML content as mail body, we need to set content body text/html by using,

$mail->IsHTML(true);

After setting all properties and mailer information with PHPMailer object, PHPMailer::send() function returns TRUE on successful mail transfer and FALSE on failure.

Download Email Script using GMAIL SMTP

This PHP code tutorial was published on December 5, 2013.

↑ Back to Top