2017-08-15 5 views
1

Ich schreibe ein Makro, um mir eine aktuelle Nachricht (durch Ausführen des Makros über eine Schaltfläche in der Multifunktionsleiste) als Anhang weiterzuleiten und dann die ursprüngliche Nachricht zu löschen.Outlook VBA Lösche Nachricht nach dem Senden

Allerdings, wenn ich das Makro ausführen wird die Nachricht nicht gelöscht und ich erhalte eine E-Mail von "System Administrator", dass die Nachricht un-deliverable war.

Wenn ich die Zeile .DeleteAfterSubmit = True auskommentieren, wird die Nachricht gesendet, aber nicht gelöscht.

Dim objAttachment As Attachment 
Dim strAttachment As String 
Set objItem = GetCurrentItem() 
Set objMsg = Application.CreateItem(olMailItem) 
strAttachment = "" 

For Each objAttachment In objItem.Attachments 
    strAttachment = strAttachment & " " & objAttachment.DisplayName ' FileName 
Next 

With objMsg 
    .Attachments.Add objItem, olEmbeddeditem 
    .Subject = objItem.Subject & " " & objItem.To 
    .To = "[email protected]" 
    .Body = "From: " & objItem.Sender & vbNewLine & _ 
      "Sent: " & objItem.ReceivedTime & vbNewLine & _ 
      "To: " & objItem.To & vbNewLine & _ 
      "CC: " & objItem.CC & vbNewLine & _ 
      "Subject: " & objItem.Subject & vbNewLine & _ 
      "Attachment: " & strAttachment & vbNewLine & vbNewLine & _ 
      objItem.Body 
    .DeleteAfterSubmit = True 
    .Send 
End With 
+1

ich denke, dass es nur in _Sent Items_ verhindert Speichern – jsotola

+1

objMsg.Delete oder objItem.Delete je nachdem, welche Sie löschen möchten – Sorceri

Antwort

0

Sollte objItem.Delete außerhalb With...End With

With objMsg 
    .Attachments.Add objItem, olEmbeddeditem 
    .subject = objItem.subject & " " & objItem.To 
    .To = "[email protected]" 
    .Body = "From: " & objItem.sender & vbNewLine & _ 
      "Sent: " & objItem.ReceivedTime & vbNewLine & _ 
      "To: " & objItem.To & vbNewLine & _ 
      "CC: " & objItem.CC & vbNewLine & _ 
      "Subject: " & objItem.subject & vbNewLine & _ 
      "Attachment: " & strAttachment & vbNewLine & vbNewLine & _ 
    objItem.Body 
    .Send 
End With 

objItem.Delete 
Verwandte Themen