
Problemas Envío de mail con PHPMailer
Publicado por Weasel (4 intervenciones) el 04/04/2014 04:09:55
Hola a tod@s, soy nuevo en esta comunidad y tengo muy, muy verde el tema de PHP...a ver si me podéis ayudar...
Estoy intentando enviar mails a través de PHP pero no hay manera de que me salgan las cosas bien. He probado, buscado y combinado todos los tutoriales que he encontrado pero no hay manera. Por eso he acabado aquí, y sí, he buscado en el foro y hay gente que tiene problemas similares al mío, pero sus soluciones parecen no servirme a mi. Así que os expongo mi problema a ver si me ayudáis a ver la luz...Para dar un poco más de info, diré que trabajo con Debian Wheezy y Apache.
La intención inicial era la de crearme una página en html (con el que me manejo mejor), o directamente en php con sus formularios para los destinatarios, el asunto, el cuerpo del mensaje...Pero al ver que no me funcionaba, lo aparqué y me dediqué primero a comprobar si con scripts simples con la función mail() llegaban a buen puerto. Y los mensajes no llegaban. Probé configurando el php.ini de la ruta /etc/php5/apache2/php.ini, vi que este archivo se encontraba también en otra ruta (/etc/php5/cli/php.ini), también lo modifiqué. Instalé sendmail que, por cierto, no sé si hay que configurarlo o no, si es que si no sé cómo, abrí el puerto 25 del router...He probado mil historias y nada. Entonces vi que existía PHPMailer. Súper fácil de configurar y de utilizar...Pues a mi no me va!!
Tengo las clases descargadas e incluyo la clase phpmailer.php. Mi php vendría ser este:
Este es uno de muchos códigos de los que he probado, evidentemente no es el mas sencillo, pero es el que más se adaptaba a lo que yo quería. El tema es que cuando le solicito la clase, se me abre la página de github del archivo class.phpmailer.php, pero en local...No creo que se tenga que cambiar nada de ese archivo,no?. Como vi que no progresaba, leí no sé dónde que se podía ver si el puerto 25 estaba operativo o no con telnet. Hice telnet al localhost 25 y la respuesta, para mi sorpresa fué ésta:
~# telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Y me pasa lo mismo con el puerto 21 y el 22...y supongo que con todos los demás también...
Ya no sé por dónde tirar para solucionar esta historia, poder mandar mis mails con php y ser feliz porque todo funciona bien...A ver si a alguien se le ocurre cuál puede ser la solución a mi problema.
Saludos y gracias!!
Estoy intentando enviar mails a través de PHP pero no hay manera de que me salgan las cosas bien. He probado, buscado y combinado todos los tutoriales que he encontrado pero no hay manera. Por eso he acabado aquí, y sí, he buscado en el foro y hay gente que tiene problemas similares al mío, pero sus soluciones parecen no servirme a mi. Así que os expongo mi problema a ver si me ayudáis a ver la luz...Para dar un poco más de info, diré que trabajo con Debian Wheezy y Apache.
La intención inicial era la de crearme una página en html (con el que me manejo mejor), o directamente en php con sus formularios para los destinatarios, el asunto, el cuerpo del mensaje...Pero al ver que no me funcionaba, lo aparqué y me dediqué primero a comprobar si con scripts simples con la función mail() llegaban a buen puerto. Y los mensajes no llegaban. Probé configurando el php.ini de la ruta /etc/php5/apache2/php.ini, vi que este archivo se encontraba también en otra ruta (/etc/php5/cli/php.ini), también lo modifiqué. Instalé sendmail que, por cierto, no sé si hay que configurarlo o no, si es que si no sé cómo, abrí el puerto 25 del router...He probado mil historias y nada. Entonces vi que existía PHPMailer. Súper fácil de configurar y de utilizar...Pues a mi no me va!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?
require "includes/class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir = "includes/";
$mail->Mailer = "smtp";
$mail->Host = "smtp.gmail.com";
$mail->SMTPAuth = true;
$mail->Username = "***********@gmail.com";
$mail->Password = "***********";
$mail->From = "********@gmail.com";
$mail->FromName = "Weasel";
$mail->Timeout=30;
$mail->AddAddress("***********@yahoo.es");
$mail->Subject = "Prueba de phpmailer";
$mail->Body = "<b>Mensaje de prueba en formato html</b>";
$mail->AltBody = "Mensaje de prueba en formato solo texto";
$exito = $mail->Send();
$intentos=1;
while ((!$exito) && ($intentos < 5)) { sleep(5);
//echo $mail->ErrorInfo;
$exito = $mail->Send();
$intentos=$intentos+1;
}
if(!$exito) {
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br/>".$mail->ErrorInfo;
}
else {
echo "Mensaje enviado correctamente"; } ?>
Este es uno de muchos códigos de los que he probado, evidentemente no es el mas sencillo, pero es el que más se adaptaba a lo que yo quería. El tema es que cuando le solicito la clase, se me abre la página de github del archivo class.phpmailer.php, pero en local...No creo que se tenga que cambiar nada de ese archivo,no?. Como vi que no progresaba, leí no sé dónde que se podía ver si el puerto 25 estaba operativo o no con telnet. Hice telnet al localhost 25 y la respuesta, para mi sorpresa fué ésta:
~# telnet localhost 25
Trying ::1...
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
Y me pasa lo mismo con el puerto 21 y el 22...y supongo que con todos los demás también...
Ya no sé por dónde tirar para solucionar esta historia, poder mandar mis mails con php y ser feliz porque todo funciona bien...A ver si a alguien se le ocurre cuál puede ser la solución a mi problema.
Saludos y gracias!!
Valora esta pregunta


0