Reducir el envío de email en Redmine

Redmine es una herramienta estupenda para gestionar proyectos (yo la uso para proyectos informáticos), pero cuando hay varios usuarios, roles y demás, el envío de emails que genera llegan a rozar el spam.

Para evitar esto, hay un plugin llamado Redmine_Mail_Notification que ayuda un poco. El desarrollador original del plugin se llama Goyello, y puedes acceder a este proyecto en GitHub:

https://github.com/GOYELLO/Redmine_Mail_Configuration_plugin.

Probé a instalarlo sobre la versión de Redmine que tengo (no estoy seguro de la versión, pero es más moderna que la 1.0.0) y me daba algunos problemas. Principalmente porque hay que aplicar un patch a algunos ficheros de Redmine. Navegando por el proyecto, vi que hay otro desarrollador que ha mejorado el plugin para que no sea necesario aplicar ningún patch. Este segundo desarrollador es Friflaj, y el proyecto se puede descargar desde su GitHub:

https://github.com/friflaj/redmine_mail_configurator.

Para descargarlo, he ido al directorio en el que tengo Redmine, y he seguido los pasos que se indican en la Guía de instalación de plugins de Redmine, concretamente hice:

$ cd /var/www/redmine/vendor/plugins
$ git clone https://github.com/friflaj/redmine_mail_configurator.git
$ rake db:migrate_plugins RAILS_ENV=production
$ sudo /etc/init.d/apache2 restart

Tras realizar estos pasos, el plugin funciona, pero parece que hay algunas frases sin traducción. Para traducirlas, he añadido las siguientes líneas…:

es:
  label_user_mail_assigned_only_mail_notification: Envía email sólo si estoy asignado/a a la petición
  label_user_mail_block_mail_notification: No quiero ser avisado/a por email. Gracias
  label_mail_if: Enviar email si
  label_new_issue_created: Se ha creado una nueva petición
  label_issue_assigned_to: "Petición asignada a:"
  label_no_assignation: Ninguno
  label_use_custom_mail: Especificar una dirección de mail diferente

…en los siguientes ficheros (tuve que crear los ficheros):

/var/www/redmine/vendor/plugins/redmine_mail_configuration/config/locales/es.yml
/var/www/redmine/vendor/plugins/redmine_mail_configuration/lang/es.yml
/var/www/redmine/vendor/plugins/redmine_mail_configuration/locales/es.yml

Cabe decir que antes de hacer todo esto, y por precaución frente a mis manazas, hice una copia de la base de datos de Redmine y de los ficheros subidos, siguiendo este esquema:

Base de datos:

mysqldump -u <username> -p <password> <redmine_database> | gzip > /path/to/backup/db/redmine_`date +%y_%m_%d`.gz

Attachments:

rsync -a /path/to/redmine/files /path/to/backup/files

Todo esto lo he sacado tirando del hilo, que empezó en el blog de Goyello en:

http://blog.goyello.com/2009/07/16/how-to-manage-email-notifications-within-redmine/

Una vez realizados los pasos anteriores, en la configuración de mi cuenta se puede ver:

Redmine con el plugin de notificación por email

Sólo un comentario final, la última opción (No quiero emails) es la más restrictiva y se aplica al margen de las opciones anteriores. Esto es, que si marco la última no recibo ni un correo aunque marque alguna de las anteriores.

Muchos saludos, después de muchos meses :)

EDICIÓN:

Al poner en marcha el sistema, tuve un problema al acceder a la configuración de cada proyecto (tab de ‘Settings’ o ‘Configuración’ para un proyecto). Me daba un ‘Internal Error’ de Redmine, y mirando el log me salía un error en el fichero:

vendor/plugins/redmine_mail_configurator/_mail_if.rhtml

Venía a decir que “undefined local variable or method ‘members'”. No sé mucho de Ruby (ego-code alert: no sé nada de Ruby) pero estaba claro que la variable ‘members’ no la encontraba. Buscando por ahí encuentro que se puede pillar esa variable, así que edito el fichero _mail_if.rhtml y añado la siguiente línea:

<% members = @project.member_principals.find(:all, :include => [:roles, :principal]).sort %>

justo antes de que se use(  <% members.each do |assigned_member| %> )

Y… tachán!

También he aprovechado para cambiar un poco una frase de la traducción inglesa, que sugería que uno es asignado a una petición, cuando en realidad es la petición la que es asignada a uno. La frase que he cambiado es:

label_user_mail_assigned_only_mail_notification: Mail me only if an issue is assigned to me

en los siguientes ficheros:

/var/www/redmine/vendor/plugins/redmine_mail_configuration/config/locales/en.yml
/var/www/redmine/vendor/plugins/redmine_mail_configuration/lang/en.yml
/var/www/redmine/vendor/plugins/redmine_mail_configuration/locales/en.yml

~ por telemacro en 27 septiembre, 2011.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: