Función mail() de PHP

Definición y uso

La función mail() permite enviar correos electrónicos directamente desde el script.

Si la entrega del correo se recibe con éxito, se devuelve true, de lo contrario, se devuelve false.

Sintaxis

mail(destinatario,asunto,message,encabezados,parámetros)
Parámetros Descripción
destinatario Obligatorio. Especifica el destinatario del correo.
asunto Obligatorio. Especifica el asunto del correo. Este parámetro no puede contener caracteres de nueva línea.
message Obligatorio. Especifica el mensaje que se enviará.
encabezados Obligatorio. Especifica encabezados adicionales, como From, Cc y Bcc.
parámetros Obligatorio. Especifica los parámetros adicionales del programa sendmail.

Descripción

en message En los mensajes especificados por los parámetros, las líneas deben estar separadas por un LF (\n). Cada línea no puede superar los 70 caracteres.

(En Windows) Cuando PHP se conecta directamente al servidor SMTP, si se encuentra un punto en el inicio de una línea, se eliminará. Para evitar este problema, reemplace el punto con dos puntos.

<?php
$text = str_replace("\n.", "\n..", $text);
?>

Sugerencias y comentarios

Comentarios:Recuerde, que la aceptación de la entrega del correo no significa que haya llegado a su destino planeado.

Ejemplo

Ejemplo 1

Enviar un correo electrónico simple:

<?php
$txt = "Primera línea de texto\nSegunda línea de texto";
// Si una línea es mayor de 70 caracteres, utilice wordwrap().
$txt = wordwrap($txt,70);
// Enviar correo
mail("somebody@example.com","My subject",$txt);
?>

Ejemplo 2

Enviar un correo electrónico con encabezados adicionales:

<?php
$to = "somebody@example.com";
$subject = "My subject";
$txt = "Hello world!";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";
mail($to,$subject,$txt,$headers);
?>

Ejemplo 3

Enviar un correo electrónico HTML:

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "Correo electrónico HTML";
$message = "
<html>
<head>
<title>Correo electrónico HTML</title>
</head>
<body>
<p>Este correo electrónico contiene etiquetas HTML!</p>
<table>
<tr>
<th>Nombre</th>
<th>Apellido</th>
</tr>
<tr>
<td>Bill</td>
<td>Gates</td>
</tr>
</table>
</body>
</html>
";
// Siempre configure content-type al enviar correos electrónicos HTML
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
// Más encabezados
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";
mail($to,$subject,$message,$headers);
?>