Programación en PHP/Mail

De Wikilibros, la colección de libros de texto de contenido libre.

PHP proporciona una forma fácil de enviar emails mediante la función mail(), cabe mencionar que no es recomendable usar dicha función para el envío de correo masivo (esto es debido a que abre un socket nuevo por cada email a enviar).

<?php
    # Este es un ejemplo completamente funcional de como enviar un email usando
    # la función 'mail'.

    $data = "Asunto: {$_POST['asunto']}\r\n
        De: {$_POST['apellidos-y-nombres']}\r\n
        {$_POST['tipo-documento']}: {$_POST['nro-documento']}\r\n
        {$_POST['correo']}\r\n\r\n";
    $para      = 'miemail@gmail.com';
    $titulo    = trim($_POST['asunto']);
    
    # El texto del mensaje no debe tener más de 70 caracteres de largo, por lo
    # que se debe usar la función "wordwrap", que recorta los caracteres a 60 y
    # realiza un retorno de carro.
    $mensaje   = $data . wordwrap(trim($_POST['mensaje']), 60, "\r\n");
    
    # Las cabeceras adicionales se agregan como cuarto parámetro, esto es
    # opcional a excepción del 'From', el cual es requerido por algunos servidores
    # de correo como 'Google Mail'.
    $cabeceras = 'From: ' . trim($_POST['correo']) . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    # Si el email no se envía se producirá una excepción que no se puede
    # capturar (por ejemplo un error de conexión), por lo que se usa el '@'
    # para deshabilitar dichos errores y así poder controlar mejor los
    # mensajes para el estado de envío del email.
    if (@mail($para, $titulo, $mensaje, $cabeceras))
        echo 'Correo enviado.';
    else
        echo 'No se pudo enviar el correo.';
?>