เธรดอีเมลการแจ้งเตือนของ Jira ใน Outlook 2010


9

เมื่อฉันได้รับอีเมลแจ้งเตือนของ Jira 4.2 ใน Outlook 2010 พวกเขาจะไม่ได้รับเธรด แน่นอนว่าโดยค่าเริ่มต้นจิราจะส่งอีเมลที่มีหัวเรื่องเช่นนี้: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. ฉันอ่านออนไลน์ว่า Outlook 2010 ใช้เฉพาะฟิลด์หัวเรื่องเพื่อเธรดดังนั้นการมีหัวเรื่องตามข้างบนจะบังคับให้อีเมลเหล่านั้นไม่ต้องเป็นเธรดซึ่งเป็นกรณีจริง ๆ โปรดทราบว่าตัวอย่างเช่น Gmail ไม่ได้ส่งอีเมลเหล่านั้นเหมือนกัน

ดังนั้นผมจึงเอ็นดูติดตั้ง Jira ฉันจะเอา 'การดำเนินการ' [JIRA] (LTST-4) improve documentationกริยาจากเรื่องและตอนนี้อีเมลวิชาดูทั้งหมดเช่นนี้ และ Gmail ก็ทำให้เธรดเหล่านี้มีความสุข แต่ Outlook 2010 ยังไม่เป็นเช่นนั้น!

มีอะไรที่ฉันสามารถทำได้ในแง่ของการกำหนดค่า Jira หรือการกำหนดค่า Outlook เพื่อบังคับให้ Outlook 2010 เธรดอีเมลแจ้งเตือนของ Jira หรือไม่

ขอบคุณคิริลล์

คำตอบ:


5

มาโคร VBA ต่อไปนี้เหลือเพียง 1 ข้อความต่อปัญหา Jira ในกล่องขาเข้าของคุณ นอกจากนี้ยังลบข้อความเกี่ยวกับปัญหาการแก้ไข / ปิดเนื่องจากฉันไม่จำเป็นต้องดูสิ่งเหล่านี้

' 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 จัดบทสนทนา (เกลียว) ตามหัวเรื่องเท่านั้น การลบ 'การกระทำ' ออกจากหัวเรื่องอีเมลใน JIRA ควรรวมไว้ในกล่องจดหมาย Outlook ของคุณ ดูเหมือนคุณอาจต้องตรวจสอบการตั้งค่า Outlook ของคุณ สามารถดูข้อมูลเพิ่มเติมได้ที่นี่


1
ใช่นั่นคือสิ่งที่ฉันคิด ไม่ได้เกิดขึ้นโชคไม่ดี ข้อความที่มีหัวเรื่องเดียวกันแน่นอนจะไม่ถูกรวมเข้าด้วยกัน ฉันเคยเห็นลิงก์ที่คุณพูดถึงไม่มีส่วนเกี่ยวข้องเลย
kirillka

0

ฉันใช้การรวมกันของคำตอบอื่น ๆ โพสต์และบทความนี้เพื่อเขียนแมโครของตัวเองที่ใช้ไลบรารี่ไถ่ถอนเพื่อรวมการสนทนา

วิธีนี้จะสแกนโฟลเดอร์ปัจจุบันหยิบอีเมลจิราออกมาดึงรหัสปัญหาออกจากหัวเรื่อง หากไม่เคยเห็นกุญแจนั้นมาก่อนมันจะบันทึกดัชนีการสนทนาในคอลเล็กชั่นตามคีย์ปัญหาและหากเคยเห็นมาก่อนหน้านี้จะอัปเดตอีเมลด้วยดัชนีการสนทนาที่บันทึกไว้

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

สิ่งนี้ต้องการไลบรารีดังต่อไปนี้:

  • ห้องสมุดไถ่ถอนเพื่อการเข้าถึง RDO เต็มรูปแบบจำเป็นต้องตั้งค่าดัชนีการสนทนา (ซึ่งไม่จำเป็นต้องยกระดับเพื่อลงทะเบียน)
  • การอ้างอิงไปยังMicrosoft VBScript Regular Expressions 5.5ไลบรารีเพื่อแยกคีย์ปัญหาออกจากหัวเรื่องเมล

โอ้และคุณต้องหมุนการตั้งค่าความปลอดภัยของแมโครเพื่อเรียกใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.