Como segmentar e-mails de notificação do Jira no Outlook 2010

9

Quando recebo emails de notificação do Jira 4.2 no Outlook 2010, eles não são segmentados. É claro que, por padrão, Jira envia e-mails com os assuntos assim: [JIRA] Created: (LTST-4) improve documentation , [JIRA] Assigned: (LTST-4) improve documentation . Eu li on-line que o Outlook 2010 usa exclusivamente o campo Assunto para encadear, portanto, ter os assuntos acima irá forçar esses e-mails a NÃO serem encadeados, o que é realmente o caso. Observe que o Gmail, por exemplo, também não encadeia esses mesmos e-mails (mas o aplicativo de e-mail Apple iPhone 4 realmente funciona!).

Então eu ajustei minha configuração do Jira para remover o verbo 'action performed' do assunto e agora os assuntos de e-mail ficam assim: [JIRA] (LTST-4) improve documentation . E o Gmail os encadeia com satisfação. Mas o Outlook 2010 ainda não faz!

Há algo que eu possa fazer em termos de configuração do Jira ou da configuração do Outlook para forçar o Outlook 2010 a enviar e-mails de notificação do Jira?

Obrigado, Kirill

    
por kirillka 11.05.2011 / 18:59

3 respostas

5

A macro VBA a seguir deixa apenas 1 mensagem por problema do Jira na sua Caixa de entrada. Também exclui mensagens sobre problemas Resolvidos / Fechados, uma vez que não preciso de olhar para estes

' 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
    
por 05.04.2012 / 09:48
1

O Outlook 2010 organiza conversas (segmentação) apenas por assunto. Remover a 'ação' do assunto do email no JIRA deve mantê-los juntos na sua caixa de entrada do Outlook. Parece que você precisa verificar suas configurações do Outlook. Mais informações disponíveis aqui .

    
por 16.05.2011 / 17:47
0

Eu usei uma combinação da outra resposta post e este artigo para escrever minha própria macro que usa o Biblioteca de redenção para mesclar as conversas.

Isso verifica a pasta atual, escolhendo os e-mails de jira, extrai a chave de problema do assunto. Se não for visto essa chave antes, ela salvará o índice de conversação em uma coleção com base na chave de problema e, se tiver visto antes, atualizará o email com o índice de conversas salvo.

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

Isso requer as seguintes bibliotecas:

  • Biblioteca de resgate para acesso RDO completo, necessário para definir o índice de conversação (isso não requer elevação para registrá-lo)
  • Uma referência à biblioteca Microsoft VBScript Regular Expressions 5.5 para extrair chaves de assunto dos assuntos de correio.

Ah, e você também precisa ajustar as configurações de segurança da macro para executá-lo.

    
por 11.09.2017 / 10:10