Archivos de la categoría: mail

IIS, PHP, SMTP en Windows Server

Hola Galaxia:

En el post de ayer  les contaba que estaba trabajando en la instalacion de un servidor para un cliente sobre Windows Server. Ayer dejé todo instalado y para hoy tenía planificada la configuración de cada uno de los componentes.

Todo bien, hasta que probé enviar correos desde PHP usando la funcion mail() y me arrojaba error. Abrí el log de errores de php (C:WindowsTempphp53_errors) y me encontré con los siguientes errores y cómo los fui resolviendo.

PHP Warning:  mail(): “sendmail_from” not set in php.ini or custom “From:” header missing in mail.php
Este error hace referencia a que no se configura ninguna dirección de emisor en la función o en el archivo php.ini. Si se configura en la función, se establece un emisor por cada función y se se configura desde el archivo php.ini, se configura una dirección por defecto para todas las funciones mail.
Abrí el archivo php.ini y busqué la linea sendmail_form = y le agregué una dirección de correo electrónico. Realicé de nuevo la prueba y en el log me apareció el siguiente mensaje.

PHP Warning:  mail(): Failed to connect to mailserver at “localhost” port 25, verify your “SMTP” and “smtp_port” setting in php.ini or use ini_set() in mail.php
Esto no me hacía tanto sentido, porque estaba seguro que el Firewall estaba configurado y que el php.ini estaba configurado para usar el puerto 25. Lo que no estaba seguro era si el servicio de SMTP estaba funcionando. Abrí la consola de administración de IIS 6 (Si, IIS 8 usa la consola de IIS 6 para administrar el SMTP. Sabrá el diablo por qué es así). Me aparecía que SMTP Virtual Server #1 estaba abajo. Lo hice arrancar. Probé nuevamente y encontré el siguiente mensaje de error.

PHP Warning:  mail(): SMTP server response: 550 5.7.1 Unable to relay for [mi direccion de correo personal] on mail.php
Esto menos sentido me hacía si se supone que todo estaba andando. El problema estaba en que en el SMTP no había configurado para que hiciera relay. Para solucionarlo, en la misma ventana de administración de IIS6, abrí las propiedades del servidor de SMTP, en la pestaña de “Access” abrí la configuración de los permisos del Relay y agregué la dirección 127.0.0.1 para que usara ese servidor SMTP. Revisar la imagen de referencia:

Relay SMTP IIS

Relay SMTP IIS

 

Con eso el servidor ya fue capaz de enviar un correo y recibirlo en mi gmail 🙂

Espero que a ustedes les sirva también.

Enviar correos desde PHP sobre Ubuntu

Hola Mundo:

Por fin puedo publicar algo por acá. Estaba muy ocupado por temas de estudios y trabajo, lo cual es muy bueno.

Hoy les escribiré sobre algo bastante recurrente en las instalaciones caseras de LAMP (Linux, Apache, MySQL y PHP) y es algo que es simple de solucionar, cuando se cuenta con algunas herramientas.

El problema está en que cuando se hace una instalación de este estilo, PHP no es capaz de enviar mails a través de la funcion mail() y el log de errores queda completo con errores por esta función. El síntoma es claro: PHP no envía mails.

Esto ocurre cuando un servidor smtp (Simple Mail Transfer Protocol) no se encuenta instalado y/o la ruta no se encuentra definida en el archivo php.ini (Por lo menos la ruta de php.ini en Ubuntu Server es /etc/php5/apache2/php.ini)

Para instalar sendmail en Debian y derivados:

apt-get install sendmail

Una vez que está instalado, abrir el archivo php.ini y buscar la linea

;sendmail_path =

y cambiarla por

sendmail_path = /usr/sbin/sendmail -t -i

Luego reiniciar el servicio de apache2 y funcionará.

Saludos!