# Correo

Se pueden enviar correos electrónicos mediante PHPPHP dispone de una función para enviar correos electrónicos, aunque también existen paquetes que facilitan esta tarea. Para ello hace falta utilizar

## Configuración de PHP

Para enviar correos hace falta tener instalado un servidor SMTP en el ordenador, o bien utilizar el servidor del proveedor de Internet que utilicemos normalmente.

En php.ini debe

    [mail function]
    ; For Win32 only.
    SMTP = servidor_de_salida (por ejemplo: smtp.example.com o localhost)
    smtp_port = 25

    ; For Win32 only.
    sendmail_from = dirección_de_correo (por ejemplo: correo@example.com)

Volver al principio de la página

## Función mail()

La función mail($para, $asunto, $mensaje[, $cabeceras[, $parametros]]) permite enviar correos desde cualquier página PHP. Los argumentos de esta función son los siguientes:

- $para contiene la dirección de correo a la que se envía el correo,
- $asunto contiene el campo asunto del correo enviado
- $mensaje contiene el cuerpo del correo enviado
- $cabeceras contiene las cabeceras opcionales que se quieran incluir en el correo. Cada cabecera debe terminar con los caracteres \r\n y se pueden concatenar varias cabeceras, por ejemplo:
  - $cabecera = "From: Pepito Conejo <pepito.conejo@example.org>\r\n";

    Si se incluye, esta cabecera sustituye la directiva sendmail_ini del archivo php.ini.

  - $cabeceras .= "To: Jaimito Zanahoria\r\n";

    Si se incluye, esta cabecera sustituye al valor del argumento $para

  - $cabeceras .= "MIME-Version: 1.0\r\n";

    Esta cabecera es necesaria si se incluyen archivos adjuntos o en formato html

  - $cabeceras .= "Content-type: text/html; charset=iso-8859-1\r\n";

    Esta cabecera es necesaria si se incluyen archivos adjuntos o en formato html

Un ejemplo mínimo de correo es el siguiente:

    <?php
    mail("destino@example.com","Prueba","A ver si te llega esto");
    ?>

Volver al principio de la página

## PHPMailer

PHPMailer es un paquete que facilita la creación y envío de correo.

En cualquier página:

    <?php
    require("class.phpmailer.php");

    $correo = new PHPMailer();
    $correo->IsSMTP(); // telling the class to use SMTP
    $correo->Host = "smtp.proveedor.com"; // SMTP server
    $correo->Port = 25;
    $correo->From = "midireccion@proveedor.com";
    $correo->FromName = "Yo mismo";
    $correo->AddAddress("destino@mejemplo.com");
    $correo->Subject = "Prueba de correo";
    $correo->Body = "Hola\n\n¿Qué te parece este correo?";
    $correo->WordWrap = 50;

    if(!$correo->Send()) {
        print "Mensaje no enviado.";
        print "Error de correo: ".$correo->ErrorInfo;
    } else {
        print "Mensaje envíado.";
    }
    ?>

Volver al principio de la página

Esta obra está bajo una licencia de Creative Commons Reconocimiento-CompartirIgual 3.0 España.