2015-07-08 12 views
7

chúng tôi có một Dự án ở Jira mà chúng tôi sử dụng làm hộp thư đến cho Email. Không phải tất cả mọi người gửi email là người dùng trong JIRA (và họ sẽ không được). Tuy nhiên, chúng tôi muốn thông báo sau đó về việc đã nhận được Email. Địa chỉ email là một phần của mô tả Sự cố.Jira Script Runner - Thư không được gửi qua chức năng Đăng bài Tạo Chuyển tiếp

Tôi biết một số plugin ở đó nhưng thay vì thay thế Mailhandlers, tôi đang cố gắng viết kịch bản lệnh cho JIRA thích ứng với this code mà tôi muốn đăng vào chức năng đăng bài trên quá trình chuyển đổi CREATE của luồng công việc.

Các mã sau hoạt động tốt khi tôi lấy một Test-Issue hiện và chạy kịch bản trong giao diện điều khiển:

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) 


    } 
} 

Alas, nó sẽ không chạy trong các chức năng bài viết như thế này:

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) 


    } 
} 

Tôi không biết tại sao mã thứ hai bị hỏng do mã này dựa trên vấn đề sử dụng cũng như thể nó được xác định ngầm định. Chức năng Post này là chức năng cuối cùng để chạy.

Tôi cũng sẽ tìm thấy gợi ý là gỡ lỗi vấn đề này hữu ích.

Cảm ơn bạn!

+0

Cách gỡ lỗi? Tôi đã từng sử dụng vấn đề này để xuất các thông báo gỡ lỗi của mình. Đặt mã của bạn trong khối try-catch và gửi ngoại lệ của bạn đến mô tả sự cố. Điều này cũng hoạt động tốt đối với các loại thông báo gỡ lỗi khác ... – rdmueller

+0

bạn đã bật chức năng gửi thư chưa ?. – Nuwan

+0

@ user880772: Trong một số dòng thứ hai được nhận xét ra – Roland

Trả lời

0

Tôi sẽ đăng nhận xét của mình dưới dạng câu trả lời: Tôi không tìm thấy lỗi trong bất kỳ nhật ký nào, sau đó. Có lẽ tôi giám sát nó, xin lỗi, nhưng tôi đã thay đổi rất nhiều cấu hình ngay bây giờ (cài đặt JEMH dùng thử) vì vậy tôi không thể tái sản xuất. Thật kỳ lạ, tin nhắn được gửi ngay bây giờ, vì vậy tôi có cảm giác xấu rằng tôi đã có một số cấu hình trong Lược đồ thông báo sai.

Cảm ơn mọi người vì đã giúp đỡ và thời gian.

Các vấn đề liên quan