Если вы хотите использовать Redmine, как Help Desk, никак не обойтись без постановок задач в систему по почте. Часто, такой функционал нужен и в обычной работе, для экономии времени: ответ на тикет не выходя из почтового редактора сильно ускоряет работу, если у вас множество задач.
Создатели Redmine позаботились об этом, и снабдили его функцией проверки почтового ящика, и заведения тикета на каждое письмо. О настройке такого функционала этот пост.
Я уже писал о установки системы Redmine на облачных серверах популярного хостера DigitalOcean. С тех пор многое изменилось. Теперь в большинстве случаев ничего устанавливать не придется. На DigitalOcean можно воспользоваться предустановленной аппликацией, которая создаст сервер с установленным Redmine.
К сожалению, отправку и получение почты автоматически DigitalOcean вам не настроит. О настройке отправки уведомлений о создании и редактировании тикетов я писал в вышеупомянутой статье. А сейчас расскажу о настройке получения писем.
По традиции, заведенной с прошлого поста, для примера будем использовать Яндекс.Почту. Сам процесс настройки довольно просто, если знать, что именно нужно делать. Но т.к. в интернете мало русскоязычных статей на эту тему, вот моя версия.
Инициировать проверку почтового ящика можно следующей командой:
rake -f /home/redmine/redmine/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" host=imap.yandex.ru ssl=YES username=NAME@yandex.ru password=PASSWORD project=PROJECT no_permission_check=1 unknown_user=accept port=993
где соответственно необходимо заменить
- NAME — логин в Яндекс почте;
- PASSWORD — пароль в Яндекс почте;
- PROJECT — id проекта в Redmine,
на собственные параметры.
Заменив необходимые параметры запускаем скрипт в командной строке. Если вы не увидили ошибок, значит проверка почты прошла успешно. Идем в веб-интерфейс Redmine и смотрим на последние созданные тикеты — они должны соответствовать письмам, которые были в проверяемом почтовом ящике.
Автозапуск скрипта
Теперь этот скрипт нужно установить в cron на автоматическое выполнение. Для этого открываем /etc/crontab:
# nano /etc/crontab
и вставляем последней строкой:
*/5 * * * * root rake -f /home/redmine/redmine/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" host=imap.yandex.ru ssl=YES username=NAME@yandex.ru password=PASSWORD project=PROJECT no_permission_check=1 unknown_user=accept port=993
после сохранения ваша почта будет проверятся каждые 5 минут. При необходимости, можно установить более короткое время.
Альтернативный вариант автозапуска
Или, что бы crontab был почище, создать скрипт импорта почты, сохранив его, например, в /root/redminemail.sh
#!/bin/bash PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin rake -f /home/redmine/redmine/Rakefile --silent redmine:email:receive_imap RAILS_ENV="production" host=imap.yandex.ru ssl=YES username=imstp@yandex.ru password=tri07nta project=im_stolplit no_permission_check=1 unknown_user=accept port=993
теперь назначим права на запуск скрипта:
chmod +x /root/redminemail.sh
После этого прописать в /etc/crontab, или в личним кронтабе # crontab -e, следующую строку:
*/5 * * * * /bin/bash /root/redminemail.sh
Если возникают ошибки, для быстроты отладки можно их фиксировать и сохранять в логе. Тогда строка получится такая:
*/5 * * * * /bin/bash /root/redminemail.sh 2>/var/log/cron-out.log
Сохраняем. Если использовали ctontab -e, проверяем записанные в крон задачи: crontab -l
Теперь можно перейти к тесту и написать на настраиваемый ящик пару писем.
Удачи!


Скажите а как вы побороли проверку сертификата ?? у меня при попытке проверки с яндекса вылазит ошибка
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Не подскажете как обойти ее ?? ни чего толкового не нашел пока.
сам спросил сам ответил :)
В общем требуется установсть в систему корневые сертификаты и все будет ок
например для меня (FreeBSD) это было сделано командой
cd /etc/ssl/ && curl -O http://curl.haxx.se/ca/cacert.pem && cp /etc/ssl/cacert.pem /etc/ssl/cert.pem
т.е. заходим в директорию с сертификатами
качаем себе свежий сертификат из центра сертификатов
ну и копируем его дод другим миенем т.к у меня искал сертификат именно с таким именем
Надеюсь кому нибудь пригодится :)
Спасибо, Qtronix, за публикацию решения.
Мне не пришлось этого делать, и так заработало.
Не удается организовать автозапуск, пишет, что команда rake не определена, хотя саму команду, без автозапуска прекрасно выполняет. Подскажите, пожалуйста.
[…] Redmine: проверка почты и создание задач. Ответ на задачи п… […]
Спасибо за статью
Вам спасибо, Александр!
Сделал все по инструкции — при тесте ошибок не выдает — но и задачи не создаются — куда дальше копать?
Добрый вечер, Алексей.
Если не выдает ошибок, возможно что-то с правами на создание задач в редмайне. Так сложно сказать.
[…] Redmine: проверка почты и создание задач. Ответ на задачи п… […]
Отличная инструкция!!! Спасибо, замечательно работает, если руби и редмин установлены от рута. Сейчас переустановила и руби, и редмин от пользователя, и не могу прописать путь правильно в скрипте для крона (из командной строки при запуске команды — всё работает на ура!)
Подсказали, что пути именно пользователя можно найти, введя команду echo $PATH, вывод команды добавила в PATH=
Теперь выдает ошибку:
rake aborted!
LoadError: cannot load such file — bundler/setup
/opt/redmine0/config/boot.rb:4:in `’
/opt/redmine0/config/application.rb:1:in `’
/opt/redmine0/Rakefile:5:in `’
Хотя bundler установлен… Может, ещё каки пути нужны?
нужно Из командной строки команда выполняется, а
так кронджобы писать только идиот будет, для этого есть специальная утилита — `crontab -e`