El 2004-10-29 a las 21:37 +0100, miguel gmail escribió:
Me lo he estado leyendo, pero no me entero de algunas cosas:
Lo primero, suponiendo que hubiese hecho todo lo que dices de los enlaces, cómo le digo a mozilla --mail que lea de esos buzones? Es decir, lo primero que hace mozilla --mail cuando lo arranco es preguntarme por la identidad y luego por los servidores pop/imap y smtp. Así que, como le digo que tiene que leer de los buzones locales y no buscar en servidores?
Eso es porque tienes varias identidades; como yo solo tengo una, no me pregunta - si es que hablamos de la misma cosa. El correo yo no lo recojo con el mozilla, sino con el fetchmail, y lo reparto con el procmail. El detalle es que debes decidir que programa de correo es el que recoge el correo, y a los demás hacerle enlaces. Es decir, si recoges con el kmail, en el directorio del del mozilla debes poner enlaces a los del kmail, y desactivar la recogida de correo por el mozilla.
Y ahora lo otro:
Me hago un poco de lio con la nomenclatura que usas, por ejemplo:
/home/myuser/Mail/ directory /home/myuser/Mail/folder mbox file /home/myuser/Mail/subfolder/ directory /home/myuser/Mail/subfolder/folder another mbox file
~/Mail es un directorio según eso, vale ~/Mail/inbox dices que es un 'mbox file', esto no lo entiendo, al menos en mi sistema es un directorio, con mas subidrectorios dentro:
miguel@linux3:~/Mail> ll inbox total 28 drwx------ 2 mcmoro users 28376 2004-10-29 17:52 cur drwx------ 2 mcmoro users 48 2003-01-23 17:12 new drwx------ 2 mcmoro users 48 2004-10-29 17:42 tmp
Los subdirectorios new y tmp están vacíos, y es cur quien contiene un fichero de texto (de nombre un tanto cripticos) por cada correo que tengo en la bandeja de entrada de kmail (inbox).
Fale, estás usando carpetas formato maildir en vez de mbox. No puedes compartir. Punto pelota. Me explico: el mozilla sólo usa carpetas formato mbox, mientras que el kmail puede usar mbox o maildir. En el segundo caso son incompatibles ambos programas, no hay manera. [Sigue leyendo, que lo explico ahora.]
Por otro lado, tengo mas carpetas al estilo de inbox, y tienen todas la misma estructura que inbox.
Asi que cuando dices que un directorio es un 'mbox file', a qué te refieres (al margen de que un directorio es un fichero en linux)?
Las "carpetas" de correo es una nomenclatura para referise a "algo" que contiene correos. En el caso del formato maildir, es un directorio con un fichero por cada correo. En el caso del formato mbox - que es el estandar de unix, por cierto - es un único fichero con todos los correos. [maildir tiene sus ventajas, y mbox las suyas. El mbox es clásico, y es soportado por muchos programas, es como un común denominador. El Maildir se va extendiendo, pero hay programas que no lo soportan - y el mozilla es uno de ellos.] [Si alguien sabe que el Mozilla si soporta maildir, que lo diga y lo explique]
Y, en que se diferencian los .msf de los .sbd? Los msf son para los directorios y los sbd para ficheros de correo? O ando mas perdido que una gamba en un desierto?
Son nombres que inventa la gente de mozilla, o mejor dicho, los desarrolladores del netscape original, del que se hereda todo esto. El Netscape creo que se desarrolló para windows, pero no estoy seguro; en cualquier caso, puesto que usa formato mbox tipo unix la gente que lo hizo tenía que tener conocimientos o formación en unix. O lo crearon para varios sistemas operativos al mismo tiempo :-? A ver, me lo tengo que mirar de nuevo, hace tiempo que lo escribí. Cada fichero mbox (una carpeta de correo, recuerda) en mozilla tiene asociado otro fichero con extensión .msf, y que básicamente contiene el indice de esa carpeta y los ajustes del usuario. Al mismo tiempo, en mozilla (recuerda, formato mbox) puedes tener directorios que contienen carpetas de correo. Para que el mozilla se de cuenta que debe leer ese directorio, debe tener por narices la extensión .sbd. Además, debe existir un fichero con el mismo nombre que el directorio (sin extensión) y otro fichero con la extensión .msf. Es decir, el directorio tiene asociado una carpeta de correo del mismo nombre (con su indice), y cuantas subcarpetas (recuerda, ficheros mbox) quieras tener.
Y otra más, ya para nota ;-)
Resulta que tengo unos cuantos directorios con correo dentro de Mail, y andar creando enlaces a manivela es un poco rollo. Para eso estan los scripts. Pero es que mi bashscripting skills y yo no nos llevamos bien. Sería algo asi?:
Yo tengo un script para ello, te lo puedo pasar - y asi no me miro ese :-p - pero el problema es que no puedes, tu estás usando formato maildir.
#!/bin/bash
for each dir in $( ls -R /home/miusuario/Mail ) if [ test -d $dir ]; then # la siguientes lineas hay que, siendo generosos, 'depurarla' ;-) (como se concatena??) ln -s $dir $dir.msf else ln -s $dir $dir.sbd fi done
Ya estoy viendo por donde va a fallar el guión... (al margen de errores de sintaxis que seguro que hay), y es que las rutas al hacer los enlaces van a salir rematadamente mal, va a petar y bien petado :-(
Ah, es que en el mio yo listo explícitamente los directorios. Es algo más complejo que eso. El punto de partida es que el correo del Pine (y kmail) está en ~/Mail y el del mozilla en ~/Mail.mzla. Lo que hago es crear enlaces simbólicos en ~/Mail.mzla. a los ficheros mbox que están en ~/Mail, y crear ficheros indice (.msf) vacíos. Algo similar, pero no igual, hago con los directorios. En ese primer nivel no le puedo dejar buscar lo que encuentre, porque entonces haría indices a cosas que no debe. Dentro de ~/Mail.mzla. tengo este script (.A_Crear): #!/bin/sh # ln real_target new_name # NOTE: Disable automatic compaction of folder, # and _never_ compact a symlinked folder: it is replaced with a copy. function CreateLink() { if ! test -L "$2" ; then ln -s "$1" "$2" #> /dev/null fi } function CreateDir() { if ! test -d "$1" ; then mkdir "$1" #> /dev/null fi } CreateLink ../Mail/old_nsmail ../Mail.mzla/old_nsmail.sbd CreateLink ../Mail/file/sent-mail Sent for FILE in "Drafts" "Templates" "Trash" "Unsent Messages" \ "busqueda" "busqueda2" "curricula.lu" \ "in_teleline" "in_tiscali" \ "outbox" "postponed" "saved-messages" \ "file" "lists" # "old_nsmail" Es un directorio del Netscape, enlazar solo do if test -f "../Mail/$FILE" ; then CreateLink "../Mail/$FILE" "../Mail.mzla/$FILE" touch "../Mail.mzla/$FILE".msf fi if test -d "../Mail/$FILE" ; then CreateDir "../Mail.mzla/$FILE".sbd touch "../Mail.mzla/$FILE" touch "../Mail.mzla/$FILE".msf # Bucle nivel 2 for FILE_L2 in $( ls ../Mail/$FILE ) do # Es un archivo if test -f "../Mail/$FILE/$FILE_L2" ; then CreateLink "../../Mail/$FILE/$FILE_L2" "../Mail.mzla/$FILE".sbd/"$FILE_L2" # enlazar carpeta touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".msf # crear indice vacio fi # Es un directorio if test -d "../Mail/$FILE/$FILE_L2" ; then # FILE FILE_L2 FILE_L3 # ../Mail.mzla old_nsmail Inbox # -d Mail_file Cosas (Netscape) CreateDir "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd # crear Carpeta directorio touch "../Mail.mzla/$FILE".sbd/"$FILE_L2" # crear carpeta vacia touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".msf # crear fichero indice vacio # Bucle nivel 3 for FILE_L3 in $( ls ../Mail/$FILE/$FILE_L2 ) do # Es un archivo if test -f "../Mail/$FILE/$FILE_L2/$FILE_L3" ; then CreateLink "../../../Mail/$FILE/$FILE_L2/$FILE_L3" "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd/"$FILE_L3" # enlazar carpeta touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3".msf # crear indice vacio fi # Es un directorio if test -d "../Mail/$FILE/$FILE_L2/$FILE_L3" ; then # FILE FILE_L2 FILE_L3 # ../Mail.mzla old_nsmail Inbox # -d Mail_file Cosas (Netscape) CreateDir "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3".sbd # crear Carpeta directorio touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3" # crear carpeta vacia touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3".msf # crear fichero indice vacio # Bucle nivel 4 for FILE_L4 in $( ls ../Mail/$FILE/$FILE_L2/$FILE_L3 ) do # Es un archivo if test -f "../Mail/$FILE/$FILE_L2/$FILE_L3/$FILE_L4" ; then CreateLink "../../../../Mail/$FILE/$FILE_L2/$FILE_L3/$FILE_L4" "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd/"$FILE_L3".sbd"/$FILE_L4" # enlazar carpeta touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3".sbd"/$FILE_L4".msf # crear indice vacio fi # Es un directorio if test -d "../Mail/$FILE/$FILE_L2/$FILE_L3/$FILE_L4" ; then # FILE FILE_L2 FILE_L3 # ../Mail.mzla old_nsmail Inbox # -d Mail_file Cosas (Netscape) CreateDir "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3".sbd"/$FILE_L4".sbd # crear Carpeta directorio touch "../Mail.mzla/$FILE".sbd/"$FILE_L2".sbd"/$FILE_L3".sbd"/$FILE_L4".msf # crear fichero indice vacio # Bucle nivel 5 echo "---------- Error: nivel 5 no esta programado ------- $FILE/$FILE_L2/$FILE_L3/$FILE_L4 -------------- " fi done # FILE_L4 fi done # FILE_L3 fi done # FILE_L2 fi done # lista Er... no me pidas que te lo explique, no me acuerdo O:-) - y además, lo hice para que funcionase para mi, no para que fuese genérico. En mis mejores tiempos hubiera probablemente empleado recursividad, pero ¿que más da? ;-) Una observación. Este sistema se basa en que los programas pueden usar un fichero que en realidad es un enlace simbólico como si fuera el fichero verdadero. Pero a veces hay problemas: por ejemplo, si al mozilla le dices que compacte las carpetas, lo que hace es crear un nuevo fichero temporal mbox donde transfiere el contenido de la carpeta original, con lo cual lo compacta al saltarse los borrados, y luego borra el original y cambia el nombre al nuevo. Es una estrategia clásica (en msdos), pero con el efecto "secundario" de borrar los enlaces. No se si con enlaces duros funcionaría; y tampoco he comprobado si las versiones modernas del mozilla siguen teniendo ese bug. -- Saludos Carlos Robinson