Удалить подпись из электронной почты Lotus Notes — VBA

#excel #vba #lotus-notes

Вопрос:

Я использую некоторый код для пересылки электронного письма на адрес, выбранный на рабочем листе. У меня есть подпись в Lotus Notes, но я не хочу, чтобы эта подпись присутствовала при пересылке электронной почты, но поскольку этот код использует NotesUIWorkspace, он автоматически пропускает мою подпись.

 Public Sub Forward_Email(findSubjectLike As String, forwardToEmailAddresses As String)

    Dim NSession As Object
    Dim NMailDb As Object
    Dim NViewObj As Variant
    Dim NInboxView As Object
    Dim NDocument As Object
    Dim NUIWorkspace As Object
    Dim NUIDocument As Object
    Dim NFwdUIDocument As Object
    
    
    Set NSession = CreateObject("Notes.NotesSession")
    Set NMailDb = NSession.CurrentDatabase
    Set NUIWorkspace = CreateObject("Notes.NotesUIWorkspace")

   For Each NViewObj In NMailDb.Views
        If NViewObj.IsFolder And NViewObj.Name = "($Inbox)" Then
            Set NInboxView = NViewObj
            Exit For
        End If
    Next

   
    Set NDocument = Find_Document(NInboxView, findSubjectLike)
    
    If Not NDocument Is Nothing Then
   

       
        Set NUIDocument = NUIWorkspace.EditDocument(False, NDocument)
        
        NUIDocument.Forward
       
   
       
        Set NFwdUIDocument = NUIWorkspace.CurrentDocument
        Sleep 200
       
       
        NFwdUIDocument.GoToField "To"
        Sleep 200
        NFwdUIDocument.InsertText forwardToEmailAddresses
       
        
        NFwdUIDocument.GoToField "Body"
        NFwdUIDocument.Import "HTML File", "HTML FILE DIRECTORY"
        NFwdUIDocument.InsertText vbLf
        
       
        NFwdUIDocument.Send
        NFwdUIDocument.Close

       
        Do
            Set NUIDocument = NUIWorkspace.CurrentDocument
            Sleep 200
            DoEvents
        Loop While NUIDocument Is Nothing
        NUIDocument.Close
       
    Else
   
        MsgBox vbCrLf amp; findSubjectLike amp; vbCrLf amp; "not found in Inbox"

    End If
   
    Set NUIDocument = Nothing
    Set NFwdUIDocument = Nothing
    Set NDocument = Nothing
    Set NMailDb = Nothing
    Set NUIWorkspace = Nothing
    Set NSession = Nothing
   
End Sub

Private Function Find_Document(NView As Object, findSubjectLike As String) As Object

    Dim NThisDoc As Object
    Dim thisSubject As String
   
    Set Find_Document = Nothing
   
    Set NThisDoc = NView.GetFirstDocument
    While Not NThisDoc Is Nothing And Find_Document Is Nothing
        thisSubject = NThisDoc.GetItemValue("Subject")(0)
        If LCase(thisSubject) = LCase(findSubjectLike) Then Set Find_Document = NThisDoc
        Set NThisDoc = NView.GetNextDocument(NThisDoc)
    Wend

End Function
 

У меня есть подпись по умолчанию, вставленная в «Тело» в виде HTML-файла, поэтому мне не нужна моя собственная подпись, поскольку она не соответствует типу пересылаемых файлов. Есть какие-либо предложения о том, как я могу удалить свою подпись, не отключая ее перед использованием этого макроса?

Комментарии:

1. Моя идея для вас состоит в том, чтобы открыть электронное письмо в режиме редактирования -> скопировать его, установить для пересылки, а затем заменить текст пересылаемого электронного письма, чтобы удалить вашу подпись.

2. Почему вы делаете это с NotesUIDocument вместо NotesDocument, используя класс NotesRichTextItem и обычный ввод-вывод файла вместо метода импорта для вставки содержимого вашего файла? Является ли метод импорта переводом HTML в собственное форматирование заметок для вас? Это было так давно… На самом деле, я никогда не помню, чтобы использовал метод импорта в коде.