Cómo enviar correos electrónicos PHP mail() y PHPMailer

Cómo enviar correos electrónicos PHP mail() y PHPMailer

La mayoría de las empresas crean una cuenta de correo electrónico profesional para aumentar su credibilidad y generar confianza en los clientes. Para ello, tienes que comprar un dominio y configurar el correo electrónico de tu empresa en un cliente de correo electrónico o en un servidor.

Si construyes tu sitio web o aplicación web con el lenguaje de programación PHP, puedes enviar correos electrónicos directamente desde tu servidor web. 

La funcionalidad de correo PHP te permite crear formularios de correo personalizados y enviar correos electrónicos básicos basados en texto a varios destinatarios.

Hay dos formas de enviar correos electrónicos en PHP: utilizando la función PHP mail() incorporada o una biblioteca de envío de correos como PHPMailer.

En este artículo, trataremos las diferencias entre PHPMailer y la función mail() y te mostraremos cómo enviar correos electrónicos con ambos.

Descarga Glosario Completo de Desarrollo Web

PHP mail es una función que envía correos electrónicos utilizando scripts PHP. La función PHP incorporada puede dirigirse a varios destinatarios por envío de correo electrónico. Sin embargo, no es adecuada para el envío masivo de correos electrónicos sin utilizar un paquete de correo PHP externo como PHPMailer.

PHPMailer vs mail(): ventajas y desventajas

PHP mail permite a los administradores de sitios web basados en PHP enviar correo desde su servidor web utilizando scripts PHP. Es una alternativa popular a contratar un servicio de alojamiento de correo electrónico de terceros, ya que la función PHP está integrada en el servidor web.

Enviar correos electrónicos en PHP es posible mediante la función nativa PHP mail() o un paquete de correo PHP externo como PHPMailer. Aquí tienes una breve descripción de cada método, incluyendo sus ventajas e inconvenientes:

Función PHP mail()

mail() es una función PHP que utiliza scripts PHP para enviar correos electrónicos sencillos. La función mail incluye tres parámetros obligatorios: $to, $subject y $message. Los parámetros opcionales a utilizar incluyen $headers y $parameters. Los trataremos con más detalle más adelante.

Esta función PHP integrada devuelve un valor booleano al ejecutarse: TRUE si el servidor recibe correctamente el correo electrónico para enviarlo o FALSE en caso de fallo.

Ventajas:

  • Preinstalado y listo para usar, todo lo que necesitas es tener PHP.
  • Compatible con versiones anteriores, un cambio de versión de PHP no romperá el script.
  • Fácil de aprender.

Desventajas:

  • Envía correos electrónicos utilizando un método anticuado sin soporte integrado para la autenticación moderna como SPF y DKIM.
  • A menudo cae en las carpetas de spam o correo basura debido a la falta de autenticación y a una configuración incorrecta.
  • Requiere una configuración compleja para SMTP, lo que aumenta la posibilidad de activar los filtros de spam.
  • No puede gestionar grandes volúmenes de correos electrónicos de forma eficaz.
  • Ofrece límites de envío más bajos y menos fiabilidad en comparación con PHPMailer.
  • Devuelve TRUE aunque el correo electrónico no llegue al destinatario.

¡Importante! Si eres usuario de Hostinger, ten en cuenta que los límites actuales para los correos electrónicos enviados mediante PHP mail() son 100/día y 10/minuto. Estos límites se restablecerán cada 24 horas y se consumirán inmediatamente si hay correos en cola.

PHPMailer

PHPMailer es una biblioteca popular de envío de correo que soporta el envío de correo a través de la función mail() o de un servidor SMTP. Da acceso a un conjunto de funciones para enviar correo, simplificando el proceso manual de configuración del correo en PHP.

Ventajas:

  • Envía correos electrónicos a través de una conexión segura con autenticación SPF y DKIM, mejorando la entrega en la bandeja de entrada.
  • Simplifica la configuración del correo electrónico y admite funciones avanzadas como cuerpos HTML y archivos adjuntos.
  • Admite SMTP con encriptación SSL y TLS integrada.
  • Gestiona grandes volúmenes de correo electrónico de forma eficaz en poco tiempo.

Desventajas:

  • Requiere instalación manual a través de SSH.
  • Incurre en costes adicionales en el plan de alojamiento web Single de Hostinger debido a la falta de acceso SSH.
  • Tiene una curva de aprendizaje más pronunciada que la función incorporada mail().

