Gmail, как "Отправить и архивировать" в Outlook.Как добраться до «родительского» письма при ответе - PullRequest
3 голосов
/ 25 февраля 2010

Ответ на электронное письмо с темой "test", с этим кодом ...

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  If TypeName(Item) = "MailItem" Then
    Debug.Print Item.Subject
    Debug.Print Item.Parent
  End If
End Sub

... возвращает это.

Входящие
RE: тест

Я ищу, чтобы перейти к "test", то есть к электронному письму, на которое отправляется ответ, поэтому его можно автоматически перемещать. (D) в папку архива.

Ответы [ 2 ]

2 голосов
/ 25 февраля 2010
Item.ConversationTopic

это свойство, которое вы ищете.

2 голосов
/ 25 февраля 2010

Это было бы лучше в Outlook 2010, я думаю. Я полагаю, что для более ранних версий вам нужен этот код, который цитируется непосредственно с http://www.outlookcode.com/codedetail.aspx?id=1714

Function FindParentMessage(msg As Outlook.MailItem) _
           As Outlook.MailItem
    Dim strFind As String
    Dim strIndex As String
    Dim fld As Outlook.MAPIFolder
    Dim itms As Outlook.Items
    Dim itm As Outlook.MailItem
    On Error Resume Next
    strIndex = Left(msg.ConversationIndex, _
                    Len(msg.ConversationIndex) - 10)
    Set fld = Application.Session.GetDefaultFolder(olFolderInbox)
    strFind = "[ConversationTopic] = " & _
              Chr(34) & msg.ConversationTopic & Chr(34)
    Set itms = fld.Items.Restrict(strFind)
    Debug.Print itms.Count
    For Each itm In itms
        If itm.ConversationIndex = strIndex Then
            Debug.Print itm.To
            Set FindParentMessage = itm
            Exit For
        End If
    Next
    Set fld = Nothing
    Set itms = Nothing
    Set itm = Nothing
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...