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!
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
hai abilitato la funzione di posta in uscita ?. – Nuwan
@ user880772: nel secondo alcune righe sono commentate – Roland