Macro VBA do Outlook para encaminhar o anexo de email, mas excluir o corpo da mensagem

1

Estou tentando adicionar uma ação personalizada a uma regra no Outlook em que uma mensagem é automaticamente encaminhada e o anexo permanece, mas a mensagem original do corpo é excluída.

Eu preciso escrever código para a parte 'limpar conteúdo'. Até agora tem isso:

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

depois do .HTMLBody, não consigo apagar nada.

Edit: Adicionado o requisito real oculto no comentário. "Eu preciso do conteúdo do e-mail original excluído, incluindo de quem é. Basicamente, para que pareça um novo e-mail."

    
por Carly M 19.10.2014 / 17:16

2 respostas

0

A instrução "With" permite que você faça referência a várias propriedades de um objeto (olMail, neste caso) em um bloco.

Como você só define uma única propriedade, não é necessário usar o bloco "Com". Portanto, experimente sem as instruções "Com / final com", usando apenas olMail.HTMLBody = "" e remova a linha End With .

    
por 19.10.2014 / 17:23
0

Não é possível ver como o código faria qualquer coisa com a declaração with e

Função pública Sub e End

Nota: código não testado. Pode haver erros de digitação e outros problemas

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 = "[email protected]"
  end with

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

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

End Sub

A menos que haja mais, você não compartilhou.

Public Sub MyMacro(msg As MailItem)

  Dim olMailFwd as Mailitem

  Set olMailFwd = msg.Forward

  With olMailFwd
      .HTMLBody = ""
      .subject = msg.subject ' No FW:
      .To = "[email protected]"
  end with

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

  Set olMailFwd = Nothing

End Sub
    
por 25.10.2014 / 15:15