Encadeando emails 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 encadeados. Obviamente, por padrão, o Jira envia e-mails com os seguintes assuntos: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Li online que o Outlook 2010 usa apenas o campo Assunto para encadear, portanto, ter os assuntos acima 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 envia esses mesmos emails (mas o aplicativo de email do Apple iPhone 4 realmente funciona!).

Então eu beliscou minha configuração Jira para remover o 'ação executada' verbo do assunto e agora os temas de e-mail todo o olhar como este: [JIRA] (LTST-4) improve documentation. E o Gmail os encanta alegremente. Mas o Outlook 2010 ainda não!

Existe algo que eu possa fazer em termos de configuração do Jira ou do Outlook para forçar o Outlook 2010 a encadear emails de notificação do Jira?

Obrigado, Kirill

Kirillka
fonte

Respostas:

5

A macro VBA a seguir deixa apenas 1 mensagem por problema do Jira na sua Caixa de entrada. Ele também exclui mensagens sobre problemas resolvidos / fechados, pois não preciso olhar para esses

' 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
Vladimir Alexiev
fonte
1

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

Justin
fonte
11
Sim, foi o que eu pensei. Infelizmente não acontece. Mensagens com o mesmo assunto exato NÃO são agrupadas. Eu também vi o link que você mencionou, nada de relevante lá.
Kirillka 17/05
0

Eu usei uma combinação da outra postagem de resposta e este artigo para escrever minha própria macro que usa a biblioteca Redemption para mesclar as conversas.

Isso verifica a pasta atual, escolhendo todos os emails jira e extrai a chave do problema do assunto. Se não tiver visto essa chave antes, ela salva o índice de conversas em uma coleção com base na chave de problema e, se já a viu antes, atualiza 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 total ao RDO, necessária para definir o índice de conversação (isso não requer elevação para registrá-lo)
  • Uma referência à Microsoft VBScript Regular Expressions 5.5biblioteca para extrair chaves de problemas dos assuntos de email.

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

Deanna
fonte