Guías y tutoriales

Cientos de tutoriales y guías paso a paso cuidadosamente escritas por nuestro equipo de soporte.

PHPMailer

INTRODUCCIÓN

En algunos servidores no está disponible la función de PHP mail(). Esta función es cada vez más habitual que esté desactivada en los servidores, como medida de seguridad. Normalmente se desactiva por protección contra SPAM, mail spoofing y proxy mail server.
En caso de que cualquiera de las webs alojadas sea vulnerada por un usuario malintencionado se evitan los riesgos mencionados.

La librería de PHPMailer

La librería PHPMailer nos permite, entre otras funcionalidades, establecer una conexión SMTP con un servidor de correo. Este servidor SMTP será quién envíe realmente nuestro correo electrónico.

La web oficial del proyecto en GitHub contiene la documentación con las opciones de instalación y configuración. Enlace a Github: https://github.com/PHPMailer/PHPMailer

enter image description here

Crear cuenta de correo y obtener datos de conexión

Necesitaremos tener una cuenta de correo creada y los datos de conexión. Para este ejemplo necesitaremos: El servidor de correo saliente (Servidor SMTP), usuario y contraseña.

Manual cuenta de correo

Manual configuración en Outlook

Instalación de PHPMailer con composer

Es la opción más fácil y rápida para los usuarios que ya utilicen composer en su proyecto.
Añadir al fichero composer.json:

"phpmailer/phpmailer": "~6.1"

O directamente: composer require phpmailer/phpmailer

Hay un ejemplo completo de configuración en la página de Github.

Instalación manual de PHPMailer

1.- Descargar la librería de https://github.com/PHPMailer/PHPMailer, click al botón verde de “Clone or download” y “Download ZIP”

2.- Descomprimir el fichero descargado “PHPMailer-master.zip” y renombrar el directorio PHPMailer-master por PHPMailer

3.- Copiar el directorio PHPMailer dentro de nuestro proyecto.
Para verificar que las rutas son correctas, debería existir desde la raíz de nuestro proyecto: /PHPMailer/src/PHPMailer.php

##Ejemplo simple de configuración

1.- Guardar el siguiente código en un fichero ejemplo.php

<?php
// Mostrar errores PHP (Desactivar en producción)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Incluir la libreria PHPMailer
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

// Inicio
$mail = new PHPMailer(true);

try {
    // Configuracion SMTP
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                         // Mostrar salida (Desactivar en producción)
    $mail->isSMTP();                                               // Activar envio SMTP
    $mail->Host  = 'CONFIGURAR_SERVIDOR_SMTP';                     // Servidor SMTP
    $mail->SMTPAuth  = true;                                       // Identificacion SMTP
    $mail->Username  = 'CONFIGURAR_USUARIO_SMTP';                  // Usuario SMTP
    $mail->Password  = 'CONFIGURAR_CONTRASEÑA_SMTP';	          // Contraseña SMTP
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
    $mail->Port  = 587;
    $mail->setFrom('hola@prueba.com', 'Tu nombre');                // Remitente del correo

    // Destinatarios
    $mail->addAddress('prueba@midominio.com', 'Nombre del destinario');  // Email y nombre del destinatario

    // Contenido del correo
    $mail->isHTML(true);
    $mail->Subject = 'Asunto del correo';
    $mail->Body  = 'Contenido del correo <b>en HTML!</b>';
    $mail->AltBody = 'Contenido del correo en texto plano para los clientes de correo que no soporten HTML';
    $mail->send();
    echo 'El mensaje se ha enviado';
} catch (Exception $e) {
    echo "El mensaje no se ha enviado. Mailer Error: {$mail->ErrorInfo}";
}

2.- Modificar los parámetros de conexión, el e-mail del remitente y del destinatario donde enviáremos nuestro correo de prueba.

3.- Subir por FTP el directorio PHPMailer y el fichero ejemplo.php a la raíz del directorio público. Para nuestro caso: /datos/web

4.- Ejecutar el ejemplo desde http://tudominio.com/ejemplo.php
Nos mostrará el debug del proceso y si todo ha ido bien habremos recibido el correo electrónico. Si muestra algún error, ya sea de PHP o de conexión SMTP, deberemos depurar el origen del problema.

En producción recordad desactivar el debug de errores PHP y SMTP

Ejemplo para Wordpress

Para los que tengan una web con Wordpress será más fácil utilizar el plugin WP Mail SMTP
https://es.wordpress.org/plugins/wp-mail-smtp/

Manual específico para este caso en: https://www.swhosting.com/es/comunidad/manual/configurar-plugin-para-envio-de-correo-wp-mail-smtp-en-wordpress

Tu privacidad es importante para nosotros
Utilizamos cookies propias para el correcto funcionamiento del sitio. Además, se utilizan otras de terceros solo para fines analíticos. Esta información no se asocia a ninguna persona para que no se almacenen datos personales identificativos, sino que es solo una información que se recoge para identificar la sesión, con el objetivo de facilitar los análisis del sitio web. Puedes cambiar tus preferencias en cualquier momento entrando de nuevo en este sitio web. Para más información sobre nuestra política de cookies puedes visitar nuestra Información cookies. Puedes pulsar el botón "Aceptar y cerrar" para otorgarnos tu consentimiento o puedes acceder a información más detallada y administrar las cookies.
Tu privacidad es importante para nosotros
Utilizamos cookies propias para el correcto funcionamiento del sitio. Además, se utilizan otras de terceros solo para fines analíticos. Esta información no se asocia a ninguna persona para que no se almacenen datos personales identificativos, sino que es solo una información que se recoge para identificar la sesión, con el objetivo de facilitar los análisis del sitio web. Puedes cambiar tus preferencias en cualquier momento entrando de nuevo en este sitio web. Para más información sobre nuestra política de cookies puedes visitar nuestra Información cookies. Puedes pulsar el botón "Aceptar y cerrar" para otorgarnos tu consentimiento o puedes acceder a información más detallada y administrar las cookies.