Foros del Web » Programando para Internet » PHP »

Phpmailer problema

Estas en el tema de Phpmailer problema en el foro de PHP en Foros del Web. Hola soy fernando esta es la primera vez que posteo aca... bueno yendo al caso tengo un problma con la libreria phpmailer... es la primera ...
  #1 (permalink)  
Antiguo 21/04/2013, 18:54
 
Fecha de Ingreso: abril-2013
Mensajes: 5
Antigüedad: 11 años
Puntos: 0
Pregunta Phpmailer problema

Hola soy fernando esta es la primera vez que posteo aca...

bueno yendo al caso tengo un problma con la libreria phpmailer...

es la primera vez q la uso pero segui un ejemplo de un post en taringa! para usarla.
Basicamente lo que quiero hacer es conectarme desde mi pagina web a un correo en gmail y enviar un mail a otro correo

adjunto el codigo php de la pagina

el error q recibo es el siguiente:
Error: The following From address failed: [email protected] : Called Mail() without being connected

lo que me extraña totalmente porque [email protected] no es el correo al q me estoy conectando ni si quiera es el correo al que estoy enviando el mail... es el correo al que quiero que me responda el que recibe el correo que la pagina envia

Código PHP:
<?php
include("phpmailer/class.phpmailer.php");
include(
"phpmailer/class.smtp.php");

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth=true;
$mail->SMTPSecure="ssl";
$mail->Host="smtp.google.com";
$mail->Port="465";
$mail->Username "[email protected]"
$mail->Password "mipassword";


$mail->From "[email protected]"
$mail->FromName "Nombre"
$mail->Subject "Asunto del Email"
$mail->AltBody "Este es un mensaje de prueba."
$mail->MsgHTML("<b>Este es un mensaje de prueba</b>."); 
$mail->AddAddress("[email protected]","Destinatario");
$mail->IsHTML(true); 

if(!
$mail->Send()) { 
    echo 
"Error: " $mail->ErrorInfo

else { 
    echo 
"Mensaje enviado correctamente"
};


?>


otra cosa

aclaro que yo no tengo instalado un servidor smtp, pero segun entiendo phpmailer nos evita esto al conectarse a un mail existente.
Corrijanme si estoy equivocado y esto no es asi por favor.
  #2 (permalink)  
Antiguo 21/04/2013, 20:27
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Phpmailer problema

Para GMail usa el puerto 587.

También, habilita SMTPDebug para saber si se produce algún error.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/04/2013, 05:16
 
Fecha de Ingreso: abril-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: Phpmailer problema

A mi tambien me sale el error.

Error: The following From address failed: [email protected] : Called Mail() without being connected

ya cambie el puerto que dijo david pero igual.
  #4 (permalink)  
Antiguo 22/04/2013, 05:18
 
Fecha de Ingreso: febrero-2013
Mensajes: 25
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Phpmailer problema

Hola desertmark

Dices que el email [email protected] es solo para que te respondan.

"Lo que me extraña totalmente porque [email protected] no es el correo al q me estoy conectando ni si quiera es el correo al que estoy enviando el mail... es el correo al que quiero que me responda el que recibe el correo que la pagina envia"

Pero según tu código:
$mail->From = "[email protected]";
$mail->FromName = "Nombre";

Es el email que utilizas para enviar el mensaje. Para que te respondan sería así.
$mail->AddReplyTo("[email protected]", "nombre");
Y en $mail->From tienes que poner el email desde el que envías el mensaje.

un saludo
  #5 (permalink)  
Antiguo 22/04/2013, 06:13
 
Fecha de Ingreso: abril-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: Phpmailer problema

Buenas Nymeria84, lo que dices no soluciona el error:

Error: The following From address failed: [email protected] : Called Mail() without being connecte
  #6 (permalink)  
Antiguo 22/04/2013, 09:03
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Phpmailer problema

Cambia esta línea

Código PHP:
Ver original
  1. $mail->SMTPSecure="ssl";

por

Código PHP:
Ver original
  1. $mail->SMTPSecure="tls";

Te dejo un ejemplo que me funciona perfectamente:

Código PHP:
Ver original
  1. require_once ('mailer/class.phpmailer.php');
  2. $Mail = new PHPMailer();
  3. $Mail->IsSMTP();
  4. $Mail->Host = 'smtp.gmail.com';
  5. $Mail->SMTPDebug = 2; //no olvides quitar el debug
  6. $Mail->SMTPAuth = true;
  7. $Mail->SMTPSecure = 'tls';
  8. $Mail->Port = 587;
  9. $Mail->Username = '[email protected]';
  10. $Mail->Password = 'password';
  11. $Mail->Priority = 1;
  12. $Mail->CharSet = 'UTF-8';
  13. $Mail->Encoding = '8bit';
  14. $Mail->Subject = 'Mensaje de prueba Gmail';
  15. $Mail->ContentType = 'text/html; charset=utf-8\r\n';
  16. $Mail->From = '[email protected]';
  17. $Mail->FromName = 'quien lo envia';
  18. $Mail->WordWrap = 900;
  19.  
  20. $Mail->AddAddress('[email protected]');
  21. $Mail->isHTML(TRUE);
  22. $Mail->Body = 'Hola este es mi mensaje';
  23. $Mail->Send();
  24. $Mail->SmtpClose();
  25.  
  26. if ($Mail->IsError()) {
  27.     echo "ERROR<br /><br />";
  28. } else {
  29.     echo "OK<br /><br />";
  30. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 22/04/2013 a las 09:09
  #7 (permalink)  
Antiguo 22/04/2013, 09:28
 
Fecha de Ingreso: abril-2013
Mensajes: 5
Antigüedad: 11 años
Puntos: 0
Respuesta: Phpmailer problema

wau cuantas reespuestas jajaj gracias :D

Cita:
Iniciado por David Ver Mensaje
Para GMail usa el puerto 587.

También, habilita SMTPDebug para saber si se produce algún error.
bueno david no tengo idea de como se activa el smtpdebug disuculpa mi ignorancia.

y segun tngo entendido por los ejemplos que vi gmail usa el pueto 465 para ssl y ese q vos decis para tsl que la verdad tampoco se q son.




Nymeria84. tu dices que $mail->from es el correo q uso para enviar el mail no?... pero el correo q uso para enviar no es el que va en $mail->username? o en los 2 debe ir el mismo correo? eso no se me ocurrio. voy a probar de nuevo todas las rtas que me recien estoy leyendo y luego cuento como me fue.



andresdzphp: todv no probe tu respuesta pero ahora lo hago y tmb cuento como me fue... muchas gracias ya que si esto funciona me ahorro de pagar un hosting con soporte smtp ya q no hay ninguno q lo de gratuito....
  #8 (permalink)  
Antiguo 22/04/2013, 09:31
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Phpmailer problema

Hola, así activas el debug:

Código PHP:
Ver original
  1. $Mail->SMTPDebug = 2;

Como te lo dejé en mi ejemplo, y no olvides quitarlo al terminar de programar.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #9 (permalink)  
Antiguo 22/04/2013, 10:17
 
Fecha de Ingreso: abril-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: Phpmailer problema

el debug me sale asi.

SMTP -> ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: Host desconocido. (0)
The following From address failed: [email protected] : Called Mail() without being connected ERROR
  #10 (permalink)  
Antiguo 22/04/2013, 10:18
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Phpmailer problema

No es:

Código PHP:
Ver original
  1. $mail->Host="smtp.google.com";

Es:

Código PHP:
Ver original
  1. $Mail->Host = 'smtp.gmail.com';

Probaste mi ejemplo?

Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once ('mailer/class.phpmailer.php');
  4. $Mail = new PHPMailer();
  5. $Mail->IsSMTP();
  6. $Mail->Host = 'smtp.gmail.com';
  7. $Mail->SMTPDebug = 2; //no olvides quitar el debug
  8. $Mail->SMTPAuth = true;
  9. $Mail->SMTPSecure = 'tls';
  10. $Mail->Port = 587;
  11. $Mail->Username = '[email protected]';
  12. $Mail->Password = 'password';
  13. $Mail->Priority = 1;
  14. $Mail->CharSet = 'UTF-8';
  15. $Mail->Encoding = '8bit';
  16. $Mail->Subject = 'Mensaje de prueba Gmail';
  17. $Mail->ContentType = 'text/html; charset=utf-8\r\n';
  18. $Mail->From = '[email protected]';
  19. $Mail->FromName = 'quien lo envia';
  20. $Mail->WordWrap = 900;
  21.  
  22. $Mail->AddAddress('[email protected]');
  23. $Mail->isHTML(TRUE);
  24. $Mail->Body = 'Hola este es mi mensaje';
  25. $Mail->Send();
  26. $Mail->SmtpClose();
  27.  
  28. if ($Mail->IsError()) {
  29.     echo "ERROR<br /><br />";
  30. } else {
  31.     echo "OK<br /><br />";
  32. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 22/04/2013, 10:20
 
Fecha de Ingreso: abril-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: Phpmailer problema

Si, copie el tuyo y sale el mismo error que te dije.
  #12 (permalink)  
Antiguo 22/04/2013, 10:21
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Phpmailer problema

Pues me funciona perfectamente, muestra el código que estás usando.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #13 (permalink)  
Antiguo 22/04/2013, 11:47
 
Fecha de Ingreso: abril-2013
Mensajes: 5
Antigüedad: 11 años
Puntos: 0
Respuesta: Phpmailer problema

andresdzphp:

Muchisimas gracias tu codigo me ha funcionado LO UNICO es que tube que agregar una linea mas para que me funcionara la cual fue

Código PHP:
require_once ('phpmailer/class.smtp.php'); 
que por alguna razón, la he necesitado y tu aparentemente no ya que cuando ejecute sin esa linea me daba error


ACLARACION: cuando uso ssl y puerto 465 sigue sin andar uso como dijo andres tsl y 587.

y como me dijo nymeria84 en
Código PHP:
$mail->From 
va el mismo correo que
Código PHP:
$mail->username 

ACLARACION2: por lo menos en dreamweaver que uso yo, usar "" o '' es lo mismo los 2 dontan Strings. o siempre lo he creido asi.
  #14 (permalink)  
Antiguo 22/04/2013, 11:55
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 8 meses
Puntos: 793
Respuesta: Phpmailer problema

A mi no me tocó incluir ese archivo, usando la última versión.

Que bueno que te funcione.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #15 (permalink)  
Antiguo 22/04/2013, 11:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Phpmailer problema

Cita:
Iniciado por desertmark Ver Mensaje
ACLARACION2: por lo menos en dreamweaver que uso yo, usar "" o '' es lo mismo los 2 dontan Strings. o siempre lo he creido asi.
Hay diferencias (aunque no en este caso específico) y es importante que las conozcas:
http://www.php.net/manual/es/language.types.string.php

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 01/10/2013, 18:26
 
Fecha de Ingreso: octubre-2013
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
Respuesta: Phpmailer problema

Prueba activando la extensión "openssl" en tu configuración de php.
Yo tenía el mismo problema y con eso lo solucioné.

Espero te sirva.
Saludos!

Etiquetas: correo, email, mail, phpmailer, smtp
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 04:33.