Gửi email thông báo Jira trong Outlook 2010


9

Khi tôi nhận được email thông báo Jira 4.2 trong Outlook 2010, chúng không nhận được luồng. Tất nhiên theo mặc định Jira gửi email với các đối tượng như thế này: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Tôi đọc trực tuyến rằng Outlook 2010 chỉ sử dụng trường Chủ đề để phân luồng, do đó, việc có các chủ đề như trên sẽ buộc các email đó KHÔNG được xâu chuỗi, đó thực sự là trường hợp. Lưu ý rằng Gmail chẳng hạn, cũng không xử lý các email tương tự (nhưng ứng dụng thư Apple iPhone 4 thực sự có!).

Vì vậy, tôi đã điều chỉnh thiết lập Jira của mình để loại bỏ động từ 'hành động được thực hiện' khỏi chủ đề và bây giờ tất cả các chủ đề email đều trông như thế này : [JIRA] (LTST-4) improve documentation. Và Gmail vui vẻ xâu chuỗi chúng. Nhưng Outlook 2010 vẫn không có!

Có bất cứ điều gì tôi có thể làm về cấu hình Jira hoặc cấu hình Outlook để buộc Outlook 2010 xử lý các email thông báo Jira không?

Cảm ơn, Kirill

Câu trả lời:


5

Macro VBA sau chỉ để lại 1 tin nhắn cho mỗi vấn đề Jira trong Hộp thư đến của bạn. Nó cũng xóa các thông báo về các vấn đề đã giải quyết / Đã đóng, vì tôi không cần phải xem xét các vấn đề này

' Tools>References: Microsoft VBScript Regular Expressions 5.5, Microsoft Scripting Runtime

Sub RemoveDuplicateJiraKeys()
    Dim i As Object
    Dim re As New RegExp
    Dim m As MatchCollection
    Dim d As New Dictionary
    Dim act As String ' Commented, Resolved, Updated...
    Dim key As String ' e.g. RS-123

    re.Pattern = "\[JIRA\] (.*?): \((.*?)\)"
    For Each i In Session.GetDefaultFolder(olFolderInbox).Items
      ' luckily the items come in chronological order
      Set m = re.Execute(i.Subject)
      If m.Count >= 1 Then
        act = m(0).SubMatches(0)
        key = m(0).SubMatches(1)
        If d.Exists(key) Then d(key).Delete: d.Remove (key) ' same Jira key but older
        If act = "Resolved" Or act = "Closed" Then i.Delete Else d.Add key, i
      End If
    Next i
End Sub

1

Outlook 2010 chỉ sắp xếp các cuộc hội thoại (phân luồng) theo chủ đề. Xóa 'hành động' khỏi chủ đề email trong JIRA sẽ giữ chúng cùng nhau trong hộp thư đến Outlook của bạn. Có vẻ như bạn có thể cần kiểm tra cài đặt Outlook của mình. Thêm thông tin có sẵn ở đây .


1
Yeah đó là những gì tôi nghĩ. Thật không may, không may. Các tin nhắn có cùng chủ đề chính xác KHÔNG được xâu chuỗi lại với nhau. Tôi cũng đã thấy liên kết bạn đề cập, không có gì liên quan ở đó.
kirillka

0

Tôi đã sử dụng kết hợp các bài trả lời khácbài viết này để viết macro của riêng tôi sử dụng thư viện Redemption để hợp nhất các cuộc hội thoại.

Thao tác này sẽ quét thư mục hiện tại, chọn ra bất kỳ email jira nào, trích xuất khóa vấn đề từ chủ đề. Nếu trước đó không thấy khóa đó, nó sẽ lưu chỉ mục cuộc hội thoại trong bộ sưu tập dựa trên khóa sự cố và nếu đã thấy khóa đó trước đó, nó sẽ cập nhật email với chỉ mục hội thoại đã lưu.

Dim ConversationIndexes As New Collection

Sub GroupJira()
    Dim MapiNamespace As Object
    Dim RdoSession As Object

    Dim Item As Object
    Dim RdoItem As Object

    Dim ConversationKey As String
    Dim ConversationIndex As String

    ' Get all the required handles
    Set MapiNamespace = Outlook.GetNamespace("MAPI")
    MapiNamespace.Logon
    Set RdoSession = CreateObject("Redemption.RDOSession")
    RdoSession.MAPIOBJECT = MapiNamespace.MAPIOBJECT

    'Setup some subject patterns to extract the issue key
    Dim Matches As MatchCollection
    Dim UpdateSubjectPattern As New RegExp
    UpdateSubjectPattern.Pattern = "\[JIRA\] \(([A-Z]+-[0-9]+)\) .*"
    Dim MentionedSubjectPattern As New RegExp
    MentionedSubjectPattern.Pattern = "\[JIRA\] .* mentioned you on ([A-Z]+-[0-9]+) \(JIRA\)"

    For Each Item In Outlook.ActiveExplorer.CurrentFolder.Items
        If TypeOf Item Is MailItem Then
            If Left(Item.Subject, 7) = "[JIRA] " Then
                ' Get a key for this conversation, opic for now
                ConversationKey = Item.ConversationTopic
            Set Matches = UpdateSubjectPattern.Execute(Item.Subject)
            If Matches.Count >= 1 Then ConversationKey = Matches(0).SubMatches(0)
            Set Matches = MentionedSubjectPattern.Execute(Item.Subject)
            If Matches.Count >= 1 Then ConversationKey = Matches(0).SubMatches(0)

                ' Get any saved indexes
                ConversationIndex = ""
                On Error Resume Next
                ConversationIndex = ConversationIndexes.Item(ConversationKey)
                On Error GoTo 0

                If ConversationIndex = "" Then
                    ' Save this index if not seen yet
                    ConversationIndexes.Add Item.ConversationIndex, ConversationKey
                ElseIf Item.ConversationIndex <> ConversationIndex Then
                    ' Set the item's index if it has
                    Set RdoItem = RdoSession.GetMessageFromID(Item.EntryID, Item.Parent.StoreID)
                    RdoItem.ConversationIndex = ConversationIndex
                    RdoItem.Save
                End If
            End If
        End If
    Next Item
End Sub

Điều này đòi hỏi các thư viện sau:

  • Thư viện đổi quà để truy cập RDO đầy đủ, được yêu cầu đặt chỉ mục cuộc hội thoại (điều này không yêu cầu độ cao để đăng ký)
  • Một tham chiếu đến Microsoft VBScript Regular Expressions 5.5thư viện để trích xuất các khóa vấn đề từ các chủ đề thư.

Ồ, và bạn cũng cần phải điều chỉnh các cài đặt bảo mật macro của mình để chạy nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.