Generalidades
PHPMailer te permite enviar correos electrónicos 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.
- Ve el siguiente artículo para configurar composer en tu servidor DreamHost:
- Una vez composer es configurado, navega al directorio donde deseas instalar PHPMailer.
- 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 electrónico 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.
Username y setFrom ambos deben ser un correo electrónico en el dominio desde el que estás enviando.
<?php // Importar clases PHPMailer en el espacio de nombres global // Deben estar en la parte superior de su script, no dentro de una función use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; // Cargar el cargador automático del compositor require '/home/nobredeusuario/vendor/autoload.php'; $mail = new PHPMailer(true); // Pasar `true` habilita excepciones try { // Configuraciones del servidor $mail->SMTPDebug = 2; // Habilitar salida de depuración detallada $mail->isSMTP(); // Configurar el remitente para usar SMTP $mail->Host = 'smtp.dreamhost.com'; // Especificar servidores SMTP principales y de respaldo $mail->SMTPAuth = true; // Habilitar autenticación SMTP $mail->Username = 'usuario@example.com'; // Nombre de usuario SMTP $mail->Password = 'secreto'; // Contraseña SMTP $mail->SMTPSecure = 'ssl'; // Habilitar enciptación SSL, TLS también aceptado con el puerto 587 $mail->Port = 465; // Puerto TCP para conectarse //Destinatarios $mail->setFrom('usuario@example.com', 'Mailer'); $mail->addAddress('joe@example.net', 'Juan Usuario'); // Agregar un destinatario //$mail->addAddress('contacto@example.com'); // Nombre es opcional //$mail->addReplyTo('info@example.com', 'Información'); //$mail->addCC('cc@example.com'); //$mail->addBCC('bcc@example.com'); //Archivos adjuntos //$mail->addAttachment('/var/tmp/archivo.tar.gz'); // Añadir archivos adjuntos //$mail->addAttachment('/tmp/imagen.jpg', 'nuevo.jpg'); // Nombre es opcional //Contenido $mail->isHTML(true); // Establecer formato de correo electrónico a HTML $mail->Subject = 'La línea de asunto va aquí'; $mail->Body = 'El texto del cuerpo va aquí'; //$mail->AltBody = 'Este es el cuerpo en texto plano para clientes de correo no HTML'; $mail->send(); echo 'El mensaje ha sido enviado'; } catch (Exception $e) { echo 'El mensaje no pudo ser enviado.'; echo 'Error de correo: ' . $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 utilizando 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 electrónico no se autenticará y no se enviará. Ve el siguiente artículo para más detalles:
Ver también
Enlaces internos
- Generalidaes sobre SSH
- Generalidades sobre PHP mail()
- ¿Cómo envío un coreo PHP a tráves SMTP?
- Solucionando problemas de PHP mail()
- Límites de cuota de SMTP
Enlaces externos
- PHPMAILER tutorial – Código de Google