Foros del Web » Programando para Internet » PHP »

Envío de correo mediante SMTP con PHPMailer

Estas en el tema de Envío de correo mediante SMTP con PHPMailer en el foro de PHP en Foros del Web. Hola a todos. Me estreno en Foros del Web con este tema, y vengo aquí para quedarme... :) Tengo un problema con una página web ...
  #1 (permalink)  
Antiguo 09/04/2011, 17:33
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Pregunta Envío de correo mediante SMTP con PHPMailer

Hola a todos.

Me estreno en Foros del Web con este tema, y vengo aquí para quedarme... :)

Tengo un problema con una página web que he creado con un compañero. Queremos que al registrarte en nuestra página, el sistema envíe un mail de bienvenida al usuario mediante SMTP, con una cuenta de correo que creamos para ello. Para implementar esta funcionalidad hemos usado la librería PHPMailer.

Sin embargo cuando el usuario se registra satisfactoriamente, se muestra un mensaje en el que se muestra que la conexión con el servidor SMTP ha sido rechazada. No sabemos si es un problema de código o es que el hosting que usamos tiene capados los puertos de correo saliente (nos decantamos más por lo segundo, pero no lo tenemos claro).

Aquí adjunto el código que genera la conexión con el servidor, crea el correo y lo envía (por seguridad y privacidad, he puesto algunos asteriscos en algunos campos, en el código real están bien puestos).

Código PHP:
<?php
function sendMessage($email$name$surname$password) {
    
    
$mail = new PHPMailer();
    
$mail->Mailer "smtp";
    
$mail->Host "smtp.1and1.es";
    
$mail->Port 587;
    
$mail->SMTPAuth true;
    
$mail->Username "registration@*******.com";
    
$mail->Password "*******";
    
$mail->From "*******@*******.com";
    
$mail->FromName "My page";
    
$mail->Subject "Welcome to my page";
    
$mail->Body "<p>Welcome to my page, </p>"$name.
            
"!<p>Your account has been created. Your e-mail is <b>" $email .
            
"</b> and your password is <b>"$password "</b></p>" .
        
"<p>Greetings.</p>";
    
$mail->AddAddress($email$name ' ' $surname);
    
$mail->IsHTML(true);

    if(!
$mail->Send()) {
        echo 
"Mailer Error: " $mail->ErrorInfo;
    } else {
        echo 
"Message has been sent.";
    }
}

?>
Y la llamada a esa función sería así:

Código PHP:
 sendMessage($mail$name$surname$pass); 
¿A qué se puede deber nuestro problema? ¿Alguna idea? ¡Gracias!
  #2 (permalink)  
Antiguo 09/04/2011, 18:18
Avatar de xalupeao  
Fecha de Ingreso: mayo-2008
Ubicación: Santiago, Chile
Mensajes: 749
Antigüedad: 16 años, 6 meses
Puntos: 12
Respuesta: Envío de correo mediante SMTP con PHPMailer

escribe el mensaje que lanza $mail->ErrorInfo, haz probado con otro servicio smtp (es mismo gmail) por ejemplo.
__________________
Hosting en Chile en Silverhost - La solución en Hosting en Chile.
  #3 (permalink)  
Antiguo 10/04/2011, 02:49
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Envío de correo mediante SMTP con PHPMailer

Lo que sale en pantalla es esto:

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.1and1.es:587 (Connection refused) in /homepages/0/d362579197/htdocs/Functions/phpmailer/class.smtp.php on line 122
Mailer Error: SMTP Error: Could not connect to SMTP host.

Pone que no conecta con el host, pero sé que los datos están correctos y el servidor está activo. Voy a probar con otro servicio como Gmail, para ver qué sucede.
  #4 (permalink)  
Antiguo 10/04/2011, 08:43
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Envío de correo mediante SMTP con PHPMailer

hay lo tienes : Mailer Error: SMTP Error: Could not connect to SMTP host.


Pero que tiene en la linea 122?

tampoco veo que allas metido la variable $mail dentro de la function :

($email, $name, $surname, $password,$mail)


Esto es culpa de ellos :

unable to connect to smtp.1and1.es:587

, quisas debas modificar algo en el panel de control :
  #5 (permalink)  
Antiguo 10/04/2011, 10:53
 
Fecha de Ingreso: abril-2011
Mensajes: 3
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Envío de correo mediante SMTP con PHPMailer

Es que el error en la línea 122 que comenta es en el código de la propia librería y me extraña mucho que eso esté mal. Eso sí, probé con Gmail y falló de la misma manera.

El paso de parámetro lo hago perfectamente, la llamada se hace desde otra parte de la página en el que la variable que guarda el correo se llama $mail, pero al llamar a la función se introduce donde debo poner el correo. Por lo tanto eso no está mal.

Probaré a ver en el panel de control de mi proveedor (uso 1and1, y para el correo uso una cuenta de webmail también de 1and1), pero no creo que funcione ya que en Gmail tambien falló. ¿Alguna idea más?

Gracias por adelantado.

Última edición por Hokasito; 10/04/2011 a las 11:09
  #6 (permalink)  
Antiguo 10/04/2011, 11:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Envío de correo mediante SMTP con PHPMailer

como nota, PHPMailer funciona perfectamente, y bastantes podemos confirmarlo, con SMTP o sin el funciona de maravilla...

así que por lo general el error debe ser por la misma configuración de tu SMTP, que por algún motivo no deja conectarse a PHPMailer... así que definitivamente no es problema de PHPMailer, es mas, te invito a hacer una prueba manual con otro script...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 10/04/2011, 11:50
(Desactivado)
 
Fecha de Ingreso: enero-2011
Mensajes: 293
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Envío de correo mediante SMTP con PHPMailer

Uhm...pateketrueke Mi amo , Sabe donde puedo conseguir ese PHPMAILER Del cual tanto se habla estan hablando eso desde mis primeros gates en php .
  #8 (permalink)  
Antiguo 02/06/2011, 13:49
 
Fecha de Ingreso: junio-2007
Mensajes: 7
Antigüedad: 17 años, 4 meses
Puntos: 1
Respuesta: Envío de correo mediante SMTP con PHPMailer

las instrucciones esta bien, estoy casi seguro que es tu proveedor de hosting que tiene cerrado el firewall y los puertos ssl y tls debes pedirles que los abra para que no te den esos errores de no hacerlo te sugiero contrates servicios de hosting que no te den tantas limitaciones yo e tenido buena experiencia con http://dattatec.com
  #9 (permalink)  
Antiguo 02/06/2011, 14:02
Avatar de carlosmderio3  
Fecha de Ingreso: marzo-2011
Ubicación: valencia
Mensajes: 67
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Envío de correo mediante SMTP con PHPMailer

Cita:
Hokasito
Respuesta: Envío de correo mediante SMTP con PHPMailer
Lo que sale en pantalla es esto:

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.1and1.es:587 (Connection refused) in /homepages/0/d362579197/htdocs/Functions/phpmailer/class.smtp.php on line 122
Mailer Error: SMTP Error: Could not connect to SMTP host.

Pone que no conecta con el host, pero sé que los datos están correctos y el servidor está activo. Voy a probar con otro servicio como Gmail, para ver qué sucede.
1and1 el servicio smtp funciona bien...
1and1 funciona también sin configurar SMTP, usando cualquier otro script php de contacto, registro, etc.
__________________
Oir EuropaFM Valencia!

Etiquetas: mediante, 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 05:47.