Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error con PHPMailer

Estas en el tema de Error con PHPMailer en el foro de PHP en Foros del Web. Buenas, Me estoy peleando con PHPMailer y no lo soluciono. Haga lo que haga me da el siguiente error: SMTP Error: The following recipients failed: ...
  #1 (permalink)  
Antiguo 31/01/2015, 03:23
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Error con PHPMailer

Buenas,
Me estoy peleando con PHPMailer y no lo soluciono. Haga lo que haga me da el siguiente error:

SMTP Error: The following recipients failed: [email protected]


El código php es este:

Código PHP:
Ver original
  1. include ("/class/class.phpmailer.php");
  2.     $mailPrto = new PHPMailer(true); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch
  3.     try {
  4.         $mailPrto->SMTPDebug = true;
  5.         $mailPrto->IsSMTP();
  6.         $mailPrto->SMTPAuth = true;
  7.  
  8.         $mailPrto->Host = "smtp.xxx.es";
  9.         $mailPrto->Port = 25;
  10.         $mailPrto->Username = "xxx";
  11.         $mailPrto->Password = "xxx";
  12.         $mailPrto->From = "xxx";
  13.         $mailPrto->AddReplyTo = $correo;
  14.         $mailPrto->FromName = $nombre;
  15.         $mailPrto->AddAddress(xxx, 'web'); //para
  16.         $mailPrto->SetFrom(aaa, 'mensaje'); //de
  17.         $mailPrto->CharSet = 'UTF-8';
  18.         $mailPrto->Subject = "asunto";
  19.         $mailPrto->AltBody = 'bla bla bla'; // texto alternativo
  20.         $mailPrto->IsHTML(true);                                  // Activamos el formato HTML
  21.         $mailPrto->MsgHTML($message);
  22.         $mailPrto->Send();
  23.     } catch (phpmailerException $e) {
  24.     echo $strMsgFrmErr[$idioma].' '.$e->errorMessage(); //Pretty error messages from PHPMailer
  25.     } catch (Exception $e) {
  26.     echo $strMsgFrmErr[$idioma].' '.$e->getMessage(); //Boring error messages from anything else!
  27.     }


He activado el debug y sale lo siguiente. Entiendo poco, pero al menos tengo claro que la autenticación es correcta.

SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "220 smtp-03.servidoresdns.net ESMTP Postfix "
SMTP -> get_lines(): $data is "220 smtp-03.servidoresdns.net ESMTP Postfix "
SMTP -> FROM SERVER:220 smtp-03.servidoresdns.net ESMTP Postfix
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "250-llsa735-a03.servidoresdns.net "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net "
SMTP -> get_lines(): $str is "250-PIPELINING "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING "
SMTP -> get_lines(): $str is "250-SIZE 51200000 "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 "
SMTP -> get_lines(): $str is "250-ETRN "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN "
SMTP -> get_lines(): $str is "250-STARTTLS "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS "
SMTP -> get_lines(): $str is "250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN "
SMTP -> get_lines(): $str is "250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN "
SMTP -> get_lines(): $str is "250-ENHANCEDSTATUSCODES "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-ENHANCEDSTATUSCODES "
SMTP -> get_lines(): $data was "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-ENHANCEDSTATUSCODES "
SMTP -> get_lines(): $str is "250 8BITMIME "
SMTP -> get_lines(): $data is "250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-ENHANCEDSTATUSCODES 250 8BITMIME "
SMTP -> FROM SERVER: 250-llsa735-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-ENHANCEDSTATUSCODES 250 8BITMIME
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "334 VXNlcm5hbWU6 "
SMTP -> get_lines(): $data is "334 VXNlcm5hbWU6 "
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "334 UGFzc3dvcmQ6 "
SMTP -> get_lines(): $data is "334 UGFzc3dvcmQ6 "
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "235 2.7.0 Authentication successful "
SMTP -> get_lines(): $data is "235 2.7.0 Authentication successful "
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "250 2.1.0 Ok "
SMTP -> get_lines(): $data is "250 2.1.0 Ok "
SMTP -> FROM SERVER:250 2.1.0 Ok
SMTP -> get_lines(): $data was ""
SMTP -> get_lines(): $str is "553 5.7.1 : Sender address rejected: not owned by user [email protected] "
SMTP -> get_lines(): $data is "553 5.7.1 : Sender address rejected: not owned by user [email protected] "
SMTP -> FROM SERVER:553 5.7.1 : Sender address rejected: not owned by user [email protected]
SMTP -> ERROR: RCPT not accepted from server: 553 5.7.1 : Sender address rejected: not owned by user [email protected]

Alguna sugerencia?
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #2 (permalink)  
Antiguo 31/01/2015, 03:34
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Error con PHPMailer

Prueba a enviar un email a una dirección verdadera y di si te sigue dando problemas.
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 31/01/2015, 03:37
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Error con PHPMailer

Buenas,
Gracias por responder, lo estoy probando con una dirección verdadera, pero la he cambiado para publicar el post.
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #4 (permalink)  
Antiguo 31/01/2015, 03:37
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: Error con PHPMailer

Estas usando un servicio exchange de microsoft ,googleando un poco parece que hay 2 posibles soluciones :

1 Añadiendo la identidad del remite en la pestaña de configuración de tu webmail.
2 O puede que el servidor de intercambio de correo no acepte conexión sin tls necesites incluir debajo del password :
Código PHP:
Ver original
  1. $mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
  2. $mail->Port = 587;  //cambia el puerto por este.

Suerte!
  #5 (permalink)  
Antiguo 31/01/2015, 03:48
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: Error con PHPMailer

Si te fijas, en la clase PHPMailer hay un atributo que se llama Host.

Si lees la descripción verás que dice que tienes que especificar el host:puerto y que puedes también especificar el tipo de encripción tls:host:puerto.

Así que revisa que tienes bien configurados los atributos de la clase. Yo lo estoy viendo aquí
__________________
Ayúdame a hacerlo por mi mismo.
  #6 (permalink)  
Antiguo 31/01/2015, 03:56
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Error con PHPMailer

Gracias a los dos.
Ya he probado con los dos puertos 25 y 587.
También he probado con conexión cifrada, tanto ssl como tls
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #7 (permalink)  
Antiguo 31/01/2015, 04:52
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: Error con PHPMailer

Te sigue dando el mismo error?
Por cierto usas algún servidor compartido ? si es así cual.
El servicio de correo esta en el mismo servidor o en otro?

Mirandome mejor los log's , no parece un problema de conexión , más bien es un tema de configuración del servicio de exchange!

Código BASH:
Ver original
  1. SMTP -> get_lines(): $str is "235 2.7.0 Authentication successful "
  2. SMTP -> get_lines(): $data is "235 2.7.0 Authentication successful "


Código BASH:
Ver original
  1. SMTP -> get_lines(): $data is "553 5.7.1 : Sender address rejected: not owned by user [email protected] "
  2. SMTP -> FROM SERVER:553 5.7.1 : Sender address rejected: not owned by user aa@bb.es
  3. SMTP -> ERROR: RCPT not accepted from server: 553 5.7.1 : Sender address rejected: not owned by user aa@bb.es

Busca el código de error 553 5.7.1 en la lista :
http://support.mailhostbox.com/email...de/error-codes

Puede ser que la identidad del remitente este ya configurada otro nombre de usuario en vez de email o que tengas redirecciones de correo , en ese caso deberías poner el email final de destino ( no suelo usar productos de ms ) así que hasta aquí puedo leer!
Suerte!

Última edición por Djoaq; 31/01/2015 a las 05:01
  #8 (permalink)  
Antiguo 31/01/2015, 17:49
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Error con PHPMailer

Buenas,
Sigo con el problema y no será por las horas que le estoy dedicando:
El código que uso es exactamente este:

Código PHP:
Ver original
  1. include ("class/class.phpmailer.php");
  2.     $mail = new PHPMailer();
  3.  
  4.     $mail->IsSMTP();
  5.     $mail->SMTPAuth = true;
  6.     $mail->Host = 'mail';
  7.     $mail->Port = 25;
  8.  
  9.     $mail->Username = "usuario";
  10.     $mail->Password = "contraseña";
  11.    
  12.     $mail->AddAddress("[email protected]");
  13.     $mail->Subject = "Asunto del correo";
  14.    
  15.     $mail->Body = "cuerpo del correo"; 
  16.  
  17.     if ($mail->Send())
  18.         echo "bien";
  19.     else
  20.         echo "error";

Este código funciona, pues en lugar de poner los datos de la cuenta del cliente, he puesto los de mi cuenta personal, y se ha enviado correctamente.

