9 de Junio, 2005

Publicando anotaciones desde el mail

Hace tiempo que tenía en mente implementar un sistema para poder publicar anotaciones desde dispositivos que no soporten las virguerías que le pido al navegador web en la administración del gestor de contenidos de blackshell.

Una opción era eliminar las llamadas a Javascript y simplificar la web, pero eso significaba renunciar a interesantes medidas de seguridad como las contraseñas de un solo uso. Así que he seguido dándole vueltas... hasta ahora ;).

He implementado una sencilla pasarela de correo a esta bitácora, que me va a permitir publicar anotaciones desde cualquier tipo de dispositivo que pueda enviar un correo en texto plano.

El sistema es simple: creamos un alias en nuestro /etc/mail/aliases que redirija los correos a un script preparado para analizar el mensaje entrante y procesar la anotación. En mi caso queda como sigue:

...
# mail2post de blackshell
direccion2posting: "|/usr/local/sbin/mail2post.pl"

Obviamente esa no es la dirección que estoy usando. Esta es la primera barrera que va a impedir a personas no autorizadas intentar publicar en mi bitácora ;). Creo que algunos sistemas de publicación solo usan el secreto de la dirección de publicación como control, lo cual me parece poca cosa.

Por eso yo además obligo a que en el cuerpo del correo aparezca una cadena de verificación, o sino el mensaje se desechará aunque el resto del formato sea correcto. Tampoco podía complicar demasiado la cosa, o eso jugaría en contra de los dispositivos desde los que pretendo publicar.

¿Qué formato he elegido para el correo? Simple y efectivo:

<post>
Título de la anotación
Texto de la anotación, que soporta <strong>HTML</strong>.
</post>

La primera linea del texto entre las marcas post se empleará como título del texto, y el resto de lineas serán el cuerpo del artículo.

El hecho de usar marcas similares a las HTML evitará que aparezcan en el propio cuerpo de la anotación (esas marcas no existen y habría que escapar los signos mayor y menor que para representarlas).

La cadena de verificación puede ser cualquier cosa, ya que he empleado Perl en la implementación de la pasarela y tenemos expresiones regulares en la punta de los dedos ;). En el script pongo como ejemplo que aparezca la cadena XXXconfirmacion sola en una linea (sin más caracteres al principio o al final).

He usado DBI para conectar a MySQL e insertar el nuevo texto en la base de datos.

Por último comentar que mis conocimientos de Perl son justitos, muy justitos :D. Eso y que el script se puede descargar libremente bajo licencia MIT: mail2post.pl.

En realidad no sé si este texto se publicará cuando pulse enviar... suspense :D.

Actualización: ¡Ha funcionado!

Además quiero apuntar un detalle que me he dejado: el fichero mail2post.pl puede permitir enviar textos a usuarios locales si no mantenemos secreta la cadena de verificación, así que un chmod 711 sería interesante (así de paso protegemos la contraseña para acceder a la base de datos). Bueno, eso y que la cadena de verificación debe estar fuera de la anotación si no queremos publicarla ;).

Actualización (2005-06-23): he hecho correciones en el script para que no den problemas las comillas al insertar en la bbdd. Además he añadido un par de mensajes al syslog del sistema.

Anotación por Juan J. Martínez.

Hay 3 comentarios

Gravatar

Solo te falta que se puedan añadir fotos enviadas como adjuntos en el mail y tienes un poderosisimo fotoblog actualizable desde el movil en cualquier parte del mundo.(eso si, la pua del telefono no te la quita nadie=/ )

por Mantha, en 2005-06-10 10:23:10

Gravatar

Solo tengo que sacar el adjunto (de haberlo), analizar el tipo MIME y si es una imagen válida (jpeg, gif o png) la copio con el nombre adecuado en el directorio de imágenes. Luego el post deberá mostrarla correctamente, claro :)
Aunque creo que primero tendría que averiguar como mandar un email con foto desde mi móvil XDDD

por Juanjo, en 2005-06-10 11:18:42

Gravatar

Qué tal! Tengo ya algún tiempo visitándote. Me agrada tu blog, gracias por compartir tus conocimientos y experiencias, es por eso que se me hace valioso tu blog y lo visito muy seguido. Saludos desde México (Monterrey).

por aldoara, en 2005-06-10 18:23:33

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.