Вт. Ноя 11th, 2025
Получение почты в Redmine

Если вы хотите использовать Redmine, как Help Desk, никак не обойтись без постановок задач в систему по почте. Часто, такой функционал нужен и в обычной работе, для экономии времени: ответ на тикет не выходя из почтового редактора сильно ускоряет работу, если у вас множество задач.
Создатели Redmine позаботились об этом, и снабдили его функцией проверки почтового ящика, и заведения тикета на каждое письмо. О настройке такого функционала этот пост.

Я уже писал о установки системы Redmine на облачных серверах популярного хостера DigitalOcean. С тех пор многое изменилось. Теперь в большинстве случаев ничего устанавливать не придется. На DigitalOcean можно воспользоваться предустановленной аппликацией, которая создаст сервер с установленным Redmine.

Автоустановка Redmine на DigitalOcean

К сожалению, отправку и получение почты автоматически 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

Теперь можно перейти к тесту и написать на настраиваемый ящик пару писем.
Удачи!

12 комментарий для “Redmine: проверка почты и создание задач. Ответ на задачи по почте”
  1. Скажите а как вы побороли проверку сертификата ?? у меня при попытке проверки с яндекса вылазит ошибка
    OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    Не подскажете как обойти ее ?? ни чего толкового не нашел пока.

    1. сам спросил сам ответил :)

      В общем требуется установсть в систему корневые сертификаты и все будет ок

      например для меня (FreeBSD) это было сделано командой

      cd /etc/ssl/ && curl -O http://curl.haxx.se/ca/cacert.pem && cp /etc/ssl/cacert.pem /etc/ssl/cert.pem
      т.е. заходим в директорию с сертификатами
      качаем себе свежий сертификат из центра сертификатов
      ну и копируем его дод другим миенем т.к у меня искал сертификат именно с таким именем

      Надеюсь кому нибудь пригодится :)

      1. Спасибо, Qtronix, за публикацию решения.
        Мне не пришлось этого делать, и так заработало.

  2. Не удается организовать автозапуск, пишет, что команда rake не определена, хотя саму команду, без автозапуска прекрасно выполняет. Подскажите, пожалуйста.

  3. Сделал все по инструкции — при тесте ошибок не выдает — но и задачи не создаются — куда дальше копать?

    1. Добрый вечер, Алексей.
      Если не выдает ошибок, возможно что-то с правами на создание задач в редмайне. Так сложно сказать.

  4. Отличная инструкция!!! Спасибо, замечательно работает, если руби и редмин установлены от рута. Сейчас переустановила и руби, и редмин от пользователя, и не могу прописать путь правильно в скрипте для крона (из командной строки при запуске команды — всё работает на ура!)

    Подсказали, что пути именно пользователя можно найти, введя команду 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 установлен… Может, ещё каки пути нужны?
    нужно Из командной строки команда выполняется, а

  5. так кронджобы писать только идиот будет, для этого есть специальная утилита — `crontab -e`

Комментарии закрыты.