mail en php

Hola a todos. Estoy debutando con php y en esta web en particular. Tengo una duda existencial: para mandar un mail con php, ¿el formulario...

La FAQ mail en php tiene

Pertenece a la categoría:
Pregunta
Hola a todos. Estoy debutando con php y en esta web en particular. Tengo una duda existencial: para mandar un mail con php, ¿el formulario propiamente dicho tiene que estar en html y luego pasar la información a otro archivo php, o se puede hacer todo en un documento php y embeberlo con html? y la inversa también: ¿puedo embeber el código php en una pagina html y dejar todo junto o debo hacer 2 documentos separados (htaml y otro php?
Sé que tal vez esté enroscado en algo obvio, pero bueno... espero que llegue el día en que le pueda resolver una duda a otro.
Muchas gracias
Daniel
Respuesta de Nicolas
En la pagina donde esta el formulario coloca este codigo despues del head asi :

<head>
<?
if (!$HTTP_POST_VARS){
?>
y luego al ultimo despues del /form y antes del /body pon esto

</form>
<?
}else{

$para = xxxx@tudominio.com.com;
$asunto = $HTTP_POST_VARS["title"];
$mailheader = "MIME-Version: 1.0
";
$mailheader = "From: ".$HTTP_POST_VARS["email"]."
";
$mailheader .= "Reply-To: ".$HTTP_POST_VARS["email"]."
";
$mailheader .= "Content-type: text/html; charset=iso-8859-1
";

$MESSAGE_BODY .= "NAME: ".$HTTP_POST_VARS["name"]."<br>";
$MESSAGE_BODY .= "TITLE: ".$HTTP_POST_VARS["title"]."<br>";
$MESSAGE_BODY .= "COMPANY: ".$HTTP_POST_VARS["company"]."<br>";

mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die ("Error al enviar el Formulario !");

}
?>
</body>


lo que hace esto posible es la sintaxis

$HTTP_POST_VARS

eso es todo averiguen mas sobre esto ultimo.
Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

Jose Luis

04/5/2010
Esto te servira...
Un detalle: depende de la version de php deBes usar $_POST[] en vez de $HTTP_POST_VARS (esta para php 5 esta obsoleta -no sirve mas-)

El siguiente codi go esta tomado del manual de php

Solo asignale a $para tu email e ira a tu email

Crea un archivo php con este codigo dentro:

<?php
// múltiples recipientes
$para = 'aidan@example.com' . ', '; // note la coma
$para .= 'wez@example.com';

// asunto
$asunto = 'Recordatorios de Cumpleaños para Agosto';

// mensaje
$mensaje = '
<html>
<head>
<title>Recordatorios de Cumpleaños para Agosto</title>
</head>
<body>
<p>¡Aquí están los cumpleaños que vienen en Agosto!</p>
<table>
<tr>
<th>Persona</th><th>Día</th><th>Mes</th><th>Año</th>
</tr>
<tr>
<td>Juan</td><td>3</td><td>Agosto</td><td>1970</td>
</tr>
<tr>
<td>Sandra</td><td>17</td><td>Agosto</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . " ";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . " ";

// Cabeceras adicionales
$cabeceras .= 'To: María <maria@example.com>, Kelly <kelly@example.com>' . " ";
$cabeceras .= 'From: Recordatorio de Cumpleaños <recordatorio@example.com>' . " ";
$cabeceras .= 'Cc: archivo@example.com' . " ";
$cabeceras .= 'Bcc: chequeo@example.com' . " ";

// Enviarlo
mail($para, $asunto, $mensaje, $cabeceras);
?>

JAIR GONZALEZ

04/5/2010
MAIL EN PHP
buen dia compañero,
hay una forma facil y sencilla de enviar un mail en php.

descargate la libreria PhpMailer.
y automaticamente de das los examples.

feliz dia.
atte. jaircito.

jose_luis_arismendi

04/5/2010
Esto te servira...
Esto te servira...
Por: Jose Luis
Un detalle: depende de la version de php deBes usar $_POST[] en vez de $HTTP_POST_VARS (esta para php 5 esta obsoleta -no sirve mas-)

El siguiente codi go esta tomado del manual de php

Solo asignale a $para tu email e ira a tu email

Crea un archivo php con este codigo dentro:

<?php

//PON TU EMAIL AQUI (asignas a la variable $para tu email)
$para = 'tu@email.aqui';

/*
//Y asi seria para varios envios
$para = 'aidan@example.com' . ', '; // note la coma
$para .= 'wez@example.com';
*/

// asunto
$asunto = 'Recordatorios de Cumpleaños para Agosto';

// mensaje
$mensaje = '
<html>
<head>
<title>Recordatorios de Cumpleaños para Agosto</title>
</head>
<body>
<p>¡Aquí están los cumpleaños que vienen en Agosto!</p>
<table>
<tr>
<th>Persona</th><th>Día</th><th>Mes</th><th>Año</th>
</tr>
<tr>
<td>Juan</td><td>3</td><td>Agosto</td><td>1970</td>
</tr>
<tr>
<td>Sandra</td><td>17</td><td>Agosto</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

// Para enviar correo HTML, la cabecera Content-type debe definirse
$cabeceras = 'MIME-Version: 1.0' . " ";
$cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . " ";

// Cabeceras adicionales
$cabeceras .= 'To: María <maria@example.com>, Kelly <kelly@example.com>' . " ";
$cabeceras .= 'From: Recordatorio de Cumpleaños <recordatorio@example.com>' . " ";
$cabeceras .= 'Cc: archivo@example.com' . " ";
$cabeceras .= 'Bcc: chequeo@example.com' . " ";

// Enviarlo
mail($para, $asunto, $mensaje, $cabeceras);
?>

lord_of_blaster

09/5/2010
Mail desde PHP
La mejor opcion para enviar Emails desde PHP, es PEAR. en la pagina pear.php.net en el area "Mail" estan algunas librerias utiles, como Mail_MIMe, para enviar emails en HTML y archivos adjuntos

Rafael Martín Soto

18/5/2010
Prueba PHPMailer
Nosotros hemos estado utilizando mucho tiempo la función mail del propio php, pero finalmente, por culpa de spam, hemos decidido dejar de utilizarla.

Te recomiendo que utilices PHPMailer <a href="http://sourceforge.net/phpmailer"></a>. En la web <a href="http://www.pantallatactil.net">pantallatactil.net</a>, por ejemplo, lo estamos utilizando, y la verdad es impresionante lo que puedes llegar a hacer (enviar texto plano, html o ambos, adjuntos, imágenes embebidas, ...)

.: Pampa :.

18/5/2010
Correción a JOSE_LUIS
Si bien el código de ejemplo que propone es correcto, no va a funcionar en Windows!

Es que el mailer interno (motor) de envío no soporta el las direcciones de los encabezados en el formato [Nombre <dirreccion@demail>].
Vas a recibir errores y vas a decir "si lo unico que hice es copiar y pegar!"

Recordá que en windows solo poder usar los destinatarios en el formato de
"To: destinatario@delemail.com"." ";

--
Note: La implementación Windows de mail() difiere en muchas formas de la implementación Unix. Primero, no usa un ejecutable local para componer mensajes ya que sólo opera en sockets directos, lo que significa que se necesita un MTA escuchando en un un socket de red (que puede estar tanto en localhost como en una máquina remota).
Segundo, las cabeceras personalizadas como From:, Cc:, Bcc: y Date: no son interpretadas por el MTA en primer lugar, pero son analizadas por PHP.
Por esto, el parámetro to no debería ser una dirección de correo de la forma "Algo <alguien@example.com>". Es posible que el comando mail no analice esto correctamente cuando dialoga con el MTA.
--
http://ar.php.net/manual/es/function.mail.php


Otro detalle mínimo pero no menos importante: Al día de hoy aún no entiendo por qué, pero no intentes colocar el salto de línea ( ) en el mismo string que el encabezado.
También va a fallar y nuevamente no entederás por qué.
Mantenelos separados y concatenados, tal como lo puse arriba.
"To: destinatario@delemail.com"." ";


Espero te sirvan los "consejitos".

Saludos,
.: Pampa :.
blog.icerock.com.ar
FAQ relacionadas
Volver al árbol de categoríasVolver al árbol de categorías