Sending HTML Mail via SMTP with PHP Pear Mail
May 30th, 2012
Warning: This post is 12 years old. Some of this information may be out of date.
Here's how to send html email via remote SMTP using PHP and Pear Mail / Mime.
Installing Pear Mail
To install the classes you should enter (as a superuser):
pear upgrade
pear install Mail
pear install Mail_Mime
pear install Net_SMTP
Pear Mail Mime Example
The following code shows how to send an HTML mail using Pear classes over SMTP.
<?php
/**
* send_email
* Sends mail via SMTP
* uses Pear::Mail
* @author Andrew McCombe <[email protected]>
*
* @param string $to Email address of the recipient in 'Name <email>' format
* @param string $from Email address of sender
* @param string $subject Subject of email
* @param string $body Content of email
*
* @return boolean if false, error message written to error_log
*/
function send_email($to, $from, $subject, $body) {
require_once "Mail.php";
require_once "Mail/mime.php";
$host = "smtp.yourhost.com";
$headers = array (
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$mime = new Mail_mime();
$mime->setHTMLBody($body);
$body = $mime->get();
$headers = $mime->headers($headers);
$smtp = Mail::factory('smtp', array ('host' => $host));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
return false;
} else {
return true;
}
}
$body = '
<h1>
Test Mail
</h1>
<p style="color: red">
This is a test
</p>';
send_email('John Doe <John @doe.com>', 'Bob Smith <bob @example.com>', 'Test HTML message', $body);
Previous →
How to add APC cache to Magento