PHP - PHPMailer falla en servidor remoto (gratuito)

 
Vista:

PHPMailer falla en servidor remoto (gratuito)

Publicado por Pablo (44 intervenciones) el 21/07/2014 12:54:47
Tengo el siguiente código para un formulario tipo "envia a un amigo":

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
<?php
/*Lo primero es añadir al script la clase phpmailer desde la ubicación en que esté*/
require './class.phpmailer.php';
 
//Crear una instancia de PHPMailer
$mail = new PHPMailer();
//Definir que vamos a usar SMTP
$mail->IsSMTP();
//Esto es para activar el modo depuración. En entorno de pruebas lo mejor es 2, en producción siempre 0
// 0 = off (producción)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug  = 0;
//Ahora definimos gmail como servidor que aloja nuestro SMTP
$mail->Host       = 'smtp.gmail.com';
//El puerto será el 587 ya que usamos encriptación TLS
$mail->Port       = 587;
//Definmos la seguridad como TLS
$mail->SMTPSecure = 'tls';
//Tenemos que usar gmail autenticados, así que esto a TRUE
$mail->SMTPAuth   = true;
//Definimos la cuenta que vamos a usar. Dirección completa de la misma
$mail->Username   = "username@gmail.com";
//Introducimos nuestra contraseña de gmail
$mail->Password   = "c0ntr4s3ny4";
//Definimos el remitente (dirección y, opcionalmente, nombre)
$mail->SetFrom('username@gmail.com', 'Username UserApellido');
//Esta línea es por si queréis enviar copia a alguien (dirección y, opcionalmente, nombre)
$mail->AddReplyTo('replica@gmail.com','El de la réplica');
//Y, ahora sí, definimos el destinatario (dirección y, opcionalmente, nombre)
$mail->AddAddress('fulanodetal@suemail.com', 'El Destinatario');
//Definimos el tema del email
$mail->Subject = 'Esto es un correo de prueba';
//Para enviar un correo formateado en HTML lo cargamos con la siguiente función. Si no, puedes meterle directamente una cadena de texto.
//$mail->MsgHTML(file_get_contents('correomaquetado.html'), dirname(ruta_al_archivo));
$mail->Body = 'Este es el cuerpo del mensaje';
//Y por si nos bloquean el contenido HTML (algunos correos lo hacen por seguridad) una versión alternativa en texto plano (también será válida para lectores de pantalla)
$mail->AltBody = 'This is a plain-text message body';
//Enviamos el correo
if(!$mail->Send()) {
  echo "Error: " . $mail->ErrorInfo;
} else {
  echo "El menasje ha sido enviado!";
}
?>

Que me funciona perfectamente en mi WampServer, pero que he tratado de subirlo a esHost (un servidor gratuito sin publi) y no funciona.

El error que me da es: Error: SMTP connect() failed.

He estado leyendo y dicen que esHost gratuito no tiene la posibilidad de enviar emails porque no te proporcionan el servidor, pero tenía entendido que para eso sirve PHPMailer.

Haciendo uso de WampServer en mi PC (¿Instala un servidor de correo SMTP?) funciona perfectamente y aparece que el mensaje está enviado desde Gmail.

No tengo necesidad de enviar muchos emails, solo que he puesto un formulario del tipo "reenviar a un amigo" y me gustaría que el mensaje le llegara inmediatamente (la opción B que contemplo es guardar los datos del formulario en una BD y consultarla de vez en cuando (un método como muy manual)

¿Alguna sugerencia?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de SALVADOR

PHPMailer falla en servidor remoto (gratuito)

Publicado por SALVADOR (125 intervenciones) el 27/07/2014 20:23:24
Podría ser la versión de PHP del hosting que estas utilizando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar