Solucionar problemas con RoundCube de addressbook.

Posted by David on Thursday, October 25, 2012

Buenas…

Desde hace algún tiempo vengo usado las versiones de RoundCube desde sus faces betas hasta la estable que salio hace poco, en una de las ultima actualizaciones me encontré con una serie de pequeños problemas que son el fruto de no hacer los UPGRADE bien, todo hay que decirlo desde luego.

Al usuario le aparece este mensaje, después de crear el usuario y darle a guardar.

An error occured while saving

Primero que nada, hacemos una copia de la DDBB para evitar problemas.

$ mysqldump -u USER roundcubemail > ~/201210241053.roundcubemail.sql -p 

Pues bien, uno de los problemas que tenía era que los usuarios NO podían añadir nuevos contactos a sus addressbook, este problema viene de la TABLE users, donde no encuentra words a la hora de guardar el contacto el debug canta…

[Last executed query: INSERT INTO contacts (user_id, changed, del, `vcard`, `name`,`email`, `firstname`, `surname`, `words`) VALUES ... [Native code: 1054] [Native message: Unknown column `words` in `field list`] 

Pues para solucionar esto.

$ mysql - USER -p
mysql use roundcubemail;
mysql ALTER TABLE `contacts` ADD `words` VARCHAR( 500 ) NULL DEFAULT NULL; 

Ok, ahora nuestros usuarios podrán añadir contactos a sus addressbook.

Otro problema con el que me encontraba desde la versión 0.7.1 con está 0.8.1 era de que X usuarios no podían hacer login en RoundCube, pero sí en un squirrelmail. A diferencia del error anterior este no cantaba nada por ningún lado, ni logs de postfix, dovecot, apache…. Así que mi parche es el siguiente.

$ mysql -u usuario -p
mysql SELECT * FROM `users`; 		# Vemos la lista de usuarios.
mysql INSERT INTO `roundcubemail`.`users` (`user_id`, `username`, `mail_host`, `alias`, `created`, `last_login`, `language`, `preferences`) VALUES (NULL, `elmisterioso`, `dominio.org`, ``, `2012-10-20 10:00:00`, `2012-10-24 10:00:00`, `es_ES`, `a:1:{s:11:"search_mods";a:4:{s:1:"*";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}s:4:"Sent";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:6:"Drafts";a:2:{s:7:"subject";i:1;s:2:"to";i:1;}s:5:"INBOX";a:2:{s:7:"subject";i:1;s:4:"from";i:1;}}}`); 	

Ok, aquí simplemente añadimos al usuario que no puede hacer login.

mysql exit;

Procedemos a entrar en nuestro roundcube, con el usuario en cuestión.ACLARO esto es para salir del paso, lo ideal sería borrar la BBDD y crearla como es debido.

Saludos