PHP y msmtp

La mayoría de ISP bloquean el puerto 25 para “evitar” que computadoras infectadas envien SPAM. Este era mi caso por lo que me era imposible probar los correos que enviaba mediante PHP hasta subirlos a mi servidor de pruebas.

Recientemente me encontré con msmtp que es básicamente un cliente SMTP que funciona como proxy para enviar correo mediante otro servidor.
Para instalar msmtp en mi caso debian solo se necesita:

apt-get install msmtp msmtp-mta

Para configurarlo basta crear el archivo /etc/msmtprc con la configuración correspondiente, por ejemplo en mi caso fue:

defaults
tls on
tls_certcheck off

account danguer.com
host mail.danguer.com
port 999
from monitor@danguer.com
auth on
user monitor@danguer.com
password password_cuenta

account default: danguer.com

Lo que dice la configuración es que básicamente utilizará TLS (para mayor seguridad, además de que mi servidor lo requiere).
Creamos una cuenta llamada danguer.com y le decimos el usuario y la contraseña a utilizar, ya por último asignamos la cuenta por defecto que vamos a utilizar.

Con esto deberiamos de poder enviar correos como con sendmail pero utilizando el programa /usr/bin/msmtp por lo que lo único que basta es configurar php para que envie utilizando el programa en vez de sendmail.

En el archivo php.ini pondremos lo siguiente:

sendmail_path=/usr/bin/msmtp -t -i

Reiniciamos apache y ahora cuando utilicemos la funcion mail el sistema lo enviará mediante el servidor que hayamos especificado.

De hecho podemos utilizar una cuenta de gmail para hacerlo pero hay que tener en cuenta que debido a sus filtros anti-spam nuestros mensajes podrían ser rechazados o incluso la cuenta podría ser bloqueada para enviar correos (por defecto acepta un límite de 100 correos por día)

Temas similares