Close
Please Wait..
AJAX Lade-Icon

Willkommen bei HostingMax

 

 

Outlook 2003 und IMAP Postfach automatisch aufräumen

Betreibt man Outlook 2003 mit einem IMAP Postfach, so stellt sich das Problem, dass die gelöschten Mail nur durchgestrichen werden. Um sie endgültig aus dem Postfach zu verbannen sind umständlich viele Klicks durch Ordnerwechsel und Auswahl von Bearbeiten => Gelöschte Nachrichten permanent löschen notwendig.

Um das aufräumen zu vereinfachen hat die EDV Beratung Staudte ein Makro als Freeware veröffentlicht. Sie finden es am Schluss dieser Seite.

 

Outlook 2003 IMAP Aufräummakro, Version 1.2
Dieses Makro für Microsoft Outlook 2003 entfernt beim Verlassen und Betreten von IMAP Ordnern automatisch und endgültig die gelöschten Nachrichten. Diese Funktion ist in Outlook Express noch standardmäßig enthalten, in Outlook 2003 werden gelöschte Nachrichten nur durchgestrichen und müssen dann manuell mit "Gelöschte Nachrichten permanent löschen" entfernt werden, was sehr mühsam ist.


Lizenzinformationen
Das Makro ist Freeware und darf als solche beliebig weitergegeben und in eigene Anwendungen integriert werden. Wir bitten nur darum, dass ein Hinweis auf die Quelle des Makros angegeben wird. Weiterhin freue ich mich, wenn Sie uns eine Nachricht im Kontaktbereich hinterlassen, wie zufrieden Sie mit dem Makro sind und wie Sie hierher gefunden haben.

DIESES MAKRO LÖSCHT DATEN - nämlich alle Nachrichten, die Sie vorher in Outlook zum Löschen markiert haben. Sie setzen das Makro auf eigene Gefahr ein - es ist zwar klein und harmlos, aber wir übernehmen keine Gewähr auf die Funktion und sind für Schäden nicht haftbar. Fragen Sie im Zweifelsfall Ihren Systembetreuer.

Technische Informationen

  • Markieren Sie den nachfolgenden Programmtext und kopieren Sie in mit Strg-C.
  • Öffnen Sie Outlook 2003 und dann im Menü Extras die Option Makro->Visual Basic-Editor.
  • Doppelklicken Sie im linken Fensterbereich "DieseOutlookSitzung"
  • Klicken Sie dann einmal ins rechte, leere Fenster und fügen Sie den Programmcode mit Strg-V ein.
  • Speichern Sie das Makro mit Strg-S.
  • Schließen Sie dann das Visual Basic Fenster.
  • Eventuell müssen Sie In Extras->Makro->Sicherheit noch die Sicherheitsstufe auf Mittel oder Niedrig stellen, damit Outlook die Ausführung des Makros erlaubt. Sie können alternativ auch ein eigenes Zertifikat erstellen und das Makroprojekt damit signieren. Dazu müssen Sie gegebenenfalls die "Digitale Signatur für VBA-Projekte" im Office-Setup nachinstallieren. Starten Sie anschließend das Tool SelfCert.exe im Ordner "C:\Programme\Microsoft Office\Officexx" (xx ist Ihre Programmversion, z.B. 11 für Office 2003) und folgenden Sie den Anweisungen. Danach wechseln Sie wieder in den Visual Basic-Editor und wählen im Menü Extras die Option Digitale Signatur. Über die Schaltfläche Wählen weisen Sie dem Projekt dann das selbst erstellte Zertifikat zu. Nach dem Speichern starten Sie Outlook neu. Beim ersten Ausführen werden Sie gefragt, ob Sie diesem Makro vertrauen. Markieren Sie das Kontrollkästchen Makros aus dieser Quelle immer vertrauen und wählen Sie Makros aktivieren. Beim nächsten Programmstart wird das Makro nun auch ohne Rückfragen ausgeführt werden, wenn Sie die Makrosicherheit auf Niedrig oder Hoch eingestellt haben.
  • Starten Sie Outlook neu und das Makro ist aktiv.

Danach muss noch jeder IMAP Ordner, den das Makro automatisch bereinigen soll, markiert werden. Dazu fügen Sie den Text IMAPCleanup irgendwo in die Beschreibung jedes Ordners ein, der vom Makro bedient werden soll:

  • Klicken Sie mit der rechten Maustaste auf den IMAP Ordner.
  • Wählen Sie Eigenschaften
  • Geben Sie im Beschreibungsfeld IMAPCleanup ein. Groß- und Kleinschreibung spielt keine Rolle, es kann auch anderer Text drumherum stehen.
  • Wiederholen Sie diesen Vorgang für alle anderen IMAP Ordner, ganz nach Wunsch.

Damit das Makro nicht jedes Mal eine Bestätigung einholt, bevor es die Nachrichten löscht, sollten Sie in Outlook unter Extras->Optionen->Weitere->Erweiterte Optionen->"Warnung anzeigen, bevor Elemente endgültig gelöscht werden" das Häkchen entfernen.

Das Makro wurde für Outlook 2003 unter Windows geschrieben. Es wurde von anderen Anwendern aber auch schon erfolgreich in Outlook 2000 und Outlook 2002 (XP) eingesetzt.

 

Macro-Code:

 ' IMAP Aufräummakro v1.2, Staudte EDV Beratung, 5. Januar 2005, www.Staudte-EDV.de
' Dieses Makro ruft beim Betreten und Verlassen eines IMAP Ordners in Outlook 2003 (OL2K3)
' automatisch die Funktion "Gelöschte Nachrichten permanent löschen" auf und zwar für alle
' IMAP Ordner, bei denen in der Beschreibung vorher der Text IMAPcleanup eingefügt wurde.
' (Groß- und Kleinschreibung spielt keine Rolle).
' Damit das Makro nicht jedes Mal eine Bestätigung einholt, bevor es die Nachrichten löscht,
' sollten Sie in Outlook unter Extras->Optionen->Weitere->Erweiterte Optionen->"Warnung anzeigen,
' bevor Elemente endgültig gelöscht werden" das Häkchen entfernen.
' Neu in Version v1.1 ist, dass beim Starten von Outlook einmal alle Ordner durchgegangen werden.
' Das war notwendig geworden, weil manche Benutzer nur dem IMAP Posteingang benutzen und
' entsprechend nie den Ordner wechseln. Sollte diese Funktion bei Ihnen Schwierigkeiten machen,
' dann löschen Sie einfach die Funktion Application_MAPILogonComplete aus dem Makro.
' In v1.2 kamen nur kleinere Fehlerkorrekturen und Optimierungen hinzu.
' Das Makro ist Freeware und darf als solche beliebig weitergegeben und in eigene Anwendungen
' integriert werden. Wir bitten nur darum, dass ein Hinweis auf die Quelle des Makros
' angegeben wird. Weiterhin freue ich mich, wenn Sie uns eine E-Mail unter info@staudte-edv.de
' senden würden, wie zufrieden Sie mit dem Makro sind und wie Sie es gefunden haben.

' IMAP Cleanup Macro v1.2, Staudte EDV Beratung, 5-January-2005, www.Staudte-EDV.de
' This macro automatically purges deleted messages from IMAP folders in Outlook 2003 (OL2K3)
' whenever the user enters or leave an IMAP folder that has been marked for cleanup. To mark
' an IMAP folder, place the text IMAPcleanup somewhere in the description field of the folder
' (not case sensitive).
' The macro may prompt you each time it tries to purge deleted messages. To stop these prompts,
' uncheck the following option in Outlook: Tools->Options->Additional->Additional options->
' show warning before deleting messages. (I'm translating this from german Outlook, as I don't
' have an english version here. If someone can tell me the exact names of the menus and options,
' I would appreciate a note so that I can update this text. Thank you.)
' New in version v1.1 is the function that walks through all folders once when Outlook ist
' started. This became necessary as some users only used the inbox folder and never switched
' folders. If this function should cause any trouble, simply remove the Application_MAPILogonComplete
' function from the macro.
' v1.2 just adds some minor error corrections an optimizations.
' This macro is freeware and may as such be distributed freely. You may also integrate it into
' your own applications, as long as a reference to the source is maintained. We would also be
' happy to hear from you, by email to info@staudte-edv.de, if you are satisfied with the tool
' and how you found it.

Option Explicit

Dim myOlApp As New Outlook.Application

Public WithEvents myOlExp As Outlook.Explorer

Public Sub Application_Startup()
Set myOlExp = myOlApp.ActiveExplorer
End Sub

Public Sub Application_MAPILogonComplete()
Dim appOutlook As Application, nsMapi As NameSpace, RootFolder As MAPIFolder, OriginalStartFolder

Set appOutlook = CreateObject("Outlook.Application")
Set nsMapi = appOutlook.GetNamespace("MAPI")

OriginalStartFolder = ActiveExplorer.currentFolder.EntryID
For Each RootFolder In nsMapi.Folders()
PurgeFolderRecursively nsMapi.Folders(RootFolder.Name)
Next
Set ActiveExplorer.currentFolder = nsMapi.GetFolderFromID(OriginalStartFolder)
End Sub

Private Sub myOlExp_BeforeFolderSwitch(ByVal NewFolder As Object, Cancel As Boolean)
PurgeCurrentFolder
End Sub

Private Sub myOlExp_FolderSwitch()
PurgeCurrentFolder
End Sub

Private Sub PurgeCurrentFolder()
Dim f As MAPIFolder
Dim appOutlook As Application, nsMapi As NameSpace, barEdit As CommandBar
Dim btnPurge As CommandBarButton

Set f = myOlExp.currentFolder
On Error GoTo skip
If InStr(LCase(f.Description), "imapcleanup") > 0 Then
Set appOutlook = CreateObject("Outlook.Application")
Set nsMapi = appOutlook.GetNamespace("MAPI")
Set barEdit = ActiveExplorer.CommandBars("Edit")
Set btnPurge = barEdit.FindControl(msoControlButton, 5583, , , True)
btnPurge.Execute
End If
skip:
End Sub

Private Sub PurgeFolderRecursively(RootFolder As MAPIFolder)
Dim currentFolder As MAPIFolder

If InStr(LCase(RootFolder.Description), "imapcleanup") > 0 Then
Set ActiveExplorer.currentFolder = RootFolder
PurgeCurrentFolder
End If

For Each currentFolder In RootFolder.Folders
PurgeFolderRecursively currentFolder
DoEvents
Next
End Sub

 

 

Willkommen bei HostingMax
Seitenhintergrund Seitenhintergrund