Envoyer des e-mails en utilisant le serveur SMTP GMail à partir d'une page PHP

J'essaie d'envoyer un courriel via le serveur SMTP de GMail à partir d'une page PHP, mais j'obtiens cette erreur :

échec de l'authentification [SMTP : le serveur SMTP ne prend pas en charge l'authentification (code : 250, réponse : mx.google.com à votre service, [98.117.99.235] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]

Quelqu'un peut-il m'aider ? Voici mon code :

<?php
require_once "Mail.php";

$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <ramona@microsoft.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";

$host = "smtp.gmail.com";
$port = "587";
$username = "testtest@gmail.com";
$password = "testtest";

$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)) {
  echo("<p>" . $mail->getMessage() . "</p>");
 } else {
  echo("<p>Message successfully sent!</p>");
 }
?>

Votre code ne semble pas utiliser le protocole TLS (SSL), qui est [nécessaire pour transmettre le courrier à Google (et utiliser les ports 465 ou 587)][1].

Vous pouvez le faire en définissant

$host = "ssl://smtp.gmail.com";

Votre code ressemble étrangement à [cet exemple][2] qui fait référence à ssl:// dans le schéma du nom d'hôte.

[1] : http://mail.google.com/support/bin/answer.py?hl=en&answer=13287 [2] : http://www.linuxquestions.org/questions/programming-9/php-pear-mail-packege-support-security-through-ssl-586976/

Commentaires (0)

Gmail requiert le port 465, et c'est aussi le code de phpmailer :)

Commentaires (0)

Définir

'auth' => false,

Voyez aussi si le port 25 fonctionne.

Commentaires (1)