Basée sur la classe PHPMailer, voici une solution permettant d'envoyer des mail en php, via le smtp de son compte Gmail, et même son compte Google Apps.

PHPMailer

Est une classe PHP d'envoi de mail open source disponible ici. Je recommande la version 2.0.

Classe GoogleMailer
require_once dirname(__FILE__)."/class.phpmailer.php";
class GoogleMailer extends PHPMailer {
	
	/**
	 * Constructeur
	 *
	 */
	public function __construct() {
		// on passe en mode SMTP
		parent::IsSMTP();
		// on utilise l'authentification
		$this->SMTPAuth	= true;
		// on indique le chemin du stmp, en ssl
		$this->Host		= 'ssl://smtp.gmail.com';
		// indication du numéro de port
		$this->Port		= 465;
		
	}
	
	/**
	 * Applique le nom d'utilisateur Gmail
	 *
	 * @param string 	$S_login	login gmail, adresse mail complete (tagada@gmail.com)
	 * @param string 	$S_FromName	nom de l'emetteur
	 */
	public function setUsername($S_login, $S_FromName = "") {
		$this->Username	= $S_login;
		$this->From		= $S_login;
		$this->FromName	= $S_FromName;
		
	}
	
	/**
	 * applique le mot de passe du compte gmail
	 *
	 * @param string $S_password
	 */
	public function setPassword($S_password) {
		$this->Password	= $S_password;
		
	}
	
	/**
	 * Redefinition du send pour renvoyer une exception en cas d'erreur
	 *
	 * @return bool
	 */
	public function Send() {
		if (!parent::Send()) {
			throw new Exception($this->ErrorInfo);
			
		}
		return true;
		
	}
	
}
Utilisation

On peut étendre la classe GoogleMailer pour créer sa classe perso MonGmailer qu'on utilisera sur toute notre appli :

class MonGmailer extends GoogleMailer {
	
	/**
	 * constructeur
	 *
	 */
	public function __construct() {
		parent::__construct();
		parent::setUsername('tagada@gmail.com', 'Pierre DUPOND');
		parent::setPassword('monmotdepasse');
		
	}
	
}

Envoi du mail à proprement parler :

 
try {
	$O_mail	= new MonGmailer();
	$O_mail->AddAddress('destinataire@domaine.com', 'Jean MARTIN');
	$O_mail->SetLanguage('en');
	$O_mail->IsHTML(true);
	
	$O_mail->Subject	= 'test';
	$O_mail->Body		= "<h1>Hello wolrd</h1>";
	$O_mail->AltBody	= 'Hello World';
	
	$O_mail->Send();
	
	echo 'OK !';
	
} catch (Exception $O_fault) {
	echo $O_fault->getMessage();
	
}

Et voila ;) have fun !