2015-07-08 30 views
7

abbiamo un progetto in Jira che usiamo come una casella di posta elettronica. Non tutte le persone che inviano email sono utenti di JIRA (e non devono esserlo). Tuttavia, vorremmo informare quindi di aver ricevuto l'e-mail. L'indirizzo email è parte della descrizione del problema.Jira Script Runner - La posta non viene inviata da Post Funzione di Create Transition

Sono a conoscenza di alcuni plugin, ma invece di sostituire i Mailhandler, sto cercando di scrivere uno script groovy per JIRA che adatta this code che voglio postare in una funzione Post sulla transizione CREATE di un flusso di lavoro.

Il seguente codice funziona bene quando prendo un test-Issue esistenti ed eseguire lo script nella console:

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) 


    } 
} 

Ahimè, non verrà eseguito in funzione post come questo:

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) 


    } 
} 

Non ho idea del motivo per cui il secondo codice si interrompe dal momento che il codice si basa sul problema degli usi, anche come se fosse implicitamente definito. Questa funzione Post è l'ultima a essere eseguita.

Vorrei anche trovare suggerimenti per il debug di questo problema utile.

Grazie!

+0

Come eseguire il debug? Una volta ho usato il problema per emettere i miei messaggi di debug. Inserisci il codice in un blocco try-catch e invia la tua eccezione alla descrizione del problema. Funziona anche bene per altri tipi di messaggi di debug ... – rdmueller

+0

hai abilitato la funzione di posta in uscita ?. – Nuwan

+0

@ user880772: nel secondo alcune righe sono commentate – Roland

risposta

0

Inserirò il mio commento come risposta: non ho trovato alcun errore in nessuno dei log, quindi. Forse l'ho supervisionato, mi dispiace, ma ho cambiato molte configurazioni ora (installando il processo JEMH), quindi non posso riprodurlo. Stranamente, il messaggio viene inviato in questo momento, quindi ho la brutta sensazione di avere qualche configurazione errata nel Notifiche.

Grazie a tutti per l'aiuto e il tempo.