Outlook 2010에서 Jira 알림 전자 메일 스레딩


9

Outlook 2010에서 Jira 4.2 알림 전자 메일을받을 때 스레드되지 않습니다. 물론 Jira는 기본적으로 다음과 같은 주제로 이메일을 보냅니다 : [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. 온라인으로 Outlook 2010에서 제목 필드를 사용하여 스레드를한다고 온라인에서 읽었으므로 위와 같이 제목을 설정하면 해당 전자 메일이 스레드되지 않아야합니다. 예를 들어 Gmail은 동일한 이메일을 스레드하지 않지만 Apple iPhone 4 메일 앱은 실제로 그렇게합니다!

따라서 Jira 설정을 조정하여 제목에서 '작업 수행'동사를 제거했으며 이제 이메일 제목은 모두 다음과 같습니다 [JIRA] (LTST-4) improve documentation. 그리고 Gmail은 행복하게 스레드합니다. 그러나 Outlook 2010은 여전히 ​​그렇지 않습니다!

Jira 구성 또는 Outlook 구성과 관련하여 Outlook 2010이 Jira 알림 전자 메일을 스레딩하도록하려면 어떻게해야합니까?

고마워, 키릴

답변:


5

다음 VBA 매크로는받은 편지함에 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

나는의 조합을 사용하는 다른 응답 후, 그리고 이 문서를 용도 내 자신의 매크로를 작성하는 보너스 라이브러리를 대화를 병합합니다.

현재 폴더를 스캔하여 jira 이메일을 골라 주제에서 이슈 키를 추출합니다. 이전에 해당 키 보이지 않으면 이슈 키를 기반으로 컬렉션에 대화 색인을 저장하고 이전에 본 경우 저장된 대화 색인으로 이메일을 업데이트합니다.

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.