miércoles, 10 de agosto de 2011

Roundcube: crear carpetas por defecto

Hace unos días me encontré que las cuentas nuevas de correo no creaban las carpetas típicas en el servidor (Enviados, Borradores y Papelera). Estas carpetas las tiene que crear el webmail (o el cliente IMAP que se utilice), pero en este caso mi roundcube no las estaba creando.

Buscando por internet he visto que hay una opción para ello.

Editamos el archivo de configuración main.inc.php y buscamos la línea donde esté el parámetro
create_default_folders
y de false lo cambio a true.

Las nuevas cuentas empiezan a crear sus carpetas correctamente.

En este caso, hay un pero del que no me he visto advertida en internet. Hay que tener cuidado, no es una opción que no tenga "efectos" secundarios. Yo lo testeé antes de pasarlo a producción, y días después me he encontrado con un usuario que ha "perdido" sus carpetas de Enviados, Borradores y Papelera. Se trata de un usuario antiguo, que tenía ya correo en la plataforma antes del cambio.
Para solucionarlo, he tenido que "resetear" los parámetros por defecto del usuario en roundcube. Para ello, me he ido a la BBDD de RC y he buscado en la tabla users a este usuario, y en el campo preferences le he dejado unas básicas.


mysql> select * from users where username like 'xxx@yyyy.tld';
+---------+-----------------------------+-----------+-------+---------------------+---------------------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| user_id | username | mail_host | alias | created | last_login | language | preferences |
+---------+-----------------------------+-----------+-------+---------------------+---------------------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 5 | xxx@yyyy.tld | localhost | | 2011-07-27 03:52:18 | 2011-08-10 15:31:50 | es_ES | a:7:{s:17:"message_threading";a:0:{}s:9:"junk_mbox";s:0:"";s:20:"default_imap_folders";a:4:{i:0;s:5:"INBOX";i:1;s:12:"INBOX.Drafts";i:2;s:10:"INBOX.Sent";i:3;s:11:"INBOX.Trash";}s:16:"message_sort_col";s:4:"date";s:18:"message_sort_order";s:4:"DESC";s:11:"search_mods";a:7:{s:1:"*";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:10:"INBOX.Sent";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:12:"INBOX.Drafts";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:11:"INBOX.Trash";a:3:{s:7:"subject";i:1;s:4:"from";i:1;s:2:"to";i:1;}s:8:"Enviados";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:5:"INBOX";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:8:"Papelera";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}}s:17:"collapsed_folders";s:11:"null&INBOX&";} |
+---------+-----------------------------+-----------+-------+---------------------+---------------------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> update users set preferences='a:2:{s:16:"message_sort_col";s:4:"date";s:18:"message_sort_order";s:4:"DESC";}' where username like 'xxx@yyyy.tld';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from users where username like 'xxx@yyyy.tld';
+---------+-----------------------------+-----------+-------+---------------------+---------------------+----------+--------------------------------------------------------------------------------+
| user_id | username | mail_host | alias | created | last_login | language | preferences |
+---------+-----------------------------+-----------+-------+---------------------+---------------------+----------+--------------------------------------------------------------------------------+
| 5 | sheriff@chocolatfactory.com | localhost | | 2011-07-27 03:52:18 | 2011-08-10 15:31:50 | es_ES | a:2:{s:16:"message_sort_col";s:4:"date";s:18:"message_sort_order";s:4:"DESC";} |
+---------+-----------------------------+-----------+-------+---------------------+---------------------+----------+--------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>


Una vez hecho este cambio, el usuario tiene sus preferencias modificadas, pero al menos ya ve sus carpetas. Seguro que hay alguna manera más "fina" de hacerlo, pero el usuario se impacientaba y ya me estaba gritando al teléfono... así que ajo y agua ;)

Cuidadín con lo que tocáis!



4 comentarios:

Ricardo dijo...

hola, tengo una elastix y no encuentro la ubicacion del archivo que mencionas, me podrias colaborar, gracias

Esther Yébenes dijo...

Hola Ricardo,

no he trabajado nunca con Elastix pero no puede ser muy diferente. Has instalado desde algún manager o has descargado RC desde la web original? Si no existe main.inc.php mira a ver si hay algún archivo parecido (tipo main.php o algo así)

Prueba a buscar la directiva
create_default_folders
en los archivos de configuración
grep -r create_default_folders /path/to/RC
a ver si localizas.


Ya me dirás qué tal


Saludos!

amilkar dijo...

Hola Esther, a ver si me puedes dar una ayudita. Resulta que instale RC hace poco. Todavia no lo he afinado bien, apenas siguiendo los gritos que me dan mis usuarios. El problem es que los correos como que no se borran. O sea, en RC le das borrar y listo, no estan. Pero cuando accedes desde un cliente pop3(TB, OL, etc) pues ahi estan, y se descargan como si nada. He tocado varias config, ['flag_for_deletion'],['read_when_delete'] y otras, pero ninguna convinacion de cambio me resuelve. Te agradeceria un mundo una ayudita. sldos, amilkar

Esther Yébenes dijo...

Hola Amilkar,

parece un problema en la configuración. Comprueba las siguientes cosas:

1) asegúrate que el usuario con el que RC se conecta a los buzones (el servidor POP3 que utilices) es el mismo que el que utiliza el servidor de correo. En mi caso utilizo dovecot y postfix, y dovecot se ejecuta con el usuario postfix; así al acceder a los buzones tiene permisos para mover y borrar archivos (es tipo maildir)

2) comprueba que las carpetas definidas en el config/main.inc.conf para la papelera la pueda crear el sistema y realmente esté trabajando contra el sistema de correo que tengas montado

3) comprueba los errores en logs/errors, a ver si te da más información



Espero haberte sido de ayuda
Un saludo!