Enviar email con PHP y evitar que sea marcado como SPAM

08/08/2019 | PHP | 3 comentarios

Envía correo electrónico con PHP y servidores SMTP para evitar que tus correos sean marcados como SPAM.

Descargar archivos

Enviar correo es una de las tareas más comunes para cualquier proyecto web, por ejemplo para un formulario de contacto o para enviar la confirmación de una compra. El problema es que en muchos casos el correo no llega al destinatario o se detecta como spam.

Antecedentes

PHP ofrece un método sencillo para el envío de correos mail(), el problema es que este método utiliza el servidor de correo local, esto hace que en la mayoría de ocaciones los correos sean marcados como SPAM.

La manera correcta de enviar correos es mediante un servidor SMTP (Simple Mail Transfer Protocol) que implementa el protocolo correcto para el envío de emails. Puedes utilizar el servidor SMTP de tu servicio de Hosting, el servidor SMTP de Gmail u otro servicio especializado como Amazon SES.

PHPMailer

PHPMailer es un componente o librería PHP que permite enviar correos de forma sencilla y con muchas opciones de configuración. Empecemos agregando PHPMailer a nuestro proyecto utilizando Composer, para ello ejecutamos en línea de comandos:

composer require phpmailer/phpmailer

Esto descarga los archivos necesarios para el funcionamiento de PHPMailer y prepara el archivo autoload.php para que incluya automáticamente todos los archivos necesarios. Entonces creamos nuestro archivo para el envío de emails:

Para utilizar este código debes colocar los datos de tu servidor SMTP, usuario y clave. Luego vienen los datos del correo: asunto, destinatario y cuerpo del mensaje. Ten en cuenta que el remitente debe ser el mismo usuario del SMTP.

Utilizar PHPMailer con Gmail

Es posible utilizar el servidor SMTP de tu cuenta Gmail, pero con una configuración adicional. Por motivos de seguridad no se puede acceder desde servidores externos, pero se puede habilitar esta opción en: Less secure app access

Una vez activada esta opción ya puedes utilizar tu usuario y clave de Gmail y como servidor SMTP la dirección: smtp.gmail.com.

Consideraciones finales

Existe la posibilidad que los correos enviados con este método sea marcados como SPAM, esto puede ocurrir por las siguientes razones:

  • La dirección del remitente no coincide con el usuario del SMTP.
  • El servidor SMTP utilizado esta registrado en una lista negra de spammers.
  • El subject esta vacío o contiene palabras consideradas como spam.

Evita estos errores no tendrás problemas con el envío de correos.

Referencias

Comentarios

David 25/07/2020 10:26 pm

hola podria enviarme el codigo ya listo no se como usar composer solo utilizo sublime txt

kodetop 25/07/2020 11:57 pm

Hola David, lo ideal es que instales Composer para que puedas usar este y otros ejemplos, para ello puedes leer: Componentes PHP y como usarlos con Composer que contiene una guía para entender e instalar composer.

De todas maneras te adjunto el link de descarga que ya incluye las dependencias de composer para que lo puedas usar directamente:

https://www.kodetop.com/downloads/phpmailer-samples-vendors.zip

Samuel 22/08/2020 9:39 pm

Muchas gracias! me fue muy útil la información aquí publicada.

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>