PHP - enviar un mail

 
Vista:

enviar un mail

Publicado por hector mex (1 intervención) el 24/05/2005 18:00:33
hola buenas tardes, soy nuevo en esta onda de la programacion web y me gusta aprender, espero me puedan ayudar con un problema, se los agradecere mucho.
tengo un formulario, hay un campo para correos, cuando los usuarios llenen todo el formulario, debe enviarse un mail a esa direccion de correo automaticamente. gracias por su ayuda
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

RE:enviar un mail

Publicado por rosy (28 intervenciones) el 24/05/2005 18:39:24
Te envío funciones de correo q encontré por ahi. Ojalá t sirva

Envío de Correo
Enviar correo electrónico con PHP es bastante fácil, y se realiza mediante la función mail().
Esta función se enlaza con el servidor de correo electrónico asociado al servidor web y despacha el mensaje.
La sintáxis básica de la función mail es la siguiente:
mail(destinatario, asunto, mensaje);
donde:
destinatario: email del destinatario
asunto: título o asunto (subject) del mensaje
mensaje: contenido (texto) del mensaje
por ejemplo:
<?php
mail("[email protected]", "Feliz Cumpleaños", "Espero que lo pases bien junto a tu familia");
?>
Lo normal es usar la función email en combinación con un formulario, como por ejemplo:
<FORM METHOD="GET" ACTION="enviacorreo.php">
<center><h1>Envía tus comentarios</h1></center>
<p>
<b>nombre :</b> <INPUT TYPE="text" NAME="nombre" SIZE="32"
></p>

<p>
<b>e-mail :</b> <INPUT TYPE="text" NAME="email" SIZE="34"></p>
<p>
<b>Tus Comentarios:</b><br>
<TEXTAREA NAME="comentarios" ROWS="10" COLS="50" WRAP="soft"></TEXTAREA></p>
<br>
<INPUT TYPE="submit" VALUE="ENVIAR">
<INPUT TYPE="reset" VALUE="LIMPIAR">
</FORM>
El script "enviacorreo.php" será el encargado de recibir los datos que se introduzcan en el formulario para enviarlos a través de la función mail.
En nuestro caso deberiamos tomar esos datos y construir una cadena de texto con ellos de la siguiente manera:
$mensaje = "Nombre: $nombre\n";
$mensaje .= "Email: $email\n";
$mensaje .= "Nota: $nota\n";
$mensaje .= "Comentarios: $comentarios";
y nuestra función email entonces quedaría:
mail("[email protected]", "Nuevo mensaje", $mensaje);
La función mail es del tipo booleando, o sea devuelve el valor TRUE (verdadero) si el correo se envió con exito y FALSE (falso) si sucede lo contrario.
De esta manera para asegurarnos que el correo se envía podemos escribir un código como el siguiente:
<?
$para = "[email protected]";
$sujeto = "Nuevo Correo";
$mensaje = "Nombre: $nombre\n";
$mensaje .= "Email: $email\n";
$mensaje .= "Nota: $nota\n";
$mensaje .= "Comentarios: $comentarios";
if(!mail($para, $sujeto, $mensaje))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
<h1>No se pudo enviar el Mensaje</h1>";
}
?>
Otra manera de dar respuesta de envío es hacer una página aparte de respuesta que podríamos llamar por ejemplo respuesta.htm. la cual consistiría simplemente en un mensaje que dijera "Su correo fue enviado con éxito", y que sería invocada mediante una etiqueta refresh. Y así nuestro código quedaría:
<?
$para = "[email protected]";
$sujeto = "Nuevo Correo";
$mensaje = "Nombre: $nombre\n";
$mensaje .= "Email: $email\n";
$mensaje .= "Nota: $nota\n";
$mensaje .= "Comentarios: $comentarios";
$respuesta = "respuesta.htm";
if(!mail($para, $sujeto, $mensaje))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}
?>
Cabeceras Adicionales
Es conveniente al envíar email poner algunos datos adicionales como el correo del remitente, el correo de respuesta automática, etc. Para ello a la función email se le agrega otro parámetro:
mail(destinatario, asunto, mensaje, cabecera_adicional);
Los encabezados más comunes son:
From: Quién es el remitente
To: a quién se envía
Cc: Personas que reccibirán copia
Bcc: Personas que reccibirán copia oculta
Subject: sujeto
Reply-To: a quién responder el correo
X-Mailer: Con qué se envío el mensaje
Disposition-Notification-To: a quién se le envia acuse de recibo
y de esta manera para competar nuestr codígo e incluir algunois encabezados extra escibiremos:
<?
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();
$para = "[email protected]";
$sujeto = "Nuevo Correo";
$mensaje = "Nombre: $nombre\n";
$mensaje .= "Email: $email\n";
$mensaje .= "Nota: $nota\n";
$mensaje .= "Comentarios: $comentarios";
$respuesta = "respuesta.htm";
if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}
?>

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

RE:enviar un mail

Publicado por Jose Luis (17 intervenciones) el 28/05/2005 19:14:51
Una consulta y como de puede enviar un archivo adjunto ???

Saludos

Jose Luis
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

RE:enviar un mail

Publicado por Daniel (1 intervención) el 04/02/2006 15:20:09
Muchísimas gracias por la aclaración que le has hecho al compañero.

Yo tengo el mismo problema y por lo menos he conseguido subirlo al server y que me envíe el correo, redireccionando a la página de agradecimientos. De todos modos, cuando envío el correo, me llegan los campos vacíos...

¿Que podría hacer?

Gracias.

[email protected]
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