Meine Quellcodes sind nichts Besonderes, haben in meinem Arbeitsalltag aber einen Mehrwert für mich. Auf die Hintergründe für die Erstellung der Codes gehe ich meist nicht weiter ein. Nutzen Sie sie einfach auf eigene Gefahr hin (ich übernehme keinerlei Haftung) und eventuell helfen Sie auch Ihnen.
In Microsoft Outlook — Anhänge aus E-Mails nachvollziehbar entfernen
Zwar gibt es in Microsoft Outlook die Möglichkeit, Anhänge direkt aus einer E-Mail zu entfernen (Datei(en) im Anhang auswählen, (alle) entfernen wählen) – doch dann sind diese einfach nur weg. Ich weiß danach also nicht mehr, dass etwas und was genau an dieser Mail angehängt war. Und ich weiß dann auch nicht mehr, wann ich etwas aus dem Anhang entfernt habe.
- Der Code funktioniert bei mir sowohl mit E-Mails im HTML-Format als auch mit Mails im reinen Text-Format.
- Sie wählen nicht die abzutrennende(n) Datei(en) im Anhang einer E-Mail aus, sondern die gewünschten E-Mails an sich. Sie können eine oder auch mehrere E-Mails auswählen – egal in welchem Ordner des Postfaches (Posteingang, Gesendet).
- Es dürfte egal sein, ob Sie Ihre E-Mails per IMAP oder POP3 abrufen. Mit IMAP funktioniert’s bei mir.
- Den Code habe ich im Outlook für die bequeme Bedienung einem Button im benutzerdefinierten Bereich des „Start“-Ribbons in der Symbolleiste zugeordnet.
Mit Ausführung des Codes wird für jede „irgendwie“ mit der E-Mail verbundene Datei (es können also auch Bilder aus dem Text sein) gefragt, ob sie tatsächlich abgetrennt werden soll. Wenn ja, wird am Ende der E-Mail
- zuerst ein allgemeiner Text mit dem aktuellen Entfernungsdatum
und dann für jede einzelne Datei aus dem Anhang der E-Mail
- der Dateiname
- und die Byte-genaue Größe
eingetragen. Dann wird die Datei/werden die Dateien unwiderbringlich abgetrennt = entfernt = gelöscht und die E-Mail bei Nutzung von IMAP beim nächsten Senden auf dem Mail-Server aktualisiert. Ggf. sollten Sie also gleich nach dem Abtrennen nochmal Senden. Je nach Wunsch können somit einzelne Dateien entfernt – andere aber im Anhang belassen werden.
Nochmal: Eine Datei aus dem Anhang, die so abgetrennt wurde, ist also wirklich weg und wäre ggf. nur noch in einem Daten-Backup des Mail-Servers enthalten.
Sub AnhangAbtrennen()
Dim mail As MailItem
Dim att As Attachment
Dim selMail As selection
Dim colLöschen As New Collection
Dim i As Integer
Dim sAnhang As String, sAnhangDateien As String
Set selMail = Outlook.ActiveExplorer.selection
For Each mail In selMail
sAnhang = vbCrLf & vbCrLf & "<br>abgetrennte Anhänge am " & Now & vbCrLf & "<br>===========================================================<br>" & vbCrLf
For i = 1 To mail.Attachments.Count
Set att = mail.Attachments(i)
If MsgBox("Soll " & att.FileName & " wirklich abgetrennt werden?", vbQuestion + vbYesNo, "Abtrennen eines Anhangs") = vbYes Then
sAnhangDateien = sAnhangDateien & att.FileName & " " & Format(att.Size, "#,###,##0") & " Bytes<br>" & vbCrLf
colLöschen.Add i
End If
Next i
If colLöschen.Count > 0 Then
For i = colLöschen.Count To 1 Step -1
mail.Attachments.Remove colLöschen(i)
colLöschen.Remove i
Next i
mail.HTMLBody = mail.HTMLBody & sAnhang & sAnhangDateien & vbCrLf & "<br>"
mail.Save
End If
Next mail
End Sub
Etwas zum Archivieren/Speichern von E-Mails im Datei-/Projektverzeichnis und eine „Erneut Senden“-Funktionalität habe ich für Outlook auch noch geschrieben. Diese Beiträge folgen demnächst. Da ich jedoch auf ein paar weitere Funktionen zugreife, weiß ich noch nicht, wie ich alles schreiben werde.