¡Importante! Si utilizas PHPMailer con Titan Mail en Hostinger, el límite de envío es de 1000 correos/día y 300 correos/hora. Para el servicio de correo electrónico de Hostinger, el límite es mayor: hasta 3000 correos/día sin límite horario. Comprueba los parámetros y límites de cada servicio, ya que varían en función de tu plan de alojamiento.

Cómo utilizar PHPMailer para enviar correos electrónicos

En esta sección, cubriremos los pasos para enviar correo utilizando PHPMailer. Recomendamos utilizar una conexión SMTP autenticada con PHPMailer para aumentar la entregabilidad de tus correos frente a los filtros de spam.

Instalación de PHPMailer

Instalar PHPMailer es bastante sencillo, sobre todo si utilizas Composer.

Ten en cuenta que los planes de alojamiento web Premium y Business de Hostinger y las opciones de alojamiento en la nube vienen preinstalados con dos versiones de Composer.

Utiliza el comando composer para activar la versión 1.10 de Composer. Si necesitas la nueva versión 2.0 o utilizas la versión PHP 8.0 o posterior, ejecuta el comando composer2.

¡Importante! Debes instalar PHPMailer utilizando Composer a través de SSH para que funcione correctamente. Añadir un archivo phpmailer.php con código SMTP, como veremos más adelante en esta guía, no funcionará sin una instalación adecuada.

Sigue estos pasos para instalar PHPMailer manualmente:

  1. Desde tu panel de control hPanel, ve a Avanzado → Acceso SSH y toma nota de la IP SSH, el puerto, el nombre de usuario y la contraseña en los detalles SSH.
  2. Abre PuTTY e introduce tu información SSH en los campos Nombre de host (o dirección IP) y Puerto. A continuación, haz clic en Abrir.
  3. Cuando aparezca una ventana de comandos, escribe tu nombre de usuario y contraseña SSH y pulsa Intro. Recuerda que PuTTY no mostrará la contraseña, así que no te sorprendas si no aparece en la pantalla.
  4. Ejecuta el siguiente comando para navegar hasta el directorio public_html:
cd public_html
  1. Ejecuta el siguiente comando para instalar PHPMailer:
composer2 require phpmailer/phpmailer
  1. Espera un momento hasta que finalice el proceso de instalación. Éste es el aspecto que debería tener:
Instalación de Composer

Consejo profesional

Aprende más sobre los comandos SSH que te ayudarán a gestionar tu servidor.

Comprender los componentes de PHPMailer

Para entender cómo funciona PHPMailer, repasemos cada componente del script anterior.

  • use PHPMailer\PHPMailer\PHPMailer; importa la clase PHPMailer al espacio de nombres global.
  • require ‘../vendor/autoload.php’; incluye varias bibliotecas que PHPMailer necesita.
  • $mail = new PHPMailer; crea un nuevo objeto PHPMailer.
  • $mail->isSMTP(); indica a la clase PHPMailer que utilice la configuración SMTP personalizada definida en el script en lugar del servidor de correo local.
  • $mail->SMTPDebug = 2; detecta si algo va mal en la conexión SMTP.
  • $mail->Host = ‘smtp.hostinger.com’; aquí es donde se debe especificar la dirección del servidor SMTP.
  • $mail->Puerto = 587; establece aquí el puerto SMTP. Elegiremos el puerto SMTP 587 como puerto de envío de correo por defecto para todos los tipos de transmisión de datos SMTP.
  • $mail->SMTPAuth = true; activa la autenticación SMTP.
  • $mail->Username = ‘micorreo@midominio.tld’; especifica aquí tu dirección de correo electrónico.
  • $mail->Password = ‘Mi$tr0ngPa55w0rd!; introduce aquí tu contraseña de correo electrónico.
  • $mail->setFrom(‘micorreo@midominio.tld’, ‘Tu nombre’); aquí es donde se inserta la dirección de correo electrónico del remitente.
  • $mail->addReplyTo(‘micorreo@midominio.tld’, ‘Tu nombre’); informa al destinatario a qué dirección debe responder.
  • $mail->addAddress(‘destinatario@dominio.tld’, ‘Nombre del destinatario’); inserta aquí la dirección del destinatario.
  • $mail->Subject = ‘Comprobando si PHPMailer funciona’; añade aquí el asunto del correo electrónico.
  • $mail->msgHTML(file_get_contents(‘mensaje.html’), __DIR__); lee un cuerpo de mensaje HTML de un archivo externo. La función file_get_contents() cargará el contenido de message.html, un archivo local ubicado en el directorio public_html, y lo incluirá en el mensaje.
  • $mail->Body = ‘Esto es sólo el cuerpo del mensaje en texto plano’; contiene el cuerpo del mensaje de correo.
  • //$mail->addAttachment(‘adjunto.txt’); si quieres incluir adjuntos, añade los nombres de los archivos y elimina la doble barra de esta declaración.
  • if (!$mail->send()) { define lo que ocurre cuando se ejecuta el script.
  • echo ‘Error de Mailer:’. $mail->ErrorInfo; verás un mensaje de error y los detalles del error si el script falla en el envío.
  • } else { amplía la sentencia if y describe lo que ocurre si no se cumple la condición anterior.
  • echo ‘¡El mensaje de correo electrónico se ha enviado!’; significa que el proceso de envío del correo electrónico se ha realizado correctamente.

Consejo profesional

La línea SMTPDebug = 2; sólo es aplicable cuando pruebas un script y quieres ver cómo funciona. Recuerda cambiarla a SMTPDebug = 0; cuando termines la prueba para evitar que los receptores capten el informe de entrega del protocolo SMTP.

Usar PHPMailer con Hostinger SMTP

Después de instalar PHPMailer, puedes empezar a enviar correos electrónicos en PHP. Esta sección te mostrará cómo enviar correos electrónicos a través del servidor SMTP de Hostinger utilizando PHPMailer.

Para ello, sigue los pasos que se indican a continuación:

  1. Crea una cuenta de correo electrónico accediendo a hPanel y, a continuación, ve a Emails → Cuentas de correo electrónico → Crear cuenta de correo electrónico.
  2. Rellena la nueva dirección de correo electrónico y establece una contraseña. A continuación, haz clic en Crear. Recuerda esta información, ya que la utilizarás para enviar correo a través de PHPMailer.
  3. Desde la misma página, ve a Ajustes de configuración → Configuración manual y toma nota del Puerto SMTP y del Nombre de host.
  4. Accede al panel de control de hPanel y navega hasta Archivos → Administrador de Archivos. Haz clic en la carpeta public_html y selecciona Añadir nuevo para crear un nuevo archivo. Nombra el archivo phpmailer.php y haz clic en Crear.
  5. Haz doble clic en el archivo phpmailer.php, y copia y pega el código que aparece a continuación después de realizar todos los cambios necesarios. Asegúrate de sustituir micorreo@midominio.tld y destinatario@midominio.tld por tu dominio actual y My$tr0ngPa55w0rd! por la contraseña de tu cuenta de correo electrónico.
<?php
require 'vendor/autoload.php';
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 2;
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'micorreo@midominio.tld';
$mail->Password = 'My$tr0ngPa55w0rd!';
$mail->setFrom('micorreo@midominio.tld', 'tu nombre');
$mail->addReplyTo('micorreo@midominio.tld', 'tu nombre');
$mail->addAddress(destinatario@dominio.tld', 'nombre destinatario');
$mail->Subject = 'Comprobando si PHPMailer funciona';
$mail->msgHTML(file_get_contents('message.html'), __DIR__);
$mail->Body = 'Esto es sólo el cuerpo del mensaje en texto plano';
//$mail->addAttachment('attachment.txt');
if (!$mail->send()) {
echo 'Mailer Error:'. $mail->ErrorInfo;
} else {
echo '¡El mensaje de correo electrónico se ha enviado!';
}
?>
  1. Después de editar el código, haz clic en Guardar y Cerrar. Para ejecutar el script, introduce sudominio.tld/phpmailer.php en tu navegador web.

Consejo profesional

Si utilizas Titan Mail, conéctate a través del puerto 465 (SSL) o 587 (STARTTLS). Visita Emails → Configurar Desktop App para ver los detalles de configuración de cuenta de correo electrónico.

Crear un formulario de contacto PHPMailer

Además de enviar correo PHP simple, PHPMailer permite a los usuarios crear varios formularios de contacto, como encuestas de opinión.

Al igual que los scripts PHP anteriores, crea un nuevo archivo PHP en la carpeta public_html y llámalo formscript.php

Copia y pega el script que aparece a continuación en el nuevo archivo y modifica los valores en consecuencia:

<?php
use PHPMailer\PHPMailer\PHPMailer;
$msg = '';
if (array_key_exists('email', $_POST)) {
require 'vendor/autoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.hostinger.com';
$mail->Port = 587;
$mail->SMTPDebug = 0;
$mail->SMTPAuth = true;
$mail->Username = 'micorreo@midominio.tld';
$mail->Password = 'My$tr0ngPa55w0rd!';
$mail->setFrom('micorreo@midominio.tld', 'Mr. Snuffles');
$mail->addAddress(destinatario@dominio.tld', 'nombre destinatario');
if ($mail->addReplyTo($_POST['email'], $_POST['name'])) {
$mail->Subject = 'PHPMailer contact form';
$mail->isHTML(false);
$mail->Body = <<<EOT
Email: {$_POST['email']}
Name: {$_POST['name']}
Message: {$_POST['message']}
EOT;
if (!$mail->send()) {
$msg = 'Sorry, something went wrong. Please try again later.';
} else {
$msg = 'Message sent! Thanks for contacting us.';
}
} else {
$msg = 'Share it with us!';
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact form</title>
</head>
<body>
<h1>Contact us</h1>
<?php if (!empty($msg)) {
echo "<h2>$msg</h2>";
} ?>
<form method="POST">
<label for="name">Name: <input type="text" name="name" id="name"></label><br>
<label for="email">Email address: <input type="email" name="email" id="email"></label><br>
<label for="message">Message: <textarea name="message" id="message" rows="8" cols="20"></textarea></label><br>
<input type="submit" value="Send">
</form>
</body>
</html>

Consejo profesional

Tomar la entrada del usuario de $_POST y utilizarla sin sanear no es seguro debido a los ataques de cross-site scripting (XSS).

Guarda los cambios y ejecuta el script desde tu navegador.

He aquí cómo será el resultado:

Ejemplo de formulario de contacto

Si un visitante envía un mensaje a través del formulario, recibirá una confirmación. El contenido del formulario se enviará a la dirección de correo electrónico que hayas introducido aquí:

$mail-&gt;addAddress('destinatario@dominio.tld', 'Nombre destinatario');

Consejo profesional

Si el formulario de contacto de PHPMailer no funciona, cambia la línea $mail->SMTPDebug = 0; por $mail->SMTPDebug = 2 para identificar la causa. No olvides eliminar la línea o cambiar el 2 por 0 después.

Si eres usuario de WordPress, puedes agilizar el proceso de creación de formularios utilizando un plugin de formulario de contacto como Formidable Forms, Contact Form 7 o WPForms.

Cómo enviar correos electrónicos utilizando la función PHP mail()

Otro método para enviar correos electrónicos directamente desde PHP es la función incorporada mail()

Para utilizar esta función, los usuarios que alojen su aplicación o sitio PHP en un servidor local deben configurar un programa Sendmail cambiando el archivo php.ini de su carpeta de instalación de PHP.

Si utilizas un servidor de alojamiento, Sendmail suele venir ya preconfigurado. Sin embargo, debes asegurarte de que tu proveedor de alojamiento te permite gestionar manualmente la opción de servicio Sendmail.

Por defecto, el servicio Sendmail ya está activado. No obstante, vuelve a comprobarlo para estar seguro.

¡Importante! Titan Mail activa la función PHP mail() por defecto. Por lo tanto, no puedes activarla o desactivarla en hPanel.

Comprender los componentes de correo PHP

Para ayudarte a entender la función PHP mail(), revisaremos los componentes del script PHP utilizado en la sección anterior.

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

Las dos primeras líneas de arriba activan el informe de errores para informarte si el script PHP ha fallado al ejecutarse.

$from = "micorreo@midominio.tld";

Esta línea contiene la dirección de correo electrónico del remitente. La mayoría de los proveedores de alojamiento prohíben añadir aquí direcciones de correo electrónico aleatorias debido al riesgo de suplantación. 

Por tanto, es mejor utilizar una con tu nombre de dominio para ejecutar el script con éxito.

$to = "micorreo@midominio.tld";

La dirección de correo electrónico del destinatario va aquí. Separa las direcciones de correo electrónico con comas si quieres enviar varios correos.

$subject = "Comprobando correo PHP";

Introduce aquí el asunto del correo electrónico.

$message = "El correo PHP funciona perfectamente";

Aquí, introduce el cuerpo de tu mensaje de correo electrónico.

$headers = "De:" . $from;

Esta línea suele incluir cabeceras adicionales como De, Responder-a y CC. Puedes separarlos con el CRLF.

if (mail ($to,$subject,$message,$headers))

Este script ejecuta la función mail() y comprueba si se ha ejecutado correctamente.

echo "Se ha enviado el mensaje de correo electrónico";

El mensaje anterior aparecerá si la función mail() se ejecuta correctamente.

echo "El mensaje de correo electrónico no se ha enviado";

Alternativamente, verás este mensaje si falla la función mail().

Aunque las cabeceras adicionales son opcionales, es esencial incluir la cabecera “De” al enviar correo. De lo contrario, recibirás una notificación como ésta:

Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing.

Crear un archivo de prueba para el correo PHP

Después de asegurarte de que Sendmail está activo, crea un archivo de correo PHP dentro del directorio public_html.

He aquí cómo hacerlo:

  1. Desde hPanel, navega a Archivos Administrador de archivos para acceder al Administrador de archivos de Hostinger.
  2. Haz doble clic en la carpeta public_html y selecciona el icono Nuevo archivo de la parte superior. Nombra este nuevo archivo testmail.php y pulsa Crear.
  3. Haz doble clic en testmail.php para editarlo. Puedes utilizar el código PHP básico que aparece a continuación, pero cambiando los parámetros en consecuencia. Describiremos los componentes del script con más detalle en la siguiente subsección:
  4. Haz clic en Guardar y cerrar cuando hayas terminado.
  5. Envía el correo electrónico accediendo a tudominio/testmail.php desde tu navegador web. Recuerda cambiar “tudominio” por el dominio utilizado al crear testmail.php.

Enviar correos HTML con PHP

La función PHP mail() también puede enviar mensajes de correo electrónico HTML. Este formato es muy personalizable en comparación con un mensaje de texto plano.

El proceso para enviar correo HTML es el mismo, pero esta vez debes incluir un mensaje HTML y cabeceras de parámetros adicionales.

Aquí tienes un ejemplo de script básico para enviar un correo electrónico HTML:

<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$from = "micorreo@midominio.tld";
$to = "destinatario@dominio.tld";
$subject = "Comprobando PHP mail";
$message = "
<html>
<head>
<title>This is a test HTML email</title>
</head>
<body>
<p>Hi, it's a test email. Please ignore.</p>
</body>
</html>
";
// The content-type header must be set when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers = "From:" . $from;
if(mail($to,$subject,$message, $headers)) {
echo "Message was sent.";
} else {
echo "Message was not sent.";
}
?>

Cómo solucionar errores comunes de PHP mail y PHPMailer

En la siguiente sección, revisaremos algunos de los problemas más comunes al utilizar la función PHP mail() o PHPMailer y cómo solucionarlos.

Dirección del remitente rechazada: no es propiedad del usuario

Este error significa que el servidor no ha podido autentificar al remitente con los datos facilitados. 

Para solucionarlo, comprueba la dirección de correo electrónico que has utilizado para enviar el mensaje y asegúrate de que corresponde a una existente.

Además, asegúrate de que tu Sender Policy Framework (SPF) está activado. 

Si utilizas Hostinger, comprueba tu registro SPF accediendo a hPanel y navegando hasta Emails Cuentas de correo electrónico Configuración DNS Gestionar la entrega de correo electrónico.

Si el registro SPF está activado, aparecerá como Activo.

Gmail no pudo verificar que domain.tld enviará este mensaje

Si ves esta advertencia al probar un script de correo PHP, la causa puede ser una de las siguientes:

  • No hay ningún registro SPF en la Zona DNS del dominio: si falta el registro o utilizas servidores de nombres externos, añade manualmente un nuevo registro SPF TXT a través de hPanel o cPanel.
  • Has utilizado datos de autenticación SMTP no válidos: asegúrate de utilizar una dirección de correo electrónico existente que te pertenezca.

El correo va a la carpeta de spam

Hay varias razones por las que el correo PHP puede activar los filtros de spam. Algunas de las causas más comunes son:

  • Asunto engañoso o parecido al spam: suele ocurrir cuando se utilizan términos como “prueba” o “urgente”. Asegúrate de establecer una intención clara en la línea de Asunto.
  • Dirección del remitente incorrecta: añadir una dirección incorrecta puede hacer que las medidas de seguridad filtren tu correo electrónico para evitar suplantaciones y estafas.
  • Utilización de palabras desencadenantes de spam: elimina de tu mensaje palabras spam como “una gran oferta” y “esto no es spam” para aumentar la credibilidad de tu correo electrónico.
  • Tu lista de correo no tiene un enlace para darse de baja: asegúrate de incluir un botón de baja para evitar este problema y fomentar la confianza de los lectores.

No se ha podido conectar con el host SMTP

Las versiones más recientes de PHP suelen tener un comportamiento SSL más estricto. Si la función PHP mail() no se ejecuta después de actualizar tu PHP a la última versión, ésta podría ser la causa.

El uso de PHPMailer con algunos proveedores de alojamiento también suele provocar este error de código.

Por ejemplo, según la wiki de PHPMailer, GoDaddy bloquea las conexiones SMTP salientes a través de los puertos 25, 465 y 587 a servidores de terceros como Gmail y Hotmail, excepto los suyos propios. Además, no admite la integración con servidores SMTP de terceros.

Utiliza el siguiente script para resolver este error:

$mail-> SMTPOptions = array(
$mail->SMTPOptions = array( 
'ssl' => array( 
'verify_peer' => false, 
'verify_peer_name' => false, 
'allow_self_signed' => true 
) 
);

¡Importante! Evita implementar estos cambios globalmente en php.ini, ya que hacerlo permite conexiones inseguras, un problema de seguridad que PHP ha solucionado desde la versión 5.6.

Como el SMTP de Hostinger no tiene este problema, considera la posibilidad de migrar a nuestro servicio de correo electrónico empresarial para una mejor experiencia de envío.

Conclusión

Puedes enviar correos electrónicos con PHP utilizando la función mail() o una biblioteca de envío de correos como PHPMailer. 

La primera es adecuada para enviar pequeños volúmenes de mensajes sencillos basados en texto, mientras que la segunda es mejor para enviar correos masivos o crear formularios de contacto.

Puedes aprovechar la función de correo PHP incorporada creando un nuevo archivo PHP en el directorio public_html y ejecutando el script mediante tu navegador web.

Por otro lado, enviar correos electrónicos con PHPMailer requiere instalar la biblioteca de código a través de Composer, crear una cuenta de correo electrónico para ella y configurar los ajustes SMTP de tu alojamiento.

En este tutorial, cubrimos la instalación de PHPMailer, la creación de un script de prueba y la configuración de un sencillo formulario de contacto. 

También vimos el envío de correos electrónicos con la función PHP mail() y la resolución de errores comunes durante el proceso de envío de correos electrónicos.

Esperamos que este tutorial te haya resultado útil. Si tienes más preguntas, déjalas en la sección de comentarios más abajo.

Enviar correos con PHP – Preguntas frecuentes

Esta sección cubre algunas de las preguntas más comunes sobre enviar un email con php. 

¿Puedo enviar correos electrónicos desde PHPMailer a Gmail u otros servicios de correo electrónico?

Depende de tu proveedor de alojamiento. Con GoDaddy, no puedes enviar correo a bandejas de entrada que implementan los protocolos de autenticación de correo SPF y DKIM, como Gmail, Yahoo y Hotmail. 

Sin embargo, este problema no persiste con Hostinger. Ponte en contacto con tu proveedor de alojamiento web para aclarar su configuración SMTP y si admite PHP Mailer con servidores SMTP de terceros.

¿Cómo puedo validar las direcciones de correo electrónico antes de utilizar la función PHP mail() o PHPMailer para enviar correos electrónicos?

Puedes utilizar la función filter_var() y pasar la dirección de correo electrónico al filtro FILTER_VALIDATE_EMAIL

Este filtro verificará la validez del correo electrónico, asegurándose de que no contiene caracteres no admitidos ni espacios en blanco.

Author
El autor

Gustavo B.

Gustavo es un apasionado por la creación de sitios web. Se enfoca en la aplicación de estrategias SEO en Hostinger para España y Latinoamérica, así como la creación de contenidos de alto nivel. Cuando no está aplicando nuevos trucos en WordPress lo puedes encontrar tocando la guitarra, viajando o tomando un curso online.