1

Я пытаюсь добавить настраиваемое действие в правило Outlook, в котором сообщение автоматически пересылается, а вложение остается, но исходное текстовое сообщение удаляется.

Мне нужно написать код для части «Очистить содержимое». Пока есть это:

Public Sub MyMacro(msg As MailItem)
  Dim strID As String
  Dim olNS As NameSpace
  Dim olMail As MailItem

  strID = msg.EntryID
  Set olNS = Application.GetNamespace("MAPI")
  Set olMail = olNS.GetItemFromID(strID)

  With olMail.HTMLBody = " "
  End With

  Set olMail = Nothing
  Set olNS = Nothing
End Function

после .Я не могу заставить его удалить что-либо.

Изменить: Добавлено фактическое требование, скрытое в комментарии. «Мне нужно удалить исходное содержимое электронной почты, включая информацию о том, кто его. В основном так, чтобы это выглядело как совершенно новое письмо ».

2 ответа2

0

Не может видеть, как код будет делать что-либо, учитывая оператор with и

Public Sub и End Function

Примечание: непроверенный код. Могут быть опечатки и другие проблемы

Public Sub MyMacro(msg As MailItem)
  Dim strID As String
  Dim olNS As NameSpace
  Dim olMail As MailItem

  Dim olMailFwd as Mailitem

  strID = msg.EntryID
  Set olNS = Application.GetNamespace("MAPI")
  Set olMail = olNS.GetItemFromID(strID)

  'With olMail
  '  .HTMLBody = " "
  'End With

  Set olMailFwd = olMail.Forward

  With olMailFwd
      .HTMLBody = ""
      .subject = olMail.subject ' No FW:
      .To = "someone@somewhere.com"
  end with

  olMailFwd.display
  ' after initial testing change to
  ' olMailFwd.Send

  Set olMailFwd = Nothing
  Set olMail = Nothing
  Set olNS = Nothing

End Sub

Если есть больше, вы не поделились.

Public Sub MyMacro(msg As MailItem)

  Dim olMailFwd as Mailitem

  Set olMailFwd = msg.Forward

  With olMailFwd
      .HTMLBody = ""
      .subject = msg.subject ' No FW:
      .To = "someone@somewhere.com"
  end with

  olMailFwd.display
  ' after initial testing change to
  ' olMailFwd.Send

  Set olMailFwd = Nothing

End Sub
0

Оператор "With" позволяет вам ссылаться на несколько свойств объекта (в данном случае olMail) в блоке.

Поскольку вы устанавливаете только одно свойство, нет необходимости использовать блок "С". Итак, попробуйте без операторов «With /End With», используя только olMail.HTMLBody = "" и удалите строку End With .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .