12SepEnviar mails desde PHP

Alguna vez os habréis topado con la necesidad de enviar un correo electrónico de forma automatizada, por ejemplo en la implementación de Newsletters en alguna aplicación web. A continuación, voy a mostraros cómo hacerlo en el famoso lenguaje, pero no por ello menos potente, PHP.

PHP posee en su librería estándar una función llamada mail() que nos va a permitir realizar esta tarea de una forma sencillísima. Como todas las funciones de este lenguaje, está perfectamente documentada en la web. Sin entreteneros más, os pongo el código:

<?php
$to = "test@segmentationfault.es";
$subject = "Segmentation Fault Mail From PHP";
$body = "This is a mail sent from PHP";
$headers = "From: gabi@segmentationfault.es" . "\r\n";

if (mail($to,$subject,$body,$headers)){
  echo "Mail successfully sent";
} else {
  echo "Error: mail could not be sent";
}

?>

A la función mail() le pasamos los parámetros:

  • $to : dirección de correo a quien queremos enviar el mail.
  • $subject : asunto del mail.
  • $body : aquí incluiremos el cuerpo del mensaje.
  • $headers (opcional): Aquí podemos incluir cabeceras específicas en el mail. En este caso hemos especificado la dirección del remitente, pero se pueden incluir más opciones.

Como la función mail() de PHP retorna un bool (true/false) podemos utilizarlo para identificar si el mail se ha enviado de forma satisfactoria o no y comunicárselo al usuario.

Ahora ya sabemos cómo enviar mail de texto simple mediante PHP. Pero no nos vamos a quedar sólo aquí, ahora vamos a aprender cómo enviar mails con contenido HTML (la base de cualquier boletín).

<?php

$to = "test@segmentationfault.es";
$subject = "Segmentation Fault Mail From PHP with HTML content";

$body = "<html><head>";
$body .= "<title>Segmentation Fault Mail From PHP with HTML content</title>";
$body .= "</head><body>";
$body .= "<h1>Segmentation Fault</h1>";
$body .= "<p>This is a <b>simple HTML mail</b> sent from PHP. You can know how to do it in <a href=\"http://segmentationfault.es\">SegmentationFault Blog</a>.</p>";
$body .= "</body></html>";

/* Headers necesarios para enviar contenido HTML */
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

$headers .= "From: gabi@segmentationfault.es" . "\r\n";
$headers .= 'CC: noemi@segmentationfault.es' . "\r\n";

if (mail($to,$subject,$body,$headers)){
  echo "Mail successfully sent";
} else {
  echo "Error: mail could not be sent";
}

?>

En este segundo ejemplo, el cuerpo del mensaje es contenido HTML y para poder enviarlo necesitamos incluir headers adicionales. Además, hemos añadido un CC para mostrar cómo incluir diversos destinatarios de un mismo mail.

¡Enhorabuena! Ya sabéis enviar mails desde PHP de una forma rápida y simple. Si surgen dudas, haced uso de los comentarios. Salu2!

Fuentes

Documentación PHP – http://es.php.net/manual/en/function.mail.php

W3Schools – http://www.w3schools.com/php/func_mail_mail.asp

One Response and Counting...

  • Bitacoras.com

    September 12th 2009

    Información Bitacoras.com…

    Valora en Bitacoras.com: Alguna vez os habréis topado con la necesidad de enviar un correo electrónico de forma automatizada, por ejemplo en la implementación de Newsletters en alguna aplicación web. A continuación, voy a mostraros cómo hacerlo en el…..