2015-07-08 3 views
7

У нас есть проект в Джире, который мы используем как почтовый ящик для электронной почты. Не все люди, отправляющие электронные письма, являются пользователями JIRA (и их не должно быть). Тем не менее, мы хотели бы сообщить о получении электронной почты. Адрес электронной почты является частью описания проблемы.Jira Script Runner - Почта не отправляется почтой Функция Create Transition

Я знаю некоторые плагины там, но вместо замены Mailhandlers я пытаюсь написать groovy-скрипт для адаптации JIRA this code, который я хочу опубликовать в Post Function при переходе CREATE рабочего процесса.

Следующий код работает отлично, когда я хватаю существующий тест-эмиссионного и запустить скрипт в консоли:

import com.atlassian.jira.ComponentManager 
import com.atlassian.jira.issue.Issue 
import com.atlassian.jira.issue.IssueManager 
import com.atlassian.mail.Email 
import com.atlassian.mail.server.MailServerManager 
import com.atlassian.mail.server.SMTPMailServer 

ComponentManager componentManager = ComponentManager.getInstance() 
MailServerManager mailServerManager = componentManager.getMailServerManager() 
SMTPMailServer mailServer = mailServerManager.getDefaultSMTPMailServer() 

if (mailServer) { 
    if (true) { 

     IssueManager issueManager = componentManager.getIssueManager()  
     Issue issue = issueManager.getIssueObject("IN-376") 

     def grabEmail = { 
      (((it.split( "\\[Created via e-mail received from:")[1]).split("<")[1]).split(">")[0]) 
     } 
     String senderAddress = grabEmail("${issue.description}") 

     Email email = new Email(senderAddress) 
     email.setSubject("JIRA Ticket erstellt: ${issue.summary}") 
     String content = "Content ----> by Issue2 ${issue.description}" 
     email.setBody(content) 
     mailServer.send(email) 


    } 
} 

Увы, он не будет работать в пост функции, как это:

import com.atlassian.jira.ComponentManager 
import com.atlassian.jira.issue.Issue 
//import com.atlassian.jira.issue.IssueManager 
import com.atlassian.mail.Email 
import com.atlassian.mail.server.MailServerManager 
import com.atlassian.mail.server.SMTPMailServer 

ComponentManager componentManager = ComponentManager.getInstance() 
MailServerManager mailServerManager = componentManager.getMailServerManager() 
SMTPMailServer mailServer = mailServerManager.getDefaultSMTPMailServer() 

if (mailServer) { 
    if (true) { 

     //IssueManager issueManager = componentManager.getIssueManager()  
     //Issue issue = issueManager.getIssueObject("IN-376") 

     def grabEmail = { 
      (((it.split( "\\[Created via e-mail received from:")[1]).split("<")[1]).split(">")[0]) 
     } 
     String senderAddress = grabEmail("${issue.description}") 

     Email email = new Email(senderAddress) 
     email.setSubject("JIRA Ticket erstellt: ${issue.summary}") 
     String content = "Content ----> by Issue2 ${issue.description}" 
     email.setBody(content) 
     mailServer.send(email) 


    } 
} 

Я понятия не имею, почему второй код сломается, так как код, на котором он основан, использует проблему также, как если бы он был неявно определен. Эта функция Post является последней для запуска.

Я также нашел подсказки относительно отладки этой проблемы.

Спасибо!

+0

Как отлаживать? Однажды я использовал эту проблему для вывода моих отладочных сообщений. Поместите свой код в блок try-catch и отправьте свое исключение в описание проблемы. Это также отлично подходит для других типов сообщений отладки ... – rdmueller

+0

вы включили функцию исходящей почты ?. – Nuwan

+0

@ user880772: Во вторых некоторые строки закомментированы – Roland

ответ

0

Я отправлю свой комментарий в ответ: тогда я не нашел ошибку в любом из журналов. Возможно, я наблюдал за этим, извините, но сейчас я изменил множество настроек (установка JEMH-теста), поэтому я не могу воспроизвести. Как ни странно, сообщение отправляется прямо сейчас, поэтому у меня такое плохое чувство, что я неправильно настроил схему Notifications Scheme.

Спасибо всем за помощь и время.