¿Por qué no debería usar la función mail () de PHP?

La mayoría de las veces, la opinión general es no utilizar la función mail () predeterminada de PHP para enviar correos electrónicos.
En su lugar, use algunas bibliotecas donde tendrá mucha más flexibilidad y control sobre lo que está enviando.
Hay muchos encabezados que en realidad no son avanzados pero que no se incluyen como parte de la llamada estándar a mail(), por lo que resulta inconveniente para los desarrolladores integrarlos.

La función predeterminada es probablemente demasiado básica y no está realmente lista para admitir algunas de las características clave, como adjuntar un archivo o enviar HTML o usar Bcc / Cc.

Enviar correos electrónicos desde PHP tiene sus ventajas y desventajas.
Antes de concluir algo, primero comprendamos las principales desventajas de usar la función PHP mail () predeterminada para enviar correos electrónicos. Hay casos en los que el correo electrónico enviado a través de PHP mail () no fue recibido por el destinatario y tampoco obtendrá ningún error visual. La razón más común para esto es la siguiente:

  1. formato incorrecto del encabezado o contenido del correo (p. Ej., Diferencias en línea entre Windows / Unix)
  2. sendmail no está instalado o configurado en su servidor (php.ini): esta es una de las razones más comunes por las que los correos electrónicos no se entregan.
  3. el proveedor de alojamiento del remitente no permite los correos electrónicos enviados por correo PHP (); Esta es la política de protección contra correo no deseado más común que casi todos los proveedores de alojamiento agregan a su servidor. En esto, principalmente bloquean los [puertos SMTP 25, 587 y 465] salientes (https://pepipost.com/blog/25-465-587-2525-choose-the-right-smtp-port/)

Además, es una observación común que los correos electrónicos enviados a través de la función PHP mail () predeterminada tienen problemas con el formato del encabezado o el contenido que pueden causar serios problemas de spam.

En la mayoría de los casos, los correos electrónicos enviados a través de la función predeterminada tienden a aterrizar en la carpeta de correo no deseado del buzón de correo del destinatario o se envían de vuelta al remitente o simplemente se rechazan. GMX es el mejor ejemplo de un proveedor de correo gratuito que rechaza o elimina dichos correos electrónicos sin informar al destinatario. El correo PHP de la dirección apenas tiene sentido aquí.

Mientras que otros proveedores como Gmail, aceptan los correos electrónicos pero filtre los que se encuentran en la carpeta de correo no deseado.

De hecho, encontrará la siguiente nota en el manual oficial de PHP.net, que dice claramente que la función mail () no es adecuada para enviar una cantidad sustancial de correos electrónicos.

📘

Nota

Vale la pena señalar que la función mail () no es adecuada para grandes volúmenes de correo electrónico en bucle. Esta función abre y cierra un conector SMTP para cada correo electrónico, lo que no es muy eficiente.
Para el envío de grandes cantidades de correo electrónico, consulte los paquetes »PEAR :: Mail y» PEAR :: Mail_Queue.

No es solo la función mail () lo que importa mucho, sino también el servidor SMTP. Existen diferentes tipos de servidores SMTP. Sendmail es la mayoría de los predeterminados, pero hay un par de otros servidores SMTP de código abierto como Postfix, Gmail.

Postfix es definitivamente uno de los más fáciles de integrar, especialmente con la función de correo en PHP, pero la mayoría de las veces no lo encontrará como una implementación de un solo tipo, donde instaló postfix y simplemente comenzó a funcionar sin problemas.

🚧

Si está enviando correos electrónicos masivos, tenga cuidado con la dirección IP del servidor y la dirección de correo PHP 'de' utilizada, porque de manera predeterminada la función PHP mail () usa la IP y el nombre de host predeterminados del servidor como 'de'.

Es probable que surjan problemas comunes, como archivos adjuntos que se corrompen, correos electrónicos CCO / CC que no se reciben o se corrompen. Y, una vez que comience a agregar correcciones para todos estos, verá que comenzará a hacer que su código sea un poco complicado y lo hará incompatible para funcionar sin problemas con otros servidores SMTP.

Entonces, si realmente tiene tiempo para resolver todo esto, continúe con core mail (); función para enviar correos electrónicos, de lo contrario utilícelo para la biblioteca de envío de correo como [PHPMAILER] (https://pepipost.com/blog/sending-emails-smtp-phpmailer-pepipost/) que es de código abierto o simplemente cambie a un buen ESP (correo electrónico Proveedor de servicio).

  • Elegir un buen ESP y seguir las mejores prácticas de correo electrónico lo ayudará a proteger sus correos electrónicos del spam. *