He configurado la cuenta de mi cliente en Microsoft Outlook, y se configura igual que la mía, es decir, sin usar cifrado.
He probado con:
- SMTPAuth: true i false
- Port: 25 i 587
- SMTPSecure = "tls" y "ssl"
Y nada, da error.

Alguna sugerencia más.
Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #9 (permalink)  
Antiguo 01/02/2015, 03:03
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Error con PHPMailer

Buenas, siguiendo con el tema, que aún no he solucionado.
He bajado la última versión, de la página de Github, de class.phpmailer.php (5.2.9), de class.smtp.php, y PHPMailerAutoload.php que hasta ahora nunca había utilizado.

Y en la página php he substituido:
- require(""class/class.phpmailer.php")
por
- require ("class/PHPMailerAutoload.php");

Y fatal, al ejecutar la página sale este error:
Código texto:
Ver original
  1. * @author Jim Jagielski (jimjag) 
 * @author Andy Prevost (codeworxtech) 
 * @author Brent R. Matzelle (original founder)
 * @copyright 2012 - 2014 Marcus Bointon
 * @copyright 2010 - 2012 Jim Jagielski
 * @copyright 2004 - 2009 Andy Prevost
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 * @note This program is distributed in the hope that it will be useful - WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 */

/**
 * PHPMailer SPL autoloader.
 * @param string $classname The name of the class to load
 */
function PHPMailerAutoload($classname)
{
 //Can't use __DIR__ as it's only in PHP 5.3+
 $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
 if (is_readable($filename)) {
 require $filename;
 }
}

if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
 //SPL autoloading was introduced in PHP 5.1.2
 if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
 spl_autoload_register('PHPMailerAutoload', true, true);
 } else {
 spl_autoload_register('PHPMailerAutoload');
 }
} else {
 /**
 * Fall back to traditional autoload for old PHP versions
 * @param string $classname The name of the class to load
 */
 function __autoload($classname)
 {
 PHPMailerAutoload($classname);
 }
}
?>
  2. Fatal error: Class 'PHPMailer' not found in prueba.php on line 5

La línea 5 es $mail = new PHPMailer();

El código que he descargado, PHPMailerAutoload.php es el siguiente:
Código PHP:
Ver original
  1. <?php
  2. /**
  3.  * PHPMailer SPL autoloader.
  4.  * PHP Version 5
  5.  * @package PHPMailer
  6.  * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
  7.  * @author Marcus Bointon (Synchro/coolbru) <[email protected]>
  8.  * @author Jim Jagielski (jimjag) <[email protected]>
  9.  * @author Andy Prevost (codeworxtech) <[email protected]>
  10.  * @author Brent R. Matzelle (original founder)
  11.  * @copyright 2012 - 2014 Marcus Bointon
  12.  * @copyright 2010 - 2012 Jim Jagielski
  13.  * @copyright 2004 - 2009 Andy Prevost
  14.  * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
  15.  * @note This program is distributed in the hope that it will be useful - WITHOUT
  16.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  17.  * FITNESS FOR A PARTICULAR PURPOSE.
  18.  */
  19.  
  20. /**
  21.  * PHPMailer SPL autoloader.
  22.  * @param string $classname The name of the class to load
  23.  */
  24. function PHPMailerAutoload($classname)
  25. {
  26.     //Can't use __DIR__ as it's only in PHP 5.3+
  27.     $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
  28.     if (is_readable($filename)) {
  29.         require $filename;
  30.     }
  31. }
  32.  
  33. if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
  34.     //SPL autoloading was introduced in PHP 5.1.2
  35.     if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
  36.         spl_autoload_register('PHPMailerAutoload', true, true);
  37.     } else {
  38.         spl_autoload_register('PHPMailerAutoload');
  39.     }
  40. } else {
  41.     /**
  42.      * Fall back to traditional autoload for old PHP versions
  43.      * @param string $classname The name of the class to load
  44.      */
  45.     function __autoload($classname)
  46.     {
  47.         PHPMailerAutoload($classname);
  48.     }
  49. }
  50. ?>

Muchas gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no
  #10 (permalink)  
Antiguo 01/02/2015, 05:32
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: Error con PHPMailer

Parece que no cumples los requisitos tu versión de php es inferior.
Yo sigo insistiendo que no es un problema del phpmailer (con la anterior ver q usabas ) sino es un tema de configuración con las identidades de ms Exchange o bien hay alguna redirección de correo en esa cuenta en tal caso debes usar la identidad de la cuenta a la que se esta redireccionando el correo.
Un saludo!
Pd: vuelve a mirarte con calma el cod de error en el listado del enlace que te pasé.
  #11 (permalink)  
Antiguo 01/02/2015, 17:31
 
Fecha de Ingreso: enero-2002
Ubicación: Sabadell
Mensajes: 565
Antigüedad: 22 años, 3 meses
Puntos: 4
Respuesta: Error con PHPMailer

Buenas,
Sigo liada con lo mismo.
Finalmente he retrocido de versión y sigo con class.phpmailer.php
He avanzado un poco, pero me surge un error, busco la solución pero no la entiendo.

El error es el siguiente:
Código Error:
Ver original
  1. SMTP -> FROM SERVER:220 smtp-03.servidoresdns.net ESMTP Postfix
  2. SMTP -> FROM SERVER: 250-llsa736-a03.servidoresdns.net 250-PIPELINING 250-SIZE 51200000 250-ETRN 250-STARTTLS 250-AUTH PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-AUTH=PLAIN DIGEST-MD5 CRAM-MD5 LOGIN 250-ENHANCEDSTATUSCODES 250 8BITMIME
  3. SMTP -> FROM SERVER:250 2.1.0 Ok
  4. SMTP -> FROM SERVER:553 5.7.1 : Sender address rejected: not owned by user [email protected]
  5. SMTP -> ERROR: RCPT not accepted from server: 553 5.7.1 : Sender address rejected: not owned by user [email protected]
  6. SMTP Error: The following recipients failed: [email protected]

He buscado el error 553 5.7.1 y dice lo siguiente:
Código Descripción:
Ver original
  1. 553 5.7.1 Sender address rejected: not owned by user [email protected]
  2. This is the error message that is received when you are trying to send an email as a different user. This error message is seen by the users who are using Exchange servers with our system.
  3.  
  4. You need to add an identity for the same in the webmail. For example,
  5.  
  6. Log into the webmail of [email protected]
  7. Add the identity from the settings tab for [email protected] (If the from address is [email protected]). For more information, please refer: http://support.mailhostbox.com/email-users-guide/sender-identities
  8. Once the identity is added and confirmed, you should be able to send the emails.

Parece com si el username y el from fuesen diferentes, y no lo son. Por lo que no entiendo que sugiera crear una identidad/alias para poder enviar

Y el código PHP:
Código PHP:
Ver original
  1. require "class/class.phpmailer.php";
  2.     $mailPrto = new PHPMailer(); //defaults to using php "mail()"; the true param means it will throw exceptions on errors, which we need to catch
  3.     try {
  4.         $mailPrto->IsSMTP();
  5.         $mailPrto->SMTPAuth = true;
  6.         $mailPrto->SMTPDebug = 2;
  7.         $mailPrto->Host = 'smtp.dominio.es';
  8.         $mailPrto->Port = 25;
  9.         $mailPrto->Username = "[email protected]";
  10.         $mailPrto->Password = "contraseña";
  11.         $mailPrto->From = "[email protected]";
  12.         $mailPrto->AddReplyTo = $cor_;
  13.         $mailPrto->FromName = $nom_;
  14.         $mailPrto->AddAddress(Correo, 'Cliente'); //para
  15.         $mailPrto->SetFrom($cor_, 'Mensage web'); //de
  16.         $mailPrto->CharSet = 'UTF-8';
  17.         $mailPrto->Subject = "Sol·licitud";
  18.         $mailPrto->AltBody = 'bla bla bla'; // texto alternativo
  19.         $mailPrto->IsHTML(true);      
  20.         $mailPrto->MsgHTML($message);
  21.         $mailPrto->Send();
  22.         echo '<p>Mensaje enviado correctamente'</p>';
  23.     } catch (phpmailerException $e) {
  24.     echo $strMsgFrmErr[$idioma].' '.$e->errorMessage(); //Pretty error messages from PHPMailer
  25.     } catch (Exception $e) {
  26.     echo $strMsgFrmErr[$idioma].' '.$e->getMessage(); //Boring error messages from anything else!
  27.     }

Alguien puede ayudarme? Gracias
__________________
Qué fácil cuando lo sabes y qué difícil cuando no

Última edición por mblascog; 02/02/2015 a las 01:33
  #12 (permalink)  
Antiguo 24/02/2015, 01:43
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: Error con PHPMailer

1) Imagino que usas un servidor local como WamServer bajo Ruindows, digo, windows.

2) debes habilitar en tu php.ini "php_openssl"

3) Descargar la clase "phpmailer" y solo coge para usar: class.phpmailer.php, class.smtp.php y el directorio completo de languages.

4) Crear un correo gmail, entrar en configuración, cuentas e importación, en el apartado cambiar la configuracion de la cuenta entra en otra configuracion de la cuenta de google, busca acceso de aplicaciones menos seguras y dale a permitir.

5) el archivo que envia el correo, yo lo llamo send_mail_google.php:

Código PHP:
<?php
// Adquirimos las variables de un formulario de contacto por ejemplo
$dia=date("d-m-Y"); //No es del formulario
$hora=date("H:i:s"); //No es del formulario
$nombre $_POST["nombre"];
$email $_POST["email"];
$asunto $_POST["asunto"];
$mensaje $_POST["mensaje"];
$body "
 El mensaje se a enviado el dia: <strong>$dia</strong> a las: <strong>$hora</strong> horas <br><br> 
---------------------------------------------------------------------------------------------------------<br><br>
 <strong>Nombre:</strong> $nombre <br><br>
 <strong>Email:</strong>  <a href='mailto:$email'>$email</a> <br><br>
 <strong>Asunto:</strong> $asunto <br><br>
 <strong>MENSAJE:</strong> <br><br>$mensaje <br><br>
 --------------------------------------------------------------------------------------------------------<br><br>
 "
;
/*--------------------------------------------------------------------------------------------*/
require_once('includes/PHPMailer/class.phpmailer.php'); //Patch a class.phpmailer.php
include('includes/PHPMailer/class.smtp.php'); //Patch a class.smtp.php
/*------------------------------------------------------------------------------------------*/
$mail = new PHPMailer();
$mail->setLanguage('es');
/*------------------------------------------------------------------------------------------*/
$mail->From $email;
$mail->FromName $nombre;
$mail->addReplyTo($email$nombre);
/*------------------------------------------------------------------------------------------*/
$host 'smtp.gmail.com';
$username '[email protected]';
$password 'tucontraseña';
$port 587;
$secure 'tls';
/*------------------------------------------------------------------------------------------*/
$mail->isSMTP();
$mail->Host $host;
$mail->SMTPAuth true;
$mail->Username $username;
$mail->Password $password;
$mail->Port $port;
$mail->SMTPSecure $secure;
/*------------------------------------------------------------------------------------------*/
$mail->addAddress('correo al que quieres enviar''Nombre del usuario que quieres enviar');
/*------------------------------------------------------------------------------------------*/
$mail->isHTML(true);
$mail->CharSet 'utf-8';
$mail->setWordWrap 70;
/*------------------------------------------------------------------------------------------*/
$mail->Subject 'ENVÍO FORMULARIO DE CONTACTO';
$mail->Body $body;
//$mail->MsgHTML($body);
$mail->AltBody $body//Texto plano por si no acepta correo html
/*------------------------------------------------------------------------------------------*/
if($mail->Send()) {
?> 
EL CORREO SE HA ENVIADO SIN ERRORES O LO QUE TU QUIERAS EN HTML
<?php
} else {
?>
EL COOREO NO SE HA PODIDO ENVIAR O LO QUE TU QUIERAS EN HTML
<?php
}
?>
Cual es el principal problema de esto de enviar correo con phpmailer a través de google gmail:
Pues el asunto estará bien, el nommbre del remitente estará bien, pero el remitente o el Raplyto será el de tu cuenta de gmail "[email protected]"

Me funciono 100% sin problemas

Normalmente se usa la función mail() de php para enviar los correos desde un Hosting con servidor de correos, en un servidor local cuando estás desarrollando la web debes probar que esta función envie los correos y no puedes pues en local no tienes servidor de correos.

Uso WampServer para desarrollar la web y ahora ya no uso phpmailer uso otro metodo para poder usar la funcion mail() de php en local con windows y Wampserver y es usando con wamp "Fake Sendmail "

Última edición por manyblue; 24/02/2015 a las 03:00

Etiquetas: html, phpmailer
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:18.