2015-07-08 5 views
7

Wir haben ein Projekt in Jira, das wir als Posteingang für Email verwenden. Nicht alle Leute, die E-Mails senden, sind Benutzer in JIRA (und sie sollen es nicht sein). Trotzdem möchten wir Sie darüber informieren, dass Sie die Email erhalten haben. Die E-Mail-Adresse ist Teil der Problembeschreibung.Jira Script Runner - Mail wird nicht per Post versendet Funktion von Create Transition

Ich kenne einige Plugins da draußen, aber anstatt die Mailhandler zu ersetzen, versuche ich ein grooviges Skript für JIRA zu schreiben, das this code anpasst, das ich in eine Post-Funktion am CREATE-Übergang eines Workflows posten möchte.

Der folgende Code funktioniert gut, wenn ich eine bestehende Test Ausgabe greifen und das Skript in der Konsole ausführen:

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) 


    } 
} 

Ach, es wird nicht in der Post-Funktion wie folgt ausführen:

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) 


    } 
} 

Ich habe keine Ahnung, warum der zweite Code bricht, da der Code, auf dem dieser Code basiert, auch so verwendet wird, als wäre er implizit definiert. Diese Post-Funktion ist die letzte, die ausgeführt wird.

Ich würde auch Hinweise zum Debuggen dieses Problems hilfreich finden.

Vielen Dank!

+0

Wie debuggen? Ich habe das Problem einmal verwendet, um meine Debug-Nachrichten auszugeben. Setzen Sie Ihren Code in einen try-catch-Block und senden Sie Ihre Ausnahme an die Beschreibung des Problems. Dies funktioniert auch für andere Arten von Debug-Nachrichten ... – rdmueller

+0

haben Sie die Funktion für ausgehende E-Mail aktiviert ?. – Nuwan

+0

@ user880772: Im zweiten sind einige Zeilen auskommentiert – Roland

Antwort

0

Ich poste meinen Kommentar als Antwort: Ich habe dann keinen Fehler in einem der Protokolle gefunden. Vielleicht habe ich es beaufsichtigt, sorry, aber ich habe inzwischen viel config geändert (JEMH-Test installiert), so dass ich es nicht reproduzieren kann. Seltsamerweise wird die Nachricht gerade gesendet, also habe ich das Gefühl, dass ich etwas Konfiguration im Notification Scheme falsch gemacht habe.

Vielen Dank für die Hilfe und Zeit.