Script für Einordnung von eMails in Unterordner anhand des Absendernamens

  • Outlook

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Script für Einordnung von eMails in Unterordner anhand des Absendernamens

    Hallo Leute.

    Ich habe hier auf der Arbeit folgendes Problem. Ich benutze Outlook 2010 unter Windows 7. Immer mehr unserer Lieferanten stellen den Rechnungsversand auf PDF um. Heisst ich muss mir für jeden Lieferanten eine Regel anlegen, damit die Mail in den entsprechenden Ordner (Lieferantenname) gelegt wird. Das ist auch alles kein Problem mit dem Regel-Assisstent von Outlook. Jetzt kommt das große ABER. Da unsere IT-Abteilung es nicht für nötig hält die erlaubte Dateigröße für die "Regel-Datei" auf dem Exchange-Server von jetzt 128KB (oder waren es 256kb?) auf einen höheren Wert zu setzen (klingt lächerlich ... ist aber leider so)kriege ich jetzt immer einen Fehler wenn ich neue Regeln anlege, dass kein Platz mehr auf dem Server wäre. Da wir nicht wenig Lieferanten haben ist die Liste der Regeln natürlich mittlerweile schon richtig lang. Und mit dieser "nur Client" Einstellung funktioniert irgendwie auch nicht.

    Eigentlich müsste ich doch das Sortieren der Mails auch mit einem VB-Script bewerkstelligen können oder? Folgende Ordner-Struktur in einer PST-Datei liegt vor:

    Archiv-Ordner > Elektr. Rechnungen >

    Lieferant A
    Lieferant B
    Lieferant C
    .......

    Wie kann ich VB jetzt vermitteln, dass er alle Mails im Haupt-Posteingang nach Absendern (mit Wildcard) durchsucht und anhand dieser Absender die Mails in den richtigen Lieferanten-Ordnern in der PST-Datei jeweils ablegt?

    Habe hier schonmal einen kleinen Ansatz rausgearbeitet:

    Quellcode

    1. Sub MoveItems()
    2. Dim myNameSpace As Outlook.NameSpace
    3. Dim myInbox As Outlook.Folder
    4. Dim myDestFolder As Outlook.Folder
    5. Dim myItems As Outlook.Items
    6. Dim myItem As Object
    7. Set myNameSpace = Application.GetNamespace("MAPI")
    8. Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
    9. Set myItems = myInbox.Items
    10. Set myDestFolder = myInbox.Folders("Lieferant A") <-- Wie lasse ich ihn auf die PST verweisen?
    11. Set myItem = myItems.Find("[SenderName] = "'NAME'") <-- Wie kann ich hier ein Wildcard einbauen?
    12. While TypeName(myItem) <> "Nothing"
    13. myItem.Move myDestFolder
    14. Set myItem = myItems.FindNext
    15. Wend
    16. End Sub


    Aber wie kann ich da jetzt eine IF-Abfrage integrieren die nach den verschiedenen Absendern unterscheidet?

    Dieser Beitrag wurde bereits 10 mal editiert, zuletzt von „Sascha_77“ ()

    Du durchsuchst ja alle Mails nach den bestimmten Namen mit .Find
    Wenn Du alle Mails durchgehst, dann steht der Absender in MailItem.SenderName.

    Es gibt ein Makro von Michael Wöhrer (Google hilft), welches markierte Mails auf der Festplatte speichern kann. Da ist dann schon bissel was nützliches für Deinen Anwendungsfall mit drin.
    Gruß
    Peterfido

    Keine Unterstützung per PN!