2010/01/23

Resolviendo el Mercury de XAMPP

XAMPP es un conveniente paquete que contiene Apache, PHP, MySQL y otros programas para facilitar la instalación y uso de un entorno de desarrollo PHP. Lo vengo usando satisfactoriamente desde hace varios meses. Sin embargo, me enfrasqué en un problema cuando necesité usar el Mercury que trae incluido para enviar emails. Aparentemente no funcionaba. Buscando y navegando mucho por internet, encontré estas páginas que me ayudaron a resolver el problema:
El primer enlace da una secuencia detallada de pasos. Muchos comentan que les funcionó muy bien, pero yo tuve un problema. Veía que las ventanas de los varios monitores que muestra Mercury decían offline, y un comando "telnet localhost 25" ejecutado en la consola me devolvía "Could not open connection to the host, on port 25".
Entonces, encontré el segundo enlace, donde un forista comentaba que los mensajes de offline se debían a un bug del módulo MercuryX y se debía deshabilitar. Así lo hice y, al reiniciar, el administrador de Mercury funcionó :-D, se enviaron los mensajes de prueba que tenía atascados e incluso pude hacer una prueba usando el telnet.

Resúmen de pasos

La idea del relay es usar un servidor SMTP externo, como el de GMail, para que Mercury envíe el correo a través de él. En teoría sería posible también usar un SMTP en localhost, pero como algunos proveedores no permiten que sus usuarios envíen correo de ese modo, el uso del relay parece más general.
En el archivo xampp/php/php.ini, ubicar las líneas correspondientes a [mail function] y editarlas para que quede algo como:

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = postmaster@localhost

A continuación, configurar Mercury. En el administrador de Mercury (que se abre al pulsar su botón Admin en el panel de control de XAMPP), entrar a las opción de menú indicadas por cada título y realizar los cambios que se indican:

Configuration/Protocol modules...

Note que se han desahabilitado MercuryE y MercuryX, y se ha habilitado Mercury C.


Luego de desactivar/activar módulos es necesario reiniciar Mercury (salir del administrador y volver a entrar).


Configuration/Mercury core module...

 

Configuration/MercuryS SMTP server

El nombre en "Announce..." puede ser cualquiera. El IP es el del localhost (la página dice que usar el IP de la intranet, 192.168.x.x, no le funcionó).

 
Aquí se modifica la restricción para que se permita conexiones en el rango 127.0.0.1-127.0.0.1
Pero el punto más importante es desmarcar la casilla "Do not permit SMTP relaying of non-local-email"

Configuration/MercuryC SMTP client

Aquí indico que se use el SMTP server de gmail, según las recomendaciones de su página y usando el puerto 587 para SSL con STARTTLS. Si es su caso, verifique que el nombre de usuario incluya @gmail.com

Configuration/Manage local users

Se agrega el usuario postmaster, con privilegio de administrador.

2010/01/11

Usando FTP_synchronize con Notepad++ en Windows 7

Notepad++ es un editor de texto muy util para programar. Lo uso bastante para HTML, CSS, javascript, php, etc. Su menú encoding permite ver y cambiar de manera muy fácil el encoding de un archivo; por ejemplo, es sencillo pasar ANSI a Unicode UTF-8, con BOM o sin BOM, y viceversa (para una nota sobre lo que es ANSI, puede ver ASCII, ANSI, Roman 1, and What's All That?)

Lo había venido usando con uno de sus plugins, FTP_synchronize, y me sorprendió un poco descubrir que la nueva versión 5.6.3 que instalé ya no lo incluía por default.
Afortunadamente, es posible bajarlo [Edit files on FTP with Notepad++ plugin]. Puede hacerlo desde SourceForge::Notepad++ Plugins::FTP_synchronize

Yo bajé de allí el archivo FTP_synchronize_0_9_6_1_dll.zip. Al abrirlo hallé 2 dll y una nota indicando que aquel marcado con una A era para los Windows sin soporte para unicode (la A es por ANSI). Así que coloqué FTP_synchronize.dll en el directorio plugins de Notepad++, luego cerre y volví abrir el editor y encontré que FTP_synchronize aparecía en el menú plugins.

Configuré el acceso a una cuenta e ingresé a los directorios sin problema. Pero, cuando intentaba editar algún archivo, me aparecía el mensaje "Unable to create directory for file C". Aparentemente Windows 7 no deja escribir así nomás a los programas en el disco (aunque opino que debería dejar hacerlo en sus subdirectorios propios). Felizmente encontré en Internet una forma de solucionar el problema [Problems using the Notepad++ FTP_Synchronize Plugin with Vista].

Lo que yo hice fue ir al directorio de plugins de Notepad++ para crear manualmente el subdirectorio FTP_synchronize. Luego, fue necesario que le hiciera clic derecho para ver sus propiedades y modificar los permisos de acceso de Users sobre ese directorio, para que pudieran crear, eliminar, y modificar los archivos y directorios que pudiera contener.

Finalmente, pude editar el archivo que que quería (en mi caso era cambiarle el encode a UTF8 sin BOM).

2010/01/09

Kohana101


Aprendiendo Kohana estoy desarrollando el tutorial Kohana101, publicado por Oscar Bajner.

Viendo que no hay mucho material sobre Kohana disponible en español, se me ocurrió que sería buena idea ir traduciéndolo mientras doy estos primeros pasos.

Ojalá sea de ayuda a quienes estén interesados en probar este interesante framework pero, por alguna razón, necesitan más material en español.

Pueden encontrar la traducción bajo mi colección sobre Kohana, en Knol.