martes, julio 18, 2006

Enviando Correo con PHP

Una función muy popular en los sitios corporativos es la de Contáctenos. Voy a describir rápidamente cómo enviar una forma de contacto por email desde una forma de HTML.
Primero necesitamos la forma que va a contener los datos.

forma

OK, la forma puede variar pero el concepto es el mismo. Veamos ahora el HTML de esta forma

contacto.html (extracto)

<form name="contacto" method="post" action="doemail.php">
<table>
<tr>
<td>Nombre:</td>
<td> <input name="$form[de_nombre]" type="text" id="$form[nombre]"> </td>
</tr>
<tr>
<td>Email:</td>
<td><input name="$form[de_email]" type="text" id="$form[email]"></td>
</tr>
<tr>
<td>Mensaje:</td>
<td><textarea name="$form[dmensaje]" id="$form[mensaje]"></textarea></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Enviar"></td>
<td>&nbsp;</td>
</tr>
</table>
</form>



Es una buena costumbre llenar el campo de id de los elementos de la forma aunque no es necesario. Observar cómo manejamos dentro del array form, todos los campos. Método Post a la páginadoemail.php.

doemail.php

<?php
/**
* doemail.php
* Autor: Juan Pablo Ramírez
* Fecha: 18 de julio 2006
* Sencilla forma para enviar un correo de contacto por email
*/

$para_email = "contacto@empresafictisio.com";
$de_nombre = $_POST["forma"]["de_nombre"];
$de_email = $_POST["forma"]["de_email"];
$titulo = "Desde forma de contacto";
$mensaje = $_POST["forma"]["mensaje"];

$headers = "MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=iso-8859-1\r\n".
"X-Mailer: PHP/" . phpversion() . "\r\n" .
"From: \"".$de_nombre."\" <".$de_email.">\r\n".
"To: \"".$titulo."\" <".$para_email.">\r\n".
"Date: ".date("r")."\r\n".
"Subject: Desde forma de contacto\r\n";

// enviando correo
$mail($para_email, $titulo, $mensaje, $headers);

?>

Esta es la manera más sencilla de enviar un correo con PHP, pero es bastante vulnerable contra inyecciones y spam. Más adelante escribiré otro método usando librerías espcializadas.

No hay comentarios.: