Generalidades
Este artículo explica cómo instalar PHPMailer en un VPS o Servidor Dedicado utilizando Composer, lo que te permite enviar correos desde tu sitio a través de SMTP. Visita la página de GitHub de PHPMailer para obtener más información sobre sus funciones.
Revisa este artículo si deseas instalar PHPMailer en un sitio web alojado en un servidor compartido.
Instalar PHPMailer
La manera recomendada de instalar PHPMailer es a través de Composer en un VPS o un Servidor Dedicado.
- Consulta este artículo para configurar Composer en tu servidor DreamHost.
- Navega al directorio donde deseas instalar PHPMailer.
- Instala PHPMailer usando el comando composer:
[server]$ composer require phpmailer/phpmailer
Esto instala PHPMailer en una carpeta llamada /vendor en el directorio donde se ejecutó el comando
Crear un script de correo
Esta sección proporciona un script simple para usar PHPMailer con un correo de DreamHost.
Crear un archivo PHP
Crea un archivo PHP nuevo y asígnale un nombre como phpmail.php. Puede tener cualquier nombre y ubicarse en cualquier directorio.
Agregar código al archivo
Inserta el siguiente código en el archivo PHP. Por favor ten en cuenta lo siguiente al editar el ejemplo de código:
- Solo necesitas actualizar el código resaltado.
- username — Asegúrate de cambiar el campo 'username' por tu usuario de shell. Luego, agrega la ruta completa al directorio vendor que creaste en el paso #2 anterior.
- Ruta al archivo autoload.php — Esta es la ruta completa al archivo autoload.php. Esto varía según dónde hayas instalado PHPMailer. Asegúrate de cambiar esta ruta a la ubicación donde instalaste PHPMailer.
- Host — Si envías desde una dirección DreamHost, solo debes usar smtp.dreamhost.com. Si usas una dirección de Gmail, usa smtp.gmail.com.
- Username y setFrom deben ser un correo del 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/path-to-vendor-dir/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 = 'tls'; $mail->Port = 587; // 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; }
?>
Probar el archivo
Ejecuta el archivo. Esto envía un correo a la dirección de destinatario que agregaste al campo addAddress.
[server]$ php phpmail.php
Usar PHPMailer en un formulario de contacto
El código anterior es un ejemplo simple que envía un correo cuando se ejecuta el script. La mayoría de las veces, se utiliza un formulario de contacto para enviar el correo. Revisa el siguiente enlace para ver un ejemplo de uso de PHPMailer en un formulario de contacto.
Permitir que GMAIL envíe desde tu aplicación de correo
Si usas tu dirección de GMAIL para enviar mensajes a través de SMTP, primero debes permitir que tu aplicación acceda a la dirección de GMAIL. Si no lo haces, tu correo no se autenticará y no se enviará. Revisa este artículo para obtener más detalles.
Ver también
Enlaces de DreamHost
- Generalidades sobre SSH
- Generalidades sobre la instalación de Composer
- Enviar correo PHP vía SMTP
- Solucionando problemas de PHP mail()
- Límites de cuota de SMTP
Enlaces de terceros
- PHPMAILER tutorial – Google code
- PHPMailer examples