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.
Hay 3 comentarios
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
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.
por Mantha, en 2005-06-10 10:23:10 ∞