Correct SMTP-Mailing with PHP

PHP's mail() function is not usable in Shared-Hosting environments. 
Here is how to use SMTP for mailing with PHP: 

First, one needs Pear::Mail (see 

Next, in safemode open_basedir must includes /usr/share/php (with Debian's Pear::Mail package). 

Last not least the PHP code: 


# $params["host"] - The server to connect. Default is localhost

# $params["port"] - The port to connect. Default is 25 # $params["auth"] - Whether or not to use SMTP authentication. Default is FALSE # $params["username"] - The username to use for SMTP authentication. # $params["password"] - The password to use for SMTP authentication. # $params["persist"] - Indicates whether or not the SMTP connection # should persist over multiple calls to the send() method. $recipients = array('To' => ''); $headers['From'] = ''; $headers['To'] = ''; $headers['Subject'] = "Foo topic"; $mail_object =& Mail::factory('smtp', $params); $mail_object->send($recipients, $headers, $message);


Remark: As of 2014-12-30, all web servers hosted at ITEG with PHP support also have Pear::Mail installed, as debian package php-mail.


Originally from: IBCL BLog.
Originally posted: 2006-12-20