Foros del Web » Programando para Internet » PHP »

Mandar mail desde un formulario

Estas en el tema de Mandar mail desde un formulario en el foro de PHP en Foros del Web. Hola. Quiero mandar mail desde un formulario, usando la funcion mail() de php, pero los mails no llegan a su destino, este es mi codigo: ...
  #1 (permalink)  
Antiguo 10/11/2006, 08:48
 
Fecha de Ingreso: enero-2006
Mensajes: 44
Antigüedad: 18 años, 3 meses
Puntos: 0
Mandar mail desde un formulario

Hola. Quiero mandar mail desde un formulario, usando la funcion mail() de php, pero los mails no llegan a su destino, este es mi codigo:

$asunto = $_POST['asunto'];
$mensaje = $_POST['mensaje'];
$alumno = $_POST['alumno'];
$num_alu = $_POST['num_alu'];

$contador=0;

for ($i=1;$i<=$num_alu;$i++){
if($_POST['alumno'.$i] != NULL){
$alumnos[] = $_POST['alumno'.$i];
$contador++;
}
}
echo $asunto ,$mensaje."</p>";

$destino="";
for ($i=1;$i<=$contador;$i++){
$destino = $destino . $alumnos[$i-1].",";
}

$destino = substr($destino,0,strlen( $destino)-1);

mail($destino, $asunto, $mensaje);
  #2 (permalink)  
Antiguo 10/11/2006, 09:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No aportas nada de información sobre las condiciones de envio o ejecución de ese script. Usas un servicio de hosting? tu PC para pruebas? .. o qué?

NO sé si conoces que PHP no envia e-mails .. sólo con su función mail() los "entrega" al MTA (Mail Transfer Agent) donde este será el que en última instanacia los enviará.

Así que si mail() no reporta error en PHP es por qué pudo entregarlo al MTA (servidor SMTP o lo que uses) para enviarlo, ahora, que este a su vez no haga la entrega o que tu receptor bloquee los e-mails que este envie es otro cuento. Debes revisar los "log's" de envio de tu servidor de correo para ver como fué la transacción. Si tu no tienes acceso a esos "log's" pidelos a quien corresponda.

Lo que sí le falta a tu código o uso de función mail() son TODAS las cabeceras típicas para componer un e-mail lo más correcto posible que respete las RFC's que defienen el protocolo de e-mail.

En las FAQ's tienes ejemplos de uso de mail() (incluido enviarlo en formato HTML, por qué así como generas tus datos, ni indicas salto de línea para un texto plano (\n) ni como HTML (<br>) .. así que en el momento que recibias el e-mail lo más probable es que lo recibas todo junto (las variables que haces mención).

www.php.net/mail

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 10/11/2006, 10:25
 
Fecha de Ingreso: enero-2006
Mensajes: 44
Antigüedad: 18 años, 3 meses
Puntos: 0
Gracias, es una respuesta muy completa.
  #4 (permalink)  
Antiguo 11/11/2006, 06:39
 
Fecha de Ingreso: noviembre-2006
Mensajes: 10
Antigüedad: 17 años, 5 meses
Puntos: 0
usuario

No sabes como hacer para que el nombre no sea WWW Daemon Dealer del MTA? Sino un nombre que yo mismo quiera...

Saludos.
  #5 (permalink)  
Antiguo 11/11/2006, 11:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Leandronp Ver Mensaje
No sabes como hacer para que el nombre no sea WWW Daemon Dealer del MTA? Sino un nombre que yo mismo quiera...

Saludos.
Inicia un nuevo tema con tu pregunta o usa el buscador (ese tema se ha tratado várias veces).

En principio .. debes definir tu FROM en tus cabeceras del e-mail .. y también si usas la función mail() puedes usar su 5° parámetro para definirlo.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 19:39.