Foros del Web » Programando para Internet » PHP »

Qué pasa con los correos devueltos enviados con la función mail()

Estas en el tema de Qué pasa con los correos devueltos enviados con la función mail() en el foro de PHP en Foros del Web. Muy buenas. Inicio este hilo, aunque vengo de este otro: http://www.forosdelweb.com/f18/email-devuelto-678233/ Todo lo comentado en ese post está muy bien, pero no me convence. Lo ...
  #1 (permalink)  
Antiguo 27/10/2010, 08:13
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 16 años, 4 meses
Puntos: 9
Qué pasa con los correos devueltos enviados con la función mail()

Muy buenas.
Inicio este hilo, aunque vengo de este otro:
http://www.forosdelweb.com/f18/email-devuelto-678233/
Todo lo comentado en ese post está muy bien, pero no me convence.
Lo sorprendente es que haya que pasar por el administrador de un servidor para poder hacer la simpleza de enviar un email.

Por lo que veo, la función mail() envía un correo en nombre del propio servidor, con lo que si el correo enviado es devuelto por cualquier motivo, ese mail devuelto lo recibe el administrador del servidor.

Como la mayoría esperamos, si mando un correo desde la cuenta X , lo más lógico es que esa sea la cuenta notificada con los posibles errores de entrega.

De hecho, con otros lenguages de programación, para enviar un mail, es imprescindible informar de la cuenta que envía, la cuenta destino, los servidores, nombres de usuario contraseña, etc... Todo esto, precisamente para autenticar el envío. Dicho de otro modo, de esta forma "emulamos" el mismo comportamiento de como si el correo fuera enviado desde esa cuenta.
Por lo tanto, cuando un correo es devuelto por cuelquier motivo, esa cuenta que envía es la que recibe el correo devuelto.

¿Por qué cuesta tanto encontrar la solución a enviar un correo mediante PHP cumpliendo este simple requisito?
HE encontrado varias soluciones que ninguna de ellas funciona. O quizás haya que ir acompañada de algún otro detalle que no se dice.
He encontrado soluciones como especificar explícitamente en las cabeceras del mail el From, el Reply To, el Return Path, pero que va! El correo llega pero los devueltos llegan al administrador.

A continuación les dejo el código utilizado, y les aseguro que el devuelto no llega a la cuenta de origen, si no a la cuenta administradora del servidor.

Código PHP:
<?php
// multiple recipients
$to  '[email protected]', '// note the comma
$to .= '[email protected]';

// subject
$subject 'Asunto de Prueba';

// message
$message '
<html>
<head>
  <title>Titulo de Prueba</title>
</head>
<body>
  <p>Texto de Prueba!</p>
  <b>Texto en Negrita</b>
</body>
</html>
'
;

// To send HTML mail, the Content-type header must be set
$headers  'MIME-Version: 1.0' "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";

// Additional headers
$headers .= 'From: cuenta1 <[email protected]>' "\r\n";
$headers .= 'Reply-To: [email protected]"\r\n";
$headers .= 'Return-Path: [email protected]"\r\n";

// Mail it
mail($to$subject$message$headers'[email protected]');
?>
La función mail() tiene un quinto parámetro, y ya he probado haciendo uso de él, y también sin hacer uso de él.
Se supone que [email protected] debería recibir los correos devueltos.
En cualquiera de los casos, sigo sin recibirlo. Los recibe el administrador del sistema.

Gracias por sus aportaciones.
Saludos.
__________________
..:: moNTeZIon ::..
  #2 (permalink)  
Antiguo 27/10/2010, 09:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 15 años
Puntos: 2135
Respuesta: Qué pasa con los correos devueltos enviados con la función mail()

Como comente en ese post, mail() lo que hace es entregar al servidor SMTP especificado, es el mismo servidor SMTP el que se encarga de hacer el envío, pero también tiene la posibilidad de modificar el contenido/cabeceras, etc.

Es por eso que debes de verificar la configuración del servidor SMTP y ver que no este sobreescribiendo esa cabecera, también cuando recibas el correo ve el código fuente (o mail RAW) para que veas las cabeceras del correo y veas si el Return-Path esta bien puesto o no.

Saludos.

Etiquetas: correos, enviados, mail
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:12.