Enviar e-mail usando o servidor GMail SMTP a partir de uma página PHP

Estou tentando enviar um e-mail via GMail's SMTP server de uma página PHP, mas eu recebo este erro:

falha de autenticação [SMTP: O servidor SMTP não suporta autenticação (código: 250, resposta: mx.google.com ao seu serviço, [98.117.99.235] TAMANHO 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING]]

Alguém pode ajudar? Aqui está o meu código:

<?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>");
 }
?>

O seu código não parece estar usando TLS (SSL), que é necessário para entregar correio ao Google (e usando as portas 465 ou 587).

Você pode fazer isso definindo

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

O seu código parece suspeito como este exemplo que se refere a ssl:// no esquema de nomes de hosts.

Comentários (0)

O Gmail requer a porta 465, e também ele's o código do phpmailer :)

Comentários (0)

Conjunto

'auth' => false,

Veja também se a porta 25 funciona.

Comentários (1)