Fake sendmail o como hacer que la función mail() funcione en Windows.
Para los que usamos Windows, es algo difícil (por no decir imposible) encontrar un cliente SMTP que realmente funcione bien. O bien tienen limites, o en la mayoría de los casos no funcionan.. o algunos servidores de correo (como gmail) acaban denegando la petición porque no proviene de una IP "aceptada".
Hace tiempo descubrí "Fake sendmail". Es un "programa" que se encarga de hacerte la vida mas fácil. Es un cliente SMTP capaz de enviar correos desde tu cuenta de correo (gmail, hotmail etc). Ami personalmente me resulta bastante cómodo porque:
1. No dependo de programas que se tengan que estar ejecutando todo el tiempo a la escucha.
2. No dependo de mi IP puesto que el correo se envía desde una cuenta de correo corriente de un servicio popular.
3. Realmente emula la función sendmail -t y por tanto no dependo de librerías externas.
4. Es GRATIS!
Para los que lo quieran probar os dejo el enlace hacia la pagina:
http://glob.com.au/sendmail/
Una vez descargado el archivo (.zip) lo descomprimimos en la carpeta deseada. Preferiblemente debe ser una carpeta a nivel partición (C:\sendmail). En mi caso, yo la descomprimo en C:\SERVER\sendmail que es donde tengo instalado el servidor WAMP (Windows - Apache - MySQL - PHP).
Ahora, nos toca editar el archivo sendmail.ini. Lo que mas nos interesa son las siguientes lineas:
En mi caso, yo utilizare gmail así que esta seria mi configuración:
Bien, ahora toca editar el archivo php.ini. La razón es que debemos indicarle que utilizaremos una app aparte y que no mande directamente el request hacia el puerto 25 de nuestro ordenador.
Asi que buscamos sendmail_path, ponemos la ruta hacia el sendmail.exe que hemos descargado y agregamos el parámetro -t. En mi caso:
No hace falta mas que una simple linea en PHP para probar si todo va bien:
Si algo no funciona (no te llega el correo), siempre puedes consultar el archivo error.log en la carpeta del sendmail.
Saludos
Hace tiempo descubrí "Fake sendmail". Es un "programa" que se encarga de hacerte la vida mas fácil. Es un cliente SMTP capaz de enviar correos desde tu cuenta de correo (gmail, hotmail etc). Ami personalmente me resulta bastante cómodo porque:
1. No dependo de programas que se tengan que estar ejecutando todo el tiempo a la escucha.
2. No dependo de mi IP puesto que el correo se envía desde una cuenta de correo corriente de un servicio popular.
3. Realmente emula la función sendmail -t y por tanto no dependo de librerías externas.
4. Es GRATIS!
Para los que lo quieran probar os dejo el enlace hacia la pagina:
http://glob.com.au/sendmail/
Instalando sendmail
Una vez descargado el archivo (.zip) lo descomprimimos en la carpeta deseada. Preferiblemente debe ser una carpeta a nivel partición (C:\sendmail). En mi caso, yo la descomprimo en C:\SERVER\sendmail que es donde tengo instalado el servidor WAMP (Windows - Apache - MySQL - PHP).
Ahora, nos toca editar el archivo sendmail.ini. Lo que mas nos interesa son las siguientes lineas:
; Direccion del servidor de correo SMTP smtp_server= ; Puerto del servidor. Gmail usa 465 smtp_port= ; Uso de SSL.. en Gmail es obligatorio (ssl) smtp_ssl= ; Tu usuario.. para gmail, debe ser la dirección de correo completa auth_username= ; Contraseña. auth_password= ; Forzar el emisor. Asi no te obligara a indicar el header "From" ; Debe ser el correo que usas en auth_username force_sender=bad.stupid.monkey@gmail.com
En mi caso, yo utilizare gmail así que esta seria mi configuración:
smtp_server=smtp.gmail.com smtp_port=456 smtp_ssl=ssl auth_username=bad.stupid.monkey@gmail.com auth_password=******** force_sender=bad.stupid.monkey@gmail.com
Bien, ahora toca editar el archivo php.ini. La razón es que debemos indicarle que utilizaremos una app aparte y que no mande directamente el request hacia el puerto 25 de nuestro ordenador.
Asi que buscamos sendmail_path, ponemos la ruta hacia el sendmail.exe que hemos descargado y agregamos el parámetro -t. En mi caso:
sendmail_path = "C:\SERVER\sendmail\sendmail.exe -t"
Probando! Probando!
No hace falta mas que una simple linea en PHP para probar si todo va bien:
<?php mail("bad.stupid.monkey@gmail.com","Prueba","jajajajaja"); ?>
Si algo no funciona (no te llega el correo), siempre puedes consultar el archivo error.log en la carpeta del sendmail.
Saludos
Comentarios
Publicar un comentario