Send mails via SMTP with auth

From D3xt3r01.tk
Jump to navigationJump to search

WHY

Because mail() doesn't always give the right results, also one might want to use it's own SMTP server !

HOW

Using PEAR's Mail class !

<?php
require_once "Mail.php";
$from = "Name<mail@here.com>"; // This is how some use to forge the "From" Header. The Name isn't really required, an just set mail@here.com only without the <> part !
$to = "Name<destination@here.com>"; // Name isn't really required. You can just set destination@here.com only without the <> part !
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

// Server auth info
$host = "smtp.gmail.com";
$username = "auth@user.com";
$password = "p4ssw0rdg03sh3r3";

$headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject);
$smtp = Mail::factory('smtp', array ('host' => $host, 'auth' => true, 'username' => $username, 'password' => $password));
$mail = $smtp->send($to, $headers, $body);

if(PEAR::isError($mail)){
	echo("<p>".$mail->getMessage()."</p>");
}else{
	echo("<p>Message successfully sent!</p>");
}
?>