Explicación de la forma de enviar correos desde páginas PHP y ejemplos simples y complejos para realizar la tarea.

Para el envío de correos electrónicos utilizando PHP disponemos de una función bastante potente, incluida en todas las versiones de PHP, sin necesidad de instalar ningún añadido, en contra de lo que ocurría con ASP.

En concreto, en PHP disponemos de una función llamada mail() que permite configurar y enviar el mensaje de correo. La función se llama mail() y recibe tres parámetros de manera obligada y otros dos parámetros que podemos colocar opcionalmente. Devuelve true si se envió el mensaje correctamente y false en caso contrario.

Parámetros necesarios en todos los casos

Destinatario: la dirección de correo o direcciones de correo que han de recibir el mensaje. Si incluimos varias direcciones debemos separarlas por una coma.

Asunto: para indicar una cadena de caracteres que queremos que sea el asunto del correo electrónico a enviar.

Cuerpo: el cuerpo del mensaje, lo que queremos que tenga escrito el correo.

Ejemplo de envío de un mail sencillo

mail(«pepito@desarrolloweb.com,maria@guiartemultimedia.com»,»asuntillo»,»Este es el cuerpo del mensaje»)
?>

Parámetros opcionales del envío de correo

Headers: Cabeceras del correo. Datos como la dirección de respuesta, las posibles direcciones que recibirán copia del mensaje, las direcciones que recibirán copia oculta, si el correo está en formato HTML, etc.

Additional_parameters: esta opción no suele utilizarse y, además, sólo está disponible a partir de la versión PHP 4.0.5 y desde PHP 4.2.3 está deshabilitado en modo seguro. Puede usarse para pasar parámetros adicionales al programa configurado para enviar el correo, cuando se manda el mail usando la opción de configuración sendmail_path. Podemos obtener más información en la documentación de PHP para la función mail().

Ejemplo complejo de envío de correo

Vamos a enviar un correo con formato HTML a pepito@desarrolloweb.com, con copia a mariano@desarrolloweb.com y con copia oculta para pepe@pepe.com y juan@juan.com. La dirección de respuesta la configuraremos a maria@desarrolloweb.com.

$destinatario = «pepito@desarrolloweb.com»;
$asunto = «Este mensaje es de prueba»;
$cuerpo = ‘


   Prueba de correo

Hola amigos!

Bienvenidos a mi correo electrónico de prueba. Estoy encantado de tener tantos lectores. Este cuerpo del mensaje es del artículo de envío de mails por PHP. Habría que cambiarlo para poner tu propio cuerpo. Por cierto, cambia también las cabeceras del mensaje.



‘;

//para el envío en formato HTML
$headers = «MIME-Version: 1.0rn»;
$headers .= «Content-type: text/html; charset=iso-8859-1rn»;

//dirección del remitente
$headers .= «From: Miguel Angel Alvarez rn»;

//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= «Reply-To: mariano@desarrolloweb.comrn»;

//ruta del mensaje desde origen a destino
$headers .= «Return-path: holahola@desarrolloweb.comrn»;

//direcciones que recibián copia
$headers .= «Cc: maria@desarrolloweb.comrn»;

//direcciones que recibirán copia oculta
$headers .= «Bcc: pepe@pepe.com,juan@juan.comrn»;

mail($destinatario,$asunto,$cuerpo,$headers)
?>

Nota: Para el envío de correo mediante PHP es necesario que este disponga de una correcta configuración.

Si nuestro web está en un servidor de un proveedor de hosting seguramente ya hayan configurado PHP para el envío de mails. Si estamos trabajando en un servidor propio, sí tendremos que configurar PHP.

PHP se configura en el archivo php.ini, donde debemos especificar datos como el servidor de correo saliente que debe de utilizar PHP para transferir los mensajes.

Dentro del php.ini, debemos buscar el epígrafe [mail function]. Dependiendo de nuestro sistema deberemos configurar de una manera u otra.

En sistemas Windows encontraremos el php.ini en el directorio windows o dentro de este, en el subdirectorio system32 o similar. En este sistema deberemos indicar el dominio del servidor de smtp, algo como smtp.midominio.com. Si es el ordenador local el que hace de servidor, podremos poner «localhost» como máquina que enviará el correo. También podemos especificar la dirección desde donde queremos que parezca que se envía el mensaje en caso de que no se indique otra durante el envío.