Estoy tratando de enviar un mensaje HTML mientras uso la autenticación SMTP a Gmail en PHP. Aquí está el script que estoy usando:Enviar un mensaje HTML a través de PEAR mientras utilizo la autenticación SMTP devuelve un error
require_once "Mail.php";
require_once 'Mail/mime.php';
$from = "Some Name <[email protected]>";
$to = "Other Name <[email protected]>";
$subject = "This is a test";
$crlf = "\n";
$host = "ssl://smtp.gmail.com";
$port = "465";
$username = "[email protected]";
$password = "mypass";
$headers = array ('From' => $from,
'Return-Path' => $from,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mime = new Mail_mime($crlf);
$mime->setTXTBody("This is a test email message");
$mime->setHTMLBody($body);
$body = $mime->get();
$headers = $mime->headers($headers);
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
Nota: la $body
es una tabla HTML con imágenes y otra información.
Cuando ejecuto el guión falla con el siguiente error:
Failed to set sender: Some name [SMTP: Invalid response code received from server (code: 555, response: 5.5.2 Syntax error. c6sm20541406obd.22)]
Esto es lo que he tratado de ver lo que está mal: 1. Utilizando la misma secuencia de comandos con 'Correo' en lugar de 'smtp' es decir
$smtp = Mail::factory('Mail');
Esto funciona bien. 2. Usando la misma secuencia de comandos sin mime.php, esto también funciona, pero no permite que uno envíe un correo electrónico HTML.
¿Alguien sabe cómo puedo combinar los dos para que todavía esté usando autenticación SMTP y envíe un mensaje HTML?
EDIT: Aquí está el vertedero de $mime->headers()
:
[MIME-Version] => 1.0
[From] => Some Name
[Return-Path] => Some Name
[Subject] => This is a test
[Content-Type] => multipart/alternative;
boundary="=_8662996a1f586248545d9f01f48e916d"
¿Se puede volcar '$ mime-> headers()' por favor? –
Agregué el volcado a la publicación. Gracias. –