por explorer » 2008-10-28 13:40 @611
Bienvenido a los foros de Perl en Español, bAsTeR.
El envío de mensajes se puede realizar de muchas formas, porque, mirando la definición del problema, se reduce a pensar en un procedimiento que permita enviar una información de un usuario a otra, respetando la privacidad de estos dos usuarios con respecto a los demás.
Es decir. Hay que
* Ayudar a redactar un mensaje al usuario remitente
* Guardar el mensaje en el buzón del usuario destino
* Solo cada usuario puede ver su correspondiente buzón
Las formas más normales para hacerlo sería usando un servidor de correo y un transporte de correo, instalado en la propia máquina, y que existan procedimientos web que accedan a los buzones y permitan enviar correo al transporte.
O, más simple, algo como lo que tiene este mismo foro: una serie de formularios que permiten escribir el mensaje y llevarlo al buzón del destinatario, pero todo queda reducido a llevar información de un lado a otro de una base de datos.
En Perl tienes varios sistemas de foros, algunos de ellos con posibilidad de tener buzones entre usuarios, pero creo que son demasiado complicados para lo que necesitas.
Como estás escribiendo en el foro CGI, una forma sencilla sería:
Suponiendo que estamos delante de un usuario autenticado (sabemos quién es), podríamos llevarle a una página donde, con un formulario, podría redactar un mensaje, consistente en una caja de texto para el asunto, otra para el texto y otra para escribir el nombre del usuario destino.
Al pulsar el botón de enviar, el primer CGI comprueba que es correcto (el usuario destino existe, hay un asunto, etc.). Si lo es, guarda el mensaje en el buzón del destinatario, que, por ejemplo, podría ser una base de datos hecha en MySQL, SQLite, o incluso en forma de estructura Perl con el módulo Cache::Cache o Storable o alguno de la serie Data::Serialize.
Luego, otro CGI sería el responsable de leer ese buzón para mostrarlo al destinatario, bajo petición suya.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES