PEAR::Mail and GMail

If you ever need to send email from PHP and don’t have access to a SMTP server, but do have a GMail account use this code as a template.

You will need:

  • PHP Pear::Mail class installed
  • A GMail account
  • Port 465 open to smtp.gmail.com in your firewall
<?php
include('Mail.php');
 
$from =     "user@host.com";
$to =       "user@host.com";
$subject =  "Your subject here";
$body =     "\n\nEmail contents here";
$host =     "ssl://smtp.gmail.com";
$port =     "465";
$username = "your_gmail_email@gmail.com";
$password = "yourGmailPassword";
 
$headers = array (
         'From' => $from,
         'To' => $to,
         'Subject' => $subject);
 
$smtp = Mail::factory('smtp',
      array (
            'host' => $host,
            'port' => $port,
            'auth' => true,
            'username' => $username,
            'password' => $password));
 
$mail = $smtp->send($to, $headers, $body);
 
if (PEAR::isError($mail)) die($mail->getMessage());
 
?>

A couple of important things to note with this code.

First off, its a template, at least have a basic understanding of what it does before you try to use it or ask a question.

Second, yes, its rough and the error handling is poor at best, see the first point.

Third, and if you’ve gotten this far, you probably knew this already, the $smtp->send() function will wait for the socket to close before continuing, so this would probably be best for queued or deferred processing of email.

  1. No comments yet.
(will not be published)
Subscribe to comments feed
  1. No trackbacks yet.