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!
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
haben Sie die Funktion für ausgehende E-Mail aktiviert ?. – Nuwan
@ user880772: Im zweiten sind einige Zeilen auskommentiert – Roland