Función mail de PHP

Función mail de PHP

Si necesitas enviar los datos recogidos a través de un formulario HTML por correo electrónico, te puede resultar útil la función mail de php.

Creamos un documento php (email.php) el cual se encargará de realizar el envío. Definimos las diferentes variables encargadas de recoger los datos del formulario, por ejemplo $variable = $_POST[nombre-campo].

Supongamos que hemos creado un formulario de contacto, compuesto por los siguiente campos: nombre, apellidos, telefono, email, asunto y mensaje; creamos las variables:

  • $nombre = $_POST[nombre];
  • $apellidos = $_POST[apellidos];
  • $telefono = $_POST[telefono];
  • $email = $_POST[email];
  • $asunto = $_POST[asunto];
  • $mensaje = nl2br($_POST[mensaje]); Con esta variable mantenemos los párrafos tal y como los escribió el usuario, respetando los saltos de línea.

Construimos el cuerpo del mensaje en texto plano o HTML:

  • $message

Y por último definimos el destinatario, asunto y remitente.

  • $email
  • $asunto
  • $cabeceras

A continuación, podéis ver un ejemplo de como quedaría nuestra función mail:

<?php

$nombre = $_POST[nombre];
$apellidos = $_POST[apellidos];
$telefono = $_POST[telefono];
$email = $_POST[email];
$asunto = $_POST[asunto];
$mensaje = nl2br($_POST[mensaje]);
$message =

"<font face=Arial, Helvetica, sans-serif size=2 em>

<p>Hola Administrador,</p>

<p>Un usuario ha enviado un nuevo mensaje, con los siguientes detalles:</p>

<p><b>Nombre completo:</b> $nombre $apellidos<br />
<b>Datos de contacto:</b> $telefono / <a href=mailto:$email>$email</a></p>

<p>$mensaje</p>

</font>";

$email = 'destinatario@email.es';
$asunto = $_POST[asunto];
$cabeceras = "From: remitente@email.es\r\nContent-type: text/html\r\n";

mail($email,$asunto,$message,$cabeceras);

?>

No olvides definir en tu formulario HTML "method" y "action".

<form id="formulario-contacto" name="formulario-contacto" method="post" action="email.php">

Publicar un comentario

2 Comentarios

  1. Yo recomendaría utilizar algún servicio de envíos y alguna otra librería como Swift.

    La función mail no es muy fácil de utilizar, por ejemplo para enviar adjuntos o para ver errores si se producen...

    ResponderEliminar
  2. Hola Mauro, gracias por dejar tu comentario. Sí, existen muchas librerías como Swit, phpMailer... con este post solo queríamos explicar cómo hacerlo a través de la función mail para formularios sencillos. Un abrazo y feliz año!

    ResponderEliminar