Как настроить почтовый сервер JES
Для того, чтобы использовать систему уведомлений и возможность импортировать письма электронной почты как задачи, TrackStudio нужен POP3/SMTP сервер. Вы можете использовать для этих целей любой известный вам сервер (или даже почтовый сервис, такой как Gmail или Яндекс.Почта). Для настройки и тестирования вы также можете использовать поставляемый вместе с TrackStudio Standalone преднастроенный Java E-mail Server (JES).
Чтобы использовать JES для отправки уведомлений:
- Откройте файл jes/etc/mail.conf в текстовом редакторе. Раскомментируйте параметр defaultsmtpservers и укажите адрес SMTP-сервера вашей организации.
- Запустите Java E-mail Server (jes/jes). (Для запуска под ОС GNU/Linux используйте команду sudo sh jes
- Запустите приложение для управления сервером TrackStudio (SMAN).
- Перейдите на вкладку "Электронная почта", а затем на "Оповещения по электронной почте".
- Включите опцию "Разрешить оповещения по электронной почте". Остальные параметры не меняйте.
- Укажите порт для SMTP-сервера. Обычно это порт 25 (в таком случае поле можно оставить пустым), но если такой порт уже занят, вы можете указать другой в файле jes/etc/mail.conf
- Нажмите кнопку "Старт" и дождитесь окончания запуска TrackStudio.
- Войдите в систему через ваш браузер под вашей учетной записью.
- Укажите ваш адрес электронной почты в настройках пользователя (Чтобы перейти к настройкам своей учетной записи, кликните на вашем имени в приветствии вверху страницы в TrackStudio и затем нажмите кнопку "Редактировать").
- Перейдите к проекту, для которого вы хотите создать уведомление.
- В меню выберите пункт "Оповещения о событиях" (если такого пункта меню нет, значит вы не включили в Server Manager возможность отправлять оповещения.
- Создайте оповещение о событиях, как это описано в статье документации "Как оповещать пользователей об изменениях по e-mail"
Как это работает:
- Кто-то из пользователей изменяет или добавляет задачу, выполняет над задачей операцию или оставляет комментарий.
- Если указанная задача удовлетворяет условиям фильтра, заданного для оповещения, TrackStudio создает сообщение электронной почты и отправляет его через указанный SMTP-сервер (в данном случае JES) подписчикам, для которых создано это оповещение.
- JES перенаправляет это сообщение на сервер, указанный в параметре defaultsmtpservers в файле mail.conf.
- Почтовый сервер отправляет сообщения в ящики электронной почты пользователей.
- Затем пользователи получают это сообщение с помощью своих почтовых клиентов.
Чтобы использовать JES для приема сообщений электронной почты:
- Настройте JES для отправки уведомлений, как описано выше и убедитесь, что оповещения доходят до адресатов.
- Запустите Java E-mail Server (jes/jes). (Для запуска под ОС GNU/Linux используйте команду sudo sh jes
- Запустите приложение для управления сервером TrackStudio (SMAN).
- Перейдите на вкладку "Электронная почта", а затем на "Регистрация задач и сообщений по электронной почте".
- Включите опцию "Разрешить импорт e-mail"
- Укажите периодичность импорта в минутах. При тестировании лучше указать минимальную периодичность в 1 минуту, чтобы не приходилось долго ждать обработки писем в очереди.
- Укажите адрес почтового сервера (для целей тестирования можно оставить 127.0.0.1)
- Укажите порт для POP3-сервера. Обычно это порт 110 (в таком случае поле можно оставить пустым), но если такой порт уже занят, вы можете указать другой в файле jes/etc/mail.conf
- Нажмите кнопку "Старт" и дождитесь окончания запуска TrackStudio.
Как это работает:
- Пользователь отправляет письмо на адрес trackstudio@127.0.0.1.
- JES определяет, что адрес получателя находится в локальном домене и пересылает его в соответствующий внутренний ящик, который используется TrackStudio
- Когда TrackStudio определяет наличие сообщения в ящике, она обрабатывает его и, в зависимости от результатов обработки, создает задачу или комментарий к задаче.
Для тестирования вы можете создать почтовые ящики для существующих пользователей TrackStudio на сервере JES. Для этого:
- Остановите сервер JES
- Откройте файл jes/etc/user.conf
- Создайте в нем записи вида user.username@localhost=<password>
- Запустите сервер JES.
- В почтовом клиенте укажите логин username@localhost и заданный пароль.
Подробнее о настройке импорта задач из электронной почты читайте в статье "Как импортировать письма от пользователей в задачи"
Отладка работы системы почтовых уведомлений
Логи работы почтового сервера Java Email Server находятся в файле jes/log/jes.log. Вы можете настроить вывод этих логов в файле jes/etc/log.conf (это обычный конфигурационный файл логгера log4j). Для отладки лучше использовать уровень debug.
Очередь отправки сообщений можно посмотреть в папке jes/etc/smtp вашего экземпляра TrackStudio. Если в этой папке есть файлы с расширением .ser и они из нее не исчезают, значит какие-то сообщения сервер jes не может отправить. Вы можете открыть файл с расширением .ser в любом текстовом редакторе и посмотреть, от кого и кому это письмо.
После приема почты сервером JES сообщения раскладываются в папки, соответствующие ящикам учетных записей. Так, например, сообщения для analyst@localhost будут складироваться в папку jes/etc/users/analyst@localhost в виде текстовых файлов, пока не будут удалены самим получателем из почтового клиента.
Для того, чтобы посмотреть логи отправки почтовых сообщений системой TrackStudio, либо посмотреть логи импорта сообщений, в файле trackstudio.mail.properties установите параметр mail.debug=true.
После запуска TrackStudio в файл trackstudio.log будут писаться сообщения логгера:
com.trackstudio.app.adapter.service.BaseStoreServiceAdapter:processImpl:48 - START ADAPTER:com.trackstudio.app.adapter.service.BaseStoreServiceAdapter 2012-04-11 14:18:51,303 DEBUG com.trackstudio.app.adapter.service.BaseStoreServiceAdapter:processImpl:105 - CLOSE ADAPTER:com.trackstudio.app.adapter.service.BaseStoreServiceAdapter 2012-04-11 14:18:51,390 DEBUG com.trackstudio.app.adapter.service.BaseFilterServiceAdapter:getNextNextRun:83 - next run time java.util.GregorianCalendar[time=1334140260000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=10800000,dstSavings=3600000,useDaylight=true,transitions=130,lastRule=java.util.SimpleTimeZone[id=Europe/Moscow,offset=10800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=7200000,startTimeMode=1,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=7200000,endTimeMode=1]],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=1,YEAR=2012,MONTH=3,WEEK_OF_YEAR=16,WEEK_OF_MONTH=3,DAY_OF_MONTH=11,DAY_OF_YEAR=102,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=31,SECOND=0,MILLISECOND=0,ZONE_OFFSET=10800000,DST_OFFSET=3600000] 2012-04-11 14:18:51,473 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:processSubscription:440 - START SEND subscription 2012-04-11 14:18:51,490 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:79 - ************ ALERT DISTRIBUTION *********** 2012-04-11 14:18:51,490 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:80 - DISTRIBUTION NAME: Эскалация первой линии 2012-04-11 14:18:51,490 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:81 - FILNET NAME: Эскалация первой линии 2012-04-11 14:18:51,491 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:82 - TASK NAME: Инциденты 2012-04-11 14:18:51,491 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:83 - USER NAME: Escalator Bot 2012-04-11 14:18:51,530 DEBUG com.trackstudio.app.adapter.email.SendMsgFJTask:run:102 - Send message to escalator1 escalator@localhost 2012-04-11 14:18:51,747 DEBUG com.trackstudio.kernel.manager.FilterManager:makeFValue:418 - CLOSE SESSION FilterManager 2012-04-11 14:18:51,753 DEBUG com.trackstudio.kernel.manager.FilterManager:getTaskFValue:537 - TaskFValue map: {UDFff8081812e9fac85012e9fe177300158=[_ne_любое значение], display=[UDFff8081812e9fac85012e9fe177300158, deadline, taskname, tasknumber], sortorder=[;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;], subtask=[1]} 2012-04-11 14:18:52,457 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:getDataMap:153 - mailFrom is trackstudio@localhost 2012-04-11 14:18:52,460 DEBUG com.trackstudio.kernel.manager.FilterManager:makeFValue:418 - CLOSE SESSION FilterManager 2012-04-11 14:18:52,461 DEBUG com.trackstudio.kernel.manager.FilterManager:getTaskFValue:537 - TaskFValue map: {UDFff8081812e9fac85012e9fe177300158=[_ne_любое значение], display=[UDFff8081812e9fac85012e9fe177300158, deadline, taskname, tasknumber], sortorder=[;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;], subtask=[1]} 2012-04-11 14:18:53,207 DEBUG com.trackstudio.app.adapter.email.EmailSender:send:124 - Send e-mail subject :: Инциденты X-Priority : null 2012-04-11 14:18:53,223 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:90 - RESULT DISTRIBUTION: false 2012-04-11 14:18:53,224 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:sendMsg:91 - 2012-04-11 14:18:53,224 DEBUG com.trackstudio.app.adapter.email.FilterNotifyAdapterManager:processSubscription:491 - FINISHED SEND subscription