PHPMailer — Instalación en un Servidor VPS o Dedicado

Generalidades

PHPMailer te permite enviar correos desde tu sitio a través de SMTP. Visita la página de GitHub de PHPMailer para obtener más detalles sobre lo que tiene para ofrecer.

Este artículo explica cómo instalar PHPMailer en un Servidor VPS o Dedicado usando Composer. Si tu sitio web está en un servidor compartido, consulta el siguiente artículo.

Instalar PHPMailer usando Composer

La manera recomendada para instalar PHPMailer es por medio de composer en un Servidor VPS o Dedicado.

  1. Mira el siguiente artículo para configurar composer en tu servidor DreamHost:
  2. Una vez composer es configurado, navega al directorio donde deseas instalar PHPMailer.
  3. En ese directorio, instala PHPMailer ejecutando el siguiente comando:
    [server]$ composer require phpmailer/phpmailer

    Esto instala PHPMailer en un folder llamado /vendor en el directorio en el que ejecutaste el comando.

Ejemplo de código basico para correo alojado en DreamHost

Inserta el siguiente código en un archivo PHP.

Solo necesitas actualizar el código en negrilla.

nombredeusuario — Asegurate de cambiar el campo 'username' a tu actual nombre de usuario Shell.

Ruta para el archivo autoload.php — Esta es la ruta completa al archivo autoload.php. Esto es diferente dependiendo de dónde instaló PHPMailer. Asegúrate de cambiar esta ruta a la ubicación donde instalaste PHPMailer.

Host — si estás enviando desde una dirección de DreamHost, debes usar únicamente smtp.dreamhost.com. Si estás usando una dirección de Gmail, usa smtp.gmail.com.

UsernamesetFrom ambos deben ser un correo electrónico en el dominio desde el que estás enviando.

<?php
// Import PHPMailer classes into the global namespace
// These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

//Load composer's autoloader
require '/home/username/vendor/autoload.php';

$mail = new PHPMailer(true);                              // Passing `true` enables exceptions
try {
    //Server settings
    $mail->SMTPDebug = 2;                                 // Enable verbose debug output
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.dreamhost.com';                  // Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'user@example.com';                // SMTP username
    $mail->Password = 'secret';                           // SMTP password
    $mail->SMTPSecure = 'ssl';                            // Enable SSL encryption, TLS also accepted with port 587
    $mail->Port = 465;                                    // TCP port to connect to

    //Recipients
    $mail->setFrom('user@example.com', 'Mailer');
    $mail->addAddress('joe@example.net', 'Joe User');     // Add a recipient
    //$mail->addAddress('contact@example.com');               // Name is optional
    //$mail->addReplyTo('info@example.com', 'Information');
    //$mail->addCC('cc@example.com');
    //$mail->addBCC('bcc@example.com');

    //Attachments
    //$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
    //$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name

    //Content
    $mail->isHTML(true);                                  // Set email format to HTML
    $mail->Subject = 'Subject line goes here';
    $mail->Body    = 'Body text goes here';
    //$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
}
?>

Se recomienda utilizar el puerto 465 con SSL como se muestra arriba.

Opcionalmente, puedes usar el puerto 587 con TLS.

Permitir que GMAIL envíe desde tu aplicación de correo

Si estás usando tu dirección de GMAIL para enviar a través de SMTP, primero debes permitir que tu aplicación acceda a tu dirección de GMAIL. Si no haces esto, tu correo no se autenticará y no se enviará. Mira el siguiente artículo para más detalles:

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?