redmine mail reader

Некоторое время назад для ведения “задачаоборота” мы c небольшой группой “единомышленников” решили использовать Redmine. Коллеги стали замечать, что волосы у нас стали шелковистыми, одежда сияет белизной, а главное – СУХО! Ну и постепенно начали вовлекаться в процесс.
Сразу же, с порога, выдвинули претензию – а почему нельзя создать задачу из письма (Слава привет!) ? Главным аргументом против магии седьмого уровня Copy-Paste было то, что им приходит множество аттачментов в письмах, которые и являются сутью поставленной задачи. Их надо сохранить на диск и лишь потом прикрепить к задаче… Неудобно, ага.

Сходу не смог найти необходимый функционал ни в самом redmine, ни в рабочих плагинах( использую redmine из trunk-а, с ним многие плагины или не работают вовсе или наполняют его “глюками” в самых неожиданных местах). Посему пришлось наваять оный плагин самостоятельно. Суть его работы такова:
В gmail-ном ящике (да в принципе любой imap-сервер подойдёт) создаются ярлыки (папки) с названиями, соответствующими идентификаторам проектов в redmine.
Rake-таск из плагина (нужно периодически запускать по cron-у) проверяет наличие писем с этими ярлыками и создаёт новые задачи, в соответствующих проектах, прикрепляя все вложения к тикету. Для защиты от всякого рода спама на всякий случай письма принимаются только от зарегистрированных пользователей.

На мой взгляд получилась довольно удобная схема – нужное письмо форвардируется на почтовый ящик, где ему фильтрами Gmail-а добавляется ярлык с названием нужного проекта.

Если вам такой функционал интересен, то вы можете скачать плагин себе. Установка ничем не отличается от других плагинов – распаковываем содержимое в vendor/plugins, копируем config/mail_reader.yml.example в RAILS_ROOT/config/mail_reader.yml, редактируем конфиг, рестартуем redmine, добавляем модуль в настройках проектов и добавляем в cron задачу rake mailreader:check

Для работы требуется gem tmail для корректного вытягивания имён файлов во вложениях. Да я знаю, что он (tmail) уже имеется в составе actionmailer, но я так и не сообразил как корректно его загрузить – буду рад, если кто-нибудь поможет правильно подключить этот класс.

Отзывы? Пожелания? Добро пожаловать в комментарии!

Share to Facebook
Share to LiveJournal
Share to MyWorld
Share to Odnoklassniki
Share to Yandex

07.11.09  
MiRacLe
 |  ,  | RSS  | trackback url
  • silent

    А мы стандартный натравили, вроде тоже удобно. Единственное что пришлось править – отправителей делать анонимусами, а проект, куда попадают тикеты из писем – доступным анонимам.

  • Слава

    Привет!

  • Grom

    Cпасибо за плагин все прекрасно работает, а как отключить проверку пользователей по адресу?

  • http://miracle.rpz.name MiRacLe


    if author.nil?
    puts @@sender + " not found"
    return false
    end

    Надо заменить на что-то вроде:


    author = User.find(2) if author.nil? #2 - Анонимус

  • Grom

    Cпасибо все работает, а как сделать, что-бы задача создавалась не от анонима, а от реального адресата письма? Извините за наглость :-)

  • http://miracle.rpz.name MiRacLe

    Создавать пользователя на каждое входящее письмо? Допустим, но где взять данные для логина, пароля, имени, фамилии ? Ничего ведь кроме записи user@domain.tld нет…

  • Grom

    Понял, значит нельзя просто из заголовка брать адрес и вставлять его в качестве автора. Автором может быть только зарегистрированный пользователь? Жаль вообще-то у меня задача, что-бы сторонние клиенты могли писать на письмо и автоматически генерился трабл тикет и им обязательно приходил ответ с номером, как это делается сейчас с зарегистрированными пользователями. Извините, что отвлекаю вас :-( В руби я полный ноль, а изучать совсем нет времени :-(

  • http://miracle.rpz.name MiRacLe

    можно использовать нечто вроде:

    if author.nil?
    author = User.new
    author.firstname = 'mr'
    author.lastname = 'unknown'
    author.login = @@sender
    author.mail = @@sender
    author.save
    end

    Но как я уже писал – мне кажется это не очень разумным.

  • Grom

    Спасибо большое то-что нужно! А не подскажете где можно подправить текст письма с номером задачи которое генерится клиенту?

  • http://miracle.rpz.name MiRacLe

    app/views/mailer/*

Performance Optimization WordPress Plugins by W3 EDGE