Outlook 2010'da Jira bildirim e-postalarını işleme


9

Outlook 2010'da Jira 4.2 bildirim e-postaları aldığımda, iş parçacığı almaz. Elbette Jira varsayılan olarak şu konularla e-postalar gönderir: [JIRA] Created: (LTST-4) improve documentation, [JIRA] Assigned: (LTST-4) improve documentation. Outlook 2010'un yalnızca Konu alanını iş parçacığı olarak kullandığını çevrimiçi okudum, bu nedenle yukarıdaki gibi konulara sahip olmak, bu e-postaları iş parçacığına DEĞİLMEYE zorlayacaktır. Örneğin Gmail'in aynı e-postaları da bağlamadığını unutmayın (ancak Apple iPhone 4 posta uygulaması aslında!).

Ben tweaked Yani bütün bakış, bu gibi e-posta konular özneden ve şimdi fiil kaldırmak için benim JIRA kurulum 'eylemi gerçekleştiren': [JIRA] (LTST-4) improve documentation. Ve Gmail onları mutlu bir şekilde bağlar. Ancak Outlook 2010 hala çalışmıyor!

Outlook 2010'u Jira bildirim e-postalarını işlemeye zorlamak için Jira yapılandırması veya Outlook yapılandırması açısından yapabileceğim bir şey var mı?

Teşekkürler, Kirill

Yanıtlar:


5

Aşağıdaki VBA makrosu Gelen Kutunuzdaki her Jira sorunu için yalnızca 1 ileti bırakır. Ayrıca, Çözülmüş / Kapalı konularla ilgili mesajları da siler, çünkü bunlara bakmam gerekmiyor

' 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, konuşmaları (iş parçacığı) yalnızca konuya göre düzenler. 'Eylem'i JIRA'daki e-posta konusundan kaldırmak, bunları Outlook gelen kutunuzda bir arada tutmalıdır. Outlook ayarlarınızı kontrol etmeniz gerekebileceği anlaşılıyor. Daha fazla bilgi burada .


1
Evet, ben de öyle düşünmüştüm. Ne yazık ki olmaz. Tam olarak aynı konuya sahip mesajlar birlikte iş parçacığı DEĞİLDİR. Bahsettiğiniz bağlantıyı da gördüm, orada alakalı bir şey yok.
kirillka

0

Konuşmaları birleştirmek için Redemption kitaplığını kullanan kendi makronumu yazmak için diğer yanıt yazısının ve bu makalenin bir kombinasyonunu kullandım .

Bu, geçerli klasörü tarar, herhangi bir jira e-postasını seçer, konu anahtarını konudan çıkarır. Daha önce bu tuşa görmüş değilse, bu sorun anahtarına dayalı bir koleksiyonda konuşma indeksini kazandırıyor ve eğer gelmiştir önceden görmüş, bu kaydedilen konuşma indeksi ile e-posta günceller.

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

Bu, aşağıdaki kütüphaneleri gerektirir:

  • İleti dizini ayarlamak için gereken tam RDO erişimi için tekliften yararlanma kitaplığı (bu, kaydolmak için yükseklik gerektirmez)
  • Microsoft VBScript Regular Expressions 5.5Posta konularından sorun anahtarlarını ayıklamak için kitaplığa başvuru .

Oh, ayrıca çalıştırmak için makro güvenlik ayarlarınızı da yapmanız gerekir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.