domingo, 11 de enero de 2009

Manual de PHP 4: Instalar y Configurar el Servidor de correo electrónico Mercury

Editor Dev-PHP
A lo largo del curso va a sernos de gran utilidad el uso un editor de textos que nos permita identificar los números de línea de nuestros scripts y que a la vez nos ayude –mediante resaltado de textos– a depurar la sintaxis.

Existen multitud de editores y podrás utilizar –a tu gusto– este o cualquier otro que uses habitualmente. El hecho de sugerirte este obedece a al hecho de que es gratuito, bastante completo, consume pocos recursos y se va actualizando periódicamente.

Si quieres ver los resultados de tus scripts en el propio editor tan sólo debes abrir el editor, ir al menú "Options"--> "General Options", y en la pestaña "Parser" seleccionar el directorio dónde se encuentra el fichero php-cgi.exe y el fichero php.ini para tus ejemplos; tal y cómo puedes ver en la siguiente imagen en la que está configurado para funcionar con xampp.




Podrás descargar este programa de instalación desde la dirección: http://devphp.sourceforge.net/.


Un servidor de correo: Mercury

Se trata de una aplicación que puede descargarse del sitio http://www.pmail.com/ que permite instalar un servidor local de correo o bien desde el menú de xampp.

Finalidad de esta instalación

La instalación de este servidor de correo tiene un carácter puramente experimental.

Algunas funciones de PHP relacionadas con el envío de correo electrónico a través de una página web requieren disponer de un servidor de este tipo. Es la única forma en la que podremos ejecutar y comprobar el funcionamiento de los scripts que utilicen ese tipo de funciones.

Modificación del fichero php.ini

Esta es una de las muchas modificaciones que tendremos que ir haciendo en el fichero php.ini a lo largo del curso. Recuerda que este fichero está en el directorio c:\xampp\apache\bin.

Habremos de buscar las líneas que dicen:

[mail function]
; For Win32 only.
SMTP =

y cambiarlas por:

[mail function]
; For Win32 only.
SMTP = 127.0.0.1


y también
; For Win32 only.
;sendmail_from=me@example

descomentando la última línea (quitando el punto y coma) y dejándola así:

; For Win32 only.
sendmail_from=me@example

y sustituyendo me@example por admin@mispruebas.com.

¡Cuidado!

Si has hecho la copia de seguridad -que te hemos recomendado al configurar PHP- del fichero php.ini en c:\Apache\php4\ deberías sustituirla por esta nueva versión modificada.

La finalidad no es otra que mantener la identidad de ambas copias.

El proceso de instalación


La instalación, paso a paso la tienes descrita en las siguientes imágenes. Los aspectos más significativos de este proceso son los siguientes:




– Elegir la opción No NetWare Support



– Elegir No Pegasus Mail Integration. De no hacerlo así nos obligaría a tener instalado -previamente- el cliente de correo de Pegasus Mail.


– Elegir las opciones SMPT server Module,POP server module, que serían las que nos permitieran enviar y recibir mensajes e modo local, y también POP3 Client Module que tiene relación con la recepción de mensajes de cuentas externas.


– La opción siguiente no tiene demasiada importancia para nuestros fines. Podemos elegir cualquiera de las dos sin que afecte sensiblemente al funcionamiento.


– Poner 127.0.0.1 donde dice: this machine's Internet domain name y dejar la opción por defecto -admin- donde dice: user name for postmaster.
– Dónde dice: Address of host via which to send mail debes incluir la dirección del servidor SMTP a través del cual quieres que se envíen los mensajes a direcciones de correo externas.




En las pruebas hemos utilizado varias (los SMTP de nuestras cuentas de correo) aunque, como ves en la imagen, la prueba definitiva la hemos hecho utilizando la dirección hermes.cnice.mecd.es, que es el servidor SMTP para los usuarios de cuentas del CNICE.

Hemos optado por esa opción para desarrollar el proceso de configuración en su opción más compleja ya que, como sabes, ese servidor requiere autentificación del usuario.

El resto del proceso puede hacerse con las opciones por defecto hasta concluir el proceso de instalación.

Configuración para una red de área local

Aunque hemos puesto la IP 127.0.0.1 pensando en servidor para pruebas, es posible que quieras utilizarlo como servidor de correo en una red local. En ese caso habrías de sustituir la IP por la correspondiente al ordenador en el que está instalado el servidor.

Para conocer esa IP, en el caso de que uses Windows98, bastaría con pulsar: Inicio -> Ejecutar y escribir en esa ventanita winipcfg. Si utilizas W2000, NT ó XP el proceso sería: Inicio -> Programas -> Accesorios -> Símbolo del sistema y una vez en esa ventana escribir ipconfig.

Arrancar y parar el servidor

Para arrancar el servidor hay que ejecutar el programa Mercury Loader.
Lo encontrarás en el directorio en que hayas instalado el servidor de correo (por defecto, c:\Mercury).

Sabremos que está en marcha porque aparecerá una ventana nueva. Si la minimizamos aparecerá en la barra de tareas un icono como este.



Este icono solo aparece al minimizar la ventana. Si la cerramos se parará el servidor y desaparecerá el icono.

Aparte de la opción anterior, desde el menú del servidor tienes acceso a esta opción que ve en la imagen.



Cuando está funcionando el servidor -para pararlo- aparece un texto como este. Si estuviera parado, se podría activar desde la misma opción. Ahora aparecería con el texto: Leave offline mode

Añadir usuarios

Después de arrancar debemos acceder -en el menú principal- a opción Configuration y una vez allí elegir Manager local users. Al abrirse esa ventana encontraremos el usuario Admin creado de forma automática durante el proceso de instalación.

Bastará con asignar un nombre de cuenta, un nombre personal (no es imprescindible) y una contraseña.

Nosotros vamos a crear tres cuentas más. Añadiremos los usuarios juan, perico y andres y les pondremos contraseñas idénticas a los nombres respectivos.



Crear un dominio local

Desde el menú del servidor, pulsando en Configuration y eligiendo Mercury Core Module nos aparece una ventana con varias pestañas tales como las que estás viendo.


En esta primera -donde dice General- no es preciso tocar nada. Está la dirección IP que habíamos introducido al instalar -127.0.0.1- y lo demás son los diferentes directorios de la instalación.

Al pulsar sobre la «pestaña» Local domaines aparecen dos líneas que comienzan por 127. Podemos quitarlas desde el botón Remove entry. (aunque sino queremos enviar los correos desde un dominio y no nos importa emplear xxxx@127.0.0.1 porque no queremos, por ejemplo que nos contesten a estos correos podemos dejar el dominio 127)


Mediante el botón Add New Domaine podemos insertar un nombre de dominio de nuestra elección.


Dado que al cambiar la configuración de php.ini hemos puesto como dirección de correo admin@mispruebas.com vamos a usar como nombre del dominio mispruebas.com tal como puedes ver en la imagen.

Configuración del cliente de correo

La configuración del cliente de correo no plantea problemas. Los únicos detalles a tener en cuenta son los relativos a la configuración de los servidores SMTP y POP3. En ambos casos se escribe la IP con la que hemos configurado el servidor, es decir: 127.0.0.1

Como nombre de cuenta pondremos el mismo con el que las hemos creado (juan, perico, andres) sin añadir la @ ni el nombre del dominio.

Si la instalación se realiza para trabajar en una red de área local, tendrás que cambiar el 127.0.0.1 por la IP del ordenador en el que está instalado el servidor.


Prueba del servidor

Una vez configuradas las cuentas en el cliente de correo bastará con enviar mensajes a las direcciones de usuarios locales (con el servidor Mercury activo) y comprobar que son recibidos en las cuentas destinatarias.

Prueba desde PHP

Si ejecutar el script de prueba que tienes a la derecha (debes tener activos los servidores Apache y Mercury) deberá aparecerte una página con el texto: Mensajes enviados con éxito.


<?

if( mail("juan@mispruebas.com", "Una prueba definitiva","Bienvenid@ a PHP",

"From: Administrador de mispruebas.com <admin@mispruebas.com>

Reply-To: juan@mispruebas.com

Cc: perico@mispruebas.com

Bcc: andres@mispruebas.com

X-Mailer:PHP/" . phpversion())){

print "Mensajes enviados con exito";

}else{

print "Se ha producido un error";

}

?>





Será la prueba inequívoca de tanto el servidor con la configuración de PHP son las correctas. Si después abres el cliente de correo podrás comprobar que los usuarios juan, perico y andres han recibido ese mensaje.

Leer correo externo

Aunque no forma parte de los contenidos de este curso, puede resultarte interesante configurar el servidor de correo de forma que puedan recibirse en una cuenta local los mensajes enviados a una -o varias- cuenta externa.


Tal como ves en las imágenes sólo debes acceder opción Configuration y seleccionar MercuryD POP3 client. Aparecerá una ventana como la que ves al margen.


Los pasos a seguir están numerados en la imagen.

El primero será establecer el Check Every (frecuencia con la que se comprueba la existencia de nuevos mensajes en la cuenta externa). Por defecto se autoconfigura en 30 segundos. Ahí podrás indicar el periodo de tiempo (en segundos) que estimes oportuno.

El segundo paso es pulsar el botón Add que abrirá la ventana que ves superpuesta en la imagen.

Debemos escribir el nombre de una cuenta externa, el nombre de su servidor POP3 y la contraseña de esa cuenta de correo, y asociarlas con una cuenta local. Después de pulsar el OK se cierra la ventana superior y deberemos pulsar el botón Save para guardar los cambios

A partir de ese momento –siempre que el servidor de correo esté activo y tengamos abierta una conexión a internet– se comprobará la cuenta externa con la frecuencia indicada y si existieran mensajes serían transferidos a la cuenta local especificada en la configuración.

Enviar mensajes a direcciones externas

Mercury permite enviar mensajes (a través del servidor configurado como Address of host via which to send mail ) a direcciones de correos correspondientes a dominios externos.

La configuración de esa opción requiere el proceso que ves a la derecha.

Eligiendo la opción MercuryS SMTP Server se abre una ventana como la que ves en la imagen. Activaremos la «pestaña» Connection control y desactivaremos la casilla de verificación que dice: Do not permit SMTP relaying of non-local mail y con ello daremos al servidor la opción de enviar a través del servidor SMTP externo los mensajes cuyo nombre de dominio no coincida con el configurado para el servidor local.

Aún hemos de solventar un pequeño problema en esta configuración. Al enviar mensajes desde una cuenta local hacia una cuenta externa se incluiría en el mensaje la dirección local como dirección de respuesta. Eso, obviamente, plantearía problemas al destinatario ya que sus respuestas no encontrarían ese dominio en la red.

El problema se resuelve modificando la configuración del cliente de correo e incluyendo como dirección de respuesta una cuenta externa. De esta forma, combinando esta configuración con la de lectura de cuentas externas podríamos gestionar desde nuestra cuenta local el envío y recepción de mensajes externos.



Servidores SMTP que requieren autentificación

Cada día son más habituales los servidores de correo SMTP que requieren autentificación. Este es el caso, tal como comentamos más arriba, de las cuentas del CNICE.

En esas circunstancias es necesario acceder a la opción Mercury SMTP Client que nos abrirá una ventana como que la ves a continuación. Bastará con rellenar los campos correspondientes a Credentials for SMTP Authentication, if required poniendo en Username y password los mismos valores que usamos en la configuración de esa cuenta en el cliente de correo.




Una vez hecho esto, sólo queda guardar los cambios y el servidor estará listo para efectuar este tipo de envíos.

Desinstalación del servidor de correo

La instalación de Mercury no escribe nada en el registro de Windows. Por ello, el proceso de desinstalación no existe. Basta con borrar del directorio de instalación y habremos desinstalado el servidor.


Fuente:
Página del ifstic: http://www.isftic.mepsyd.es/formacion/enred/

2 comentarios:

maxfrank dijo...

Hola tengo un problema no lo consegui el archivo php.ini en la ruta que dices yo consegui en la siguiente ruta C:\xampp\php, y de igual forma hice los cambios pero no me funciona que debo hacer?

Juan dijo...

hola, hace bastante tiempo que no ando con php, pero lo que si recuerdo es que había bastantes ficheros php.ini por ahí en el directorio xamp y no todos sirven,....