Navegador

Tamaño de Fuente

 
 

Login

 

Envío de correo desde scripts PHP

El envío de correo desde páginas en PHP en el servicio de programación web ha de hacerse con autenticación y con las siguientes particularidades:

  • El servidor de envío de correo debe configurarse como smtp.ugr.es.
  • Se deben indicar el nombre de usuario y la contraseña de una cuenta válida UGR para la autenticación. No es posible utilizar alias de correo.
  • El puerto de envío es el 587.
  • Se recomienda cifrar la comunicación con el servidor de correo con TLS/SSL, por motivos de seguridad.

Si el script PHP que realiza el envío de correo lo desarrolla usted mismo, observará que la función básica de PHP para el envío de correo, la función mail no soporta autenticación. Por tanto, es necesario utilizar algún paquete adicional. Ejemplos de herramientas que permiten hacer esto son PHPMailer o el paquete Mail de PEAR, entre otros. En particular, el uso con PHPMailer es como el que describe a continuación:

<?php
    // Especificar correctamente el path al archivo class.phpmailer.php
    require_once('../PHPMailer_v5.0.2/class.phpmailer.php');

    $mail             = new PHPMailer();

    $body             = "Prueba de envio"; // Cuerpo del mensaje
    $mail->IsSMTP(); // Usar SMTP para enviar
    $mail->SMTPDebug  = 0; // habilita información de depuración SMTP (para pruebas)
                           // 1 = errores y mensajes
                           // 2 = sólo mensajes
    $mail->SMTPAuth   = true; // habilitar autenticación SMTP
    $mail->Host       = "smtp.ugr.es"; // establece el servidor SMTP
    $mail->Port       = 587; // configura el puerto SMTP utilizado
    $mail->SMTPSecure = "tls";
    $mail->Username   = "usuario"; // nombre de usuario UGR
    $mail->Password   = "contraseña"; // contraseña del usuario UGR
 
    $mail->SetFrom('usuario', 'Nombre y Apellidos, etc.');
    $mail->Subject    = "Asunto del mensaje";
    $mail->MsgHTML($body); // Fija el cuerpo del mensaje

    $address = "destinatario@dominio"; // Dirección del destinatario
    $mail->AddAddress($address, "Nombre del destinatario");

    if(!$mail->Send()) {
        echo "Error: " . $mail->ErrorInfo;
    }
    else {
        echo "¡Mensaje enviado!";
    }
?>

Otros ejemplos más avanzados (envío de datos adjuntos, etc.) pueden encontrarse en los archivos incluidos en la distribución de PHPMailer.

Si, por el contrario, utiliza una aplicación en PHP de terceros (por ejemplo, un CMS como Drupal, Joomla!, Wordpress o Moodle), consulte por favor la documentación del software en cuestión para configurar correctamente el envío de correo de acuerdo con las instrucciones citadas al comienzo de esta página.

 

Disclaimer: "Google translator" is showed in the upper part of the site in order to help to translate into other languages. CSIRC is not responsible for its quality.

tfno: 958 241 010 * fax: 958 244 221 * email: csirc@ugr.es
Politica de Privacidad