Настройка SMTP-сервера JIRA для отправки уведомлений

Для того чтобы JIRA могла отправлять уведомления о различных событиях, вам необходимо сначала настроить почтовый сервер SMTP в JIRA.

Для того чтобы выполнить определение или изменение почтового сервера SMTP, выполните следующие шаги:

  1. Войдите в систему как пользователь с глобальными разрешениями системных администраторов JIRA.
  2. Выберите Шестеренка>«Система» (System). Выберите «Почта» (Mail)> «Исходящая почта» (Outgoing Mail), чтобы открыть страницу SMTP Mail Server.

 Комбинация клавиш: g + g + начало ввода исходящей почты

Если почтовый сервер SMTP не определен, на странице будет отображаться кнопка «Настроить новый SMTP-почтовый сервер» (Configure new SMTP mail server). Если он уже определен, информация о SMTP- почтовом сервере будет отображаться на странице вместе с набором рабочих ссылок справа.

  1. Нажмите кнопку «Настроить новый почтовый сервер SMTP» (Configure new SMTP mail server), чтобы определить новый почтовый сервер SMTP, или ссылку «Редактировать» (Edit) справа, чтобы изменить существующий почтовый сервер SMTP, который откроет страницу «Добавить / обновить SMTP-сервер» (Add/Update SMTP Mail Server).
  1. Заполните верхнюю часть этой страницы следующим образом:

Имя

Укажите произвольное имя для идентификации этой конфигурации почтового сервера SMTP.

Описание

(Необязательно) Укажите произвольное описание, описывающее почтовый сервер SMTP. Это описание (Name) появляется под именем почтового сервера SMTP на странице конфигурации почтового сервера SMTP (SMTP Mail Server).

Из адреса

Укажите адрес электронной почты, используемый в поле «адрес отправителя» (или «из») уведомлений, отправленных JIRA, если это не переопределено в конфигурации проекта.

( Укажите только адрес электронной почты для этого поля (например, jira@example-company.com). JIRA будет использовать это значение для построения полного заголовка «из» на основе текущего пользователя («Joe Bloggs (JIRA) <jira@example-company.com>»).

Чтобы изменить заголовок «из» (from), перейдите в «Администрирование» (Administration)> «Система» (System)> «Общая настройка» (General Configuration) и (в разделе «Настройки» (Settings)) отредактируйте поле «Электронная почта» (Email from).

Префикс электронной почты

Определите тему электронных писем, посланных от этого сервера, который будет использовать эту последовательность как приставку. Это полезно для Ваших пользователей так, чтобы они могли фильтровать уведомления электронной почты от JIRA основанные на этой приставке.

 

Снимок экрана: добавление (или обновление) SMTP-сервера

 

Укажите имя хоста или местоположение JNDI для вашего почтового сервера SMTP.

Во второй части страницы «Добавить / обновить почтовый сервер SMTP» ( Add/Update SMTP Mail Server) указаны сведения (Server Details) о почтовом сервере SMTP, на который JIRA отправит почту. Есть два способа сделать это. Или:

  • указать сведения о хосте SMTP вашего почтового сервера SMTP;

Или:

  • укажите местоположение JNDI объекта javax.mail.Session, то есть используйте JNDI для поиска почтового сервера SMTP, который вы предварительно сконфигурировали на своем сервере приложений. Это имеет следующие преимущества:
    • Повышенная безопасность (Better security): данные электронной почты недоступны администраторам JIRA через интерфейс администрирования JIRA и не хранятся в файлах резервных копий JIRA.
    • Дополнительные параметры SMTP (More SMTP options): например, вы можете переключиться на RSET вместо NOOP для тестирования соединений, установив свойство mail.smtp.userset.
    • Централизованное управление (Centralised management): данные электронной почты настраиваются в том же месте, что и данные базы данных, и могут быть настроены с помощью инструментов администрирования сервера приложений.

Укажите данные хоста SMTP

Большинство пользователей настраивают почтовый сервер SMTP JIRA, указав детали узла SMTP этого почтового сервера непосредственно в JIRA.

  1. В разделе хоста SMTP (SMTP host) на странице «Добавить / обновить SMTP-почтовый сервер» (Add/Update SMTP Mail Server) (см. выше) заполните следующие поля формы:

Поставщик услуг

(недоступно при обновлении существующего почтового сервера SMTP)

Выбирайте между вашим почтовым сервером SMTP (например, Custom) или Gmail (например, Google Apps Mail / Gmail) или Yahoo! (т. е. Yahoo! Mail Plus) в качестве поставщика услуг для вашего почтового сервера SMTP.

Если вы выберете Gmail или Yahoo! а затем переключитесь обратно на «Пользовательский» (Custom), некоторые из ключевых полей этого раздела автоматически будут заполнены соответствующими настройками почтового сервера SMTP для этих поставщиков услуг.

Протокол

Выберите, является ли ваш почтовый сервер SMTP стандартным (то есть SMTP) или безопасным (то есть SECURE_SMTP).

Имя хоста

Укажите имя хоста или IP-адрес почтового сервера SMTP. Например. smtp.yourcompany.com

Порт SMTP

(Необязательно) Номер порта SMTP, обычно 25 для SMTP или 465 для SMTPS, любой из которых предполагается, если это поле остается пустым.

Тайм-аут

(Необязательно) Укажите период ожидания в миллисекундах, который обрабатывается как 10000, если это поле остается пустым. Указание 0 или отрицательное значение здесь приведет к тому, что JIRA будет ждать бесконечно для ответа SMTP-сервера.

TLS

(Необязательно) Установите этот флажок, если ваш SMTP-хост использует протокол Transport Layer Security (TLS).

имя пользователя

(Необязательно) Если ваш SMTP-хост требует аутентификации, укажите здесь имя пользователя этих учетных данных. (Большинство серверов компании требуют аутентификации для ретрансляции почты нелокальным пользователям.)

пароль

(Необязательно) Опять же, если ваш SMTP-хост требует аутентификации, укажите пароль, связанный с указанным вами именем пользователя.

При редактировании существующего почтового сервера SMTP установите флажок «Изменить пароль» (Change Password), чтобы получить доступ и изменить это поле.

 

 Обратите внимание:

  • Если сценарий запуска вашего сервера использует свойства системы - Dmail (например, mail.smtp.host или mail.smtp.port), они переопределяют параметры, указанные в приведенной выше форме. Кроме того, при необходимости вы можете вручную указать имя хоста, которое JIRA сообщает о себе на SMTP-сервере, установив –

               Dmail.smtp.localhost

  • SMTP должен поддерживать тип многостраничного содержимого. Без этого письма не смогут отправляться.
  1. (Необязательно) Нажмите кнопку «Проверить соединение» (Test Connection), чтобы проверить, что JIRA может связываться с настроенным вами почтовым сервером SMTP.
  2. Нажмите кнопку «Добавить» (Add) или «Обновить» (Update), чтобы сохранить конфигурацию почтового сервера SMTP JIRA.

Укажите «Местоположение JNDI»

В качестве альтернативы указывая детали хоста SMTP непосредственно в JIRA, вы можете настроить их на своем сервере приложений, а затем просмотреть предварительно настроенную почтовую  сессию через JNDI.

В разделе «Расположение JNDI» (JNDI Location) на странице «Добавить / обновить почтовый сервер SMTP» (Add/Update SMTP Mail Server) (см. выше) укажите местоположение объекта javax.mail.Session, который будет использоваться при отправке электронной почты, в поле «Расположение JNDI» (JNDI Location). Это начнется с префикса java: comp / env /

Настройка местоположения JNDI

Местоположение JNDI (JNDI Location), указанное вами в JIRA, будет зависеть от сервера приложений и конфигурации JIRA. Расположение JNDI обычно настраивается на сервере приложений, который запускает JIRA. Следовательно, JIRA необходимо будет перезапустить после настройки JNDI-местоположения (JNDI Location) для этой конфигурации, доступной в JIRA.

Например, в Tomcat 6 (сервер приложений в комплекте с «рекомендуемыми» дистрибутивами JIRA) ваше местоположение JNDI будет java: comp / env / mail / JiraMailServer, и вы добавите следующий раздел в conf / server.xml своего Каталога установки JIRA, внутри узла <Контекст />:


<Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">

   <Resource name="mail/JiraMailServer"
     auth="Container"
     type="javax.mail.Session"
     mail.smtp.host="mail.yourcompany.com"
     mail.smtp.port="25"
     mail.transport.protocol="smtp"
     mail.smtp.auth="true"
     mail.smtp.user="jirauser"
     password="mypassword"
/>  ... 
</Context> 

Или если вы не требуете аутентификации (например, если вы отправляете через localhost или только внутри компании):


<Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false">
 ...
   <Resource name="mail/JiraMailServer"
     auth="Container"
     type="javax.mail.Session"
     mail.smtp.host="localhost"
     mail.smtp.port="25"
     mail.transport.protocol="smtp"
 />
 ...
</Context>

Если вы запускаете JIRA на сервере приложений, отличном от Apache Tomcat (который не поддерживается JIRA-конфигурацией), аналогичная методика настройки местоположения JNDI на ваш почтовый сервер SMTP должна применяться к этому серверу приложений. Подробнее см. в документации по Transaction Factory.

Если у вас возникли проблемы с подключением, добавьте параметр mail.debug = "true" в элемент <Resource /> (см. выше), который позволит вам увидеть детали SMTP-уровня «отладки» при тестировании соединения.

Перемещение классов JavaMail

Вам также необходимо убедиться, что классы JavaMail (как правило, в библиотечных файлах JAR) присутствуют в пути к классам вашего приложения и что они не конфликтуют с библиотечными файлами JARA JIRA. Это необходимо, потому что сам сервер приложений (а не JIRA) устанавливает соединение SMTP и, таким образом, сервер приложений не может видеть файлы библиотеки JAR в загрузчике классов JIRA.

Некоторые операционные системы могут связывать классы JavaMail с серверами приложений (например, Tomcat в Red Hat Enterprise Linux). Это может противоречить копии JIRA классов JavaMail, что приводит к ошибкам, например:


java.lang.NoClassDefFoundError: javax / mail / Authenticator

или:


java.lang.IllegalArgumentException: Mail server at location [java:comp/env/mail/JiraMailServer] is not   of required type javax.mail.Session.

Более легкие серверы приложений, такие как Apache Tomcat (включая тот, который включен в «рекомендуемые» дистрибутивы JIRA), не всегда поставляются с JavaMail.

Чтобы предотвратить конфликты, проверьте папку lib / вашего сервера приложений:

  • Если сервер приложений уже содержит mail-1.4.1.jar и activation-1.1.1.jar, просто удалите mail-1.4.1.jar и activation-1.1.1.jar из <jira-application-dir> / WEB-INF / lib / подкаталога каталога установки JIRA.
  • Если сервер приложений не содержит mail-1.4.1.jar и activation-1.1.1.jar, переместите mail-1.4.1.jar и activation-1.1.1.jar из <jira-application-dir> / WEB-INF / lib / подкаталога каталога установки JIRA в подкаталог lib / каталога JIRA Installation (для «рекомендуемых» дистрибутивов JIRA) или lib /подкаталога на сервере приложений, на котором запущена JIRA.

SMTP через SSL

Вы можете шифровать электронную почту между JIRA и вашим почтовым сервером через SSL, если ваш почтовый сервер поддерживает SSL.

Во-первых, вам нужно будет импортировать сертификат SMTP-сервера в хранилище ключей Java. Процесс описан на странице «Подключение к службам SSL».

  Важное примечание. Без импорта сертификата JIRA не сможет связаться с вашим почтовым сервером.

Во-вторых, отредактируйте свойства подключения почтового сервера и укажите starttls и SSLSocketFactory. Из {$ JIRA_INSTALL} /conf/server.xml (в этом примере используется сервер Gmail):


<Resource name="mail/GmailSmtpServer"
 auth="Container"
 type="javax.mail.Session"
 mail.smtp.host="smtp.gmail.com"
 mail.smtp.port="465"
 mail.smtp.auth="true"
 mail.smtp.user="myusername@gmail.com"
 password="mypassword"
 mail.smtp.starttls.enable="true"
 mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>

Исправление проблем

Полезным советом для отладки проблем, связанных с почтой в JIRA, является установка свойства - Dmail.debug = true при запуске. Это заставит детали уровня протокола почтовых взаимодействий JIRA быть зарегистрированными.  Кроме того, включение уровня журнала JIRA покажет, когда служба запущена и как обрабатываются письма.

Общие проблемы

  • Если JIRA, похоже, не создает или не отправляет электронные письма или не создает задач и комментариев по электронной почте, ваша установка JIRA может испытывать ошибки OutOfMemory. Проверьте файлы журнала на ошибки OutOfMemory. Если есть ошибки OutOfMemory, перезапустите JIRA и исследуйте ошибки.
  • Если вы обнаружите, что входящие электронные письма просто исчезли, убедитесь, что вы случайно не запустили вторую копию JIRA (например, в промежуточной среде), которая загружает и удаляет сообщения электронной почты. См. страницу «Восстановление данных» для флагов, которые вы должны установить для предотвращения обработки почты.
  • Если вы получаете ошибки «Задержка почты» (Mail Relay), убедитесь, что вы указали имя пользователя (Username) и пароль (Password) в разделе SMTP Host на странице конфигурации SMTP Mail Server JIRA.

Получение помощи

Если вы не можете решить проблему самостоятельно, создайте заявку на поддержку в проекте «JIRA», и мы вам поможем.

 

По материалам Atlassian JIRA Administrator's Guide: Configuring JIRA's SMTP Mail Server to Send Notifications