¿Estas atascado? ¡Yo te ayudo!, pregunta aquí.

Los email que envio desde php no llegan a Gmail ni Hotmail.

Todo código relacionado exclusivamente con PHP, incluido la programación con symphony, etc...

Notapor alexiter » Mar Ene 17, 2017 10:52 am

Uno de los principales problemas que nos encontramos al desarrollar modulos en php que envien correos electronicos es el del correo bloqueado, ignorado o directamente rechazado por parte de los proveedores de email mas habituales de nuestro tiempo. Hablamos de gmail y hotmail (outlook, msn, ...).

Debido al uso abusivo del spam, tanto google como microsoft han optado por endurecer los filtros que un email debe pasar para poder ser admitido, y de hace un tiempo para aca la cosa se ha vuelto complicada.

Recuerdo hara 5 o 6 años, que una simple funcion mail() enviaba sin problemas correos a cualquier sitio, pero ahora esta funcion se nos queda obsoleta, puesto que entre otras cosas, no realiza envios a traves de smtp autentificado.

El caso es que para realizar envios a gmail, la cosa no se complica demasiado, nos basta con agregar la clase phpmailer a nuestro directorio y seguidamente hacer uso de ella en nuestro codigo.

pongo ejemplo:
Código: Seleccionar todo
<?
include("class.phpmailer.php");
include("class.smtp.php");
 
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = "servidor smtp de mi cuenta de email";
$mail->Port = 25;
$mail->Username = "usuario de mi cuenta de email";
$mail->Password = "contraseña de mi cuenta email";

$mail->From = "micorreo@midominio.com";
$mail->FromName = "Mi nombre";
$mail->Subject = "Aqui el asunto del email";
$mail->AltBody = "Hola. /r/n esto es una prueba de envio en texto sin formato\nxxxx.";
$mail->MsgHTML("Hola. <br> esto es el mismo envio pero con texto con formato.");
$mail->AddAddress("xxxxxxx@gmail.com", "Alexiter");
$mail->IsHTML(true);
 
if(!$mail->Send()) {
  echo "Error: " . $mail->ErrorInfo;
} else {
  echo "Mensaje enviado correctamente";
}

?>


las clases se pueden bajar de su web github oficial:
https://github.com/PHPMailer/PHPMailer

Y con esto tendremos arreglado el problema de gmail, pero no tanto el de hotmail.

En el caso de hotmail, la cosa se complica sobremanera. Desde hace poco hotmail requiere obligatoriamente que el servidor de correo tenga autenticacion mediante id. de remitente y mas concretamente SPF.

para eso tenemos dos alternativas, o hablamos con nuestro prooveedor de servicio de dominio para que nos lo arregle (normalmente esto lo arreglan rapido) o si por el contrario el servidor de correo es nuestro y lo hemos configurado nosotros mismos (como es mi caso) tendremos que realizar algunos cambios en nuestro servidor DNS.

Puesto que yo uso mi propio servidor DNS (bind sobre ubuntu) esto es lo que hay que hacer:

Lo primero es ir a nuestro archivo .db del servidor BIND:

Código: Seleccionar todo
cd etc/bind/db.nuestro_dominio.com


seguidamente lo editamos

Código: Seleccionar todo
nano db.nuestro_dominio.com


y añadimos debajo del ultimo @ del encabezado la siguiente linea:

Código: Seleccionar todo
@               IN      TXT   "v=spf1 a mx:servidor_smtp ip4:ip_de_mi_servidor_de_correo ~all"


Obviamente donde pone servidor_smtp colocamos la direccion smtp de nuestro servidor de correo, algo parecido a smtp.correo.com y en ip de nuestro servidor la ip publica de nuestro servidor.

Guardamos los cambios y reiniciamos nuestro servidor bind.

Por ultimo solo nos queda entrar en este link:
https://support.microsoft.com/es-es/getsupport?oaspworkflow=start_1.0.0.0&wfname=capsub&productkey=edfsmsbl3&locale=es-ES&ccsid=635842016375998646

Y rellenar todos los datos que nos solicita diciendole a microsoft "palabrita del niño Jesus que no voy a spammear" enviandolo seguidamente. Cruzar los dedos, y con suerte en un par de dias hotmail volvera a recibir nuestros correos.
alexiter
Site Admin
 
Mensajes: 157
Registrado: Dom Nov 17, 2013 9:54 pm

Volver a PHP (symphony, etc...)

cron
  • Buscar mensajes nuevos
  • Buscar temas sin respuesta
  • ¿Quién está conectado?
  • Hay 4 Usuarios identificados :: 0 registrado, 0 ocultos y 4 invitados (basados en usuarios activos en los últimos 5 minutos)
  • La mayor cantidad de usuarios identificados fue 619 el Dom May 03, 2020 11:11 pm
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados