Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Auf Anhang einer gespeicherten Mail zugreifen

Forumthread: Auf Anhang einer gespeicherten Mail zugreifen

Auf Anhang einer gespeicherten Mail zugreifen
10.01.2017 21:51:42
Klaus
Hallo Forumsgemeinde,
schon oft konnte ich durch Stöbern in eurem Forum wertvolle Hilfe finden.
Meinen Dank dafür!
Jetzt stehe ich aber vor einer Aufgabe, bei der mich die Suche nicht weiter gebracht hat.
Ich hoffe, jemand von euch kann mir über diese Hürde helfen:
Ich habe mit Excel-VBA ein kleines Programm geschrieben, mit dem E-Mails als .msg - File gespeichert werden. Inklusive der Anhänge.
Nun möchte ich einen (oder alle) der Anhänge einer Mail aus der .msg - Datei herausladen/-kopieren und separat speichern.
In meiner Arbeitsumgebung habe ich Adminrechte im Bereich Excel, kann aber in Outlook keine Makros laufen lassen. Der Zugriff aus Excel per VBA auf Outlook ist möglich.
Die Name der .msg-Datei (z.B. 'gespeichert.msg') ist bekannt und somit kein Problem.
Gibt es dafür in VBA eine Lösung?
Einen schönen Abend noch.
Klaus
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auf Anhang einer gespeicherten Mail zugreifen
10.01.2017 23:25:38
Firmus
Hallo Klaus,
anbei ein "zusammengestöpseltes" Macro, das alle Emails und die enthaltenen Anhänge in
einem Verzeichnis (C:\TEMP\) abspeichert.
Es gewinnt keinen Schönheitspreis, war aber sehr hilfreich als ich mir dieses Thema Stück für Stück
per doityourself aneignete.
https://www.herber.de/bbs/user/110462.xlsm
Gruß
Firmus
Anzeige
AW: Auf Anhang einer gespeicherten Mail zugreifen
11.01.2017 18:36:47
Klaus
Hallo Frimus,
danke für deine Antwort.
So wie es aussieht, scheint der Weg den du aufzeigst, bisher die einzige
Möglichkeit zu sein an die Anhänge zu kommen.
Da ich aber auch die komplette Mail als msg-Datei benötige, würde sich der benötigte
Speicherplatz dadurch von 35 auf 70 GB jährlich vergrößern.
Ich lasse den Thread mal offen, vielleicht findet sich noch eine andere Lösung.
schöne Grüße
Klaus
Anzeige
AW: Auf Anhang einer gespeicherten Mail zugreifen
11.01.2017 19:45:55
firmus
Hallo Klaus,
um bei 35 GB zu bleiben, gäbe es einen Weg:
(manuell funktioniert es, per VBA habe ich es (noch) nicht getestet)
1. Die eingegangenen Emails per ANTWORTEN an Dich selbst verschicken.
(Bei Antworten werden die Attachments nicht mitgeliefert)
2. Die Attachments der Original-Mail als Dateien speichern (Mein Beispiel)
3. Dabei eine Referenz zwischen Email und Attachement erzeugen - wie in meinem Beispiel!
(sonst hast Du nur einen Haufen Emails und einen Haufen Attachments - aber keine Bezug zueinander.)
4. die weitergeleitete Emails (ein paar Bytes größer als das Original ohne Attachments) abspeichern.
5. Die Original-Emails entfernen.
Technisch sollte das klappen, diesen Zweig habe aber ich noch nicht getestet.
Gruß
Firmus
Anzeige
AW: Auf Anhang einer gespeicherten Mail zugreifen
11.01.2017 21:54:58
Klaus
'nabend Frimus,
ich hätte nicht gedacht, dass die gespeicherten Mails sich so hartnäckig gegen den Zugriff wehren.
Deine Idee mit dem Abhängen der Anhänge durch eine Antwortmail würde mein Speicherplatzproblem beheben, ich bin aber darauf angewiesen, auch mal eine ältere Mail mit Anhängen wieder zu 'aktivieren'.
Mir scheint, ich muss an der ein oder anderen Stelle Abstriche von meinen Vorstellungen machen.
Ich danke dir für deine Antwort und Anregungen! Je nachdem wofür ich mich entscheide, wird dein Code in meinem Programm Verwendung finden.
Einen schönen Abend noch :-)
Gruß
Klaus
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Auf Anhang einer gespeicherten Mail zugreifen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und die VBA-Umgebung: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsbuch)" und wähle Einfügen > Modul.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub AnhängeExportieren()
       Dim oMsg As Object
       Dim oAttachments As Object
       Dim oAttachment As Object
       Dim strPath As String
    
       strPath = "C:\TEMP\" ' Speicherort für Anhänge
    
       Set oMsg = CreateObject("Outlook.Application").CreateItemFromTemplate("C:\Pfad\zu\deiner\gespeichert.msg")
       Set oAttachments = oMsg.Attachments
    
       For Each oAttachment In oAttachments
           oAttachment.SaveAsFile strPath & oAttachment.FileName
       Next oAttachment
    
       MsgBox "Anhänge wurden gespeichert!"
    End Sub
  4. Anpassung des Pfades: Stelle sicher, dass du den Pfad zu deiner .msg-Datei anpasst.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Zugriff verweigert": Stelle sicher, dass du über die notwendigen Adminrechte verfügst und die Outlook-Anwendung auf deinem System installiert ist.
  • Fehler: "Datei nicht gefunden": Überprüfe den eingegebenen Pfad zur .msg-Datei auf Fehler.
  • Fehler: Anhänge werden nicht gespeichert: Stelle sicher, dass die .msg-Datei tatsächlich Anhänge enthält und dass der Speicherort korrekt ist.

Alternative Methoden

Eine manuelle Methode besteht darin, die E-Mails per "Antworten" an dich selbst zu senden, um die Anhänge nicht mitzuliefern. Dadurch kannst du den Speicherplatz reduzieren. Hier sind die Schritte:

  1. Antworte auf die E-Mail, die du speichern möchtest.
  2. Speichere die Anhänge manuell aus der Original-Mail.
  3. Lösche die Original-Mail, um Platz zu sparen.

Praktische Beispiele

Ein praktisches Beispiel für die Verwendung des Codes könnte so aussehen: Angenommen, du hast eine .msg-Datei mit dem Namen Angebot.msg, die sich im Verzeichnis C:\Mails\ befindet. Du würdest den Pfad im Code entsprechend anpassen:

Set oMsg = CreateObject("Outlook.Application").CreateItemFromTemplate("C:\Mails\Angebot.msg")

Mit diesem Befehl kannst du die Anhänge der E-Mail leicht extrahieren.


Tipps für Profis

  • Automatisierung: Du kannst das Makro in regelmäßigen Abständen ausführen, um Anhänge automatisch zu speichern.
  • Fehlerprotokollierung: Füge Fehlerbehandlungsroutinen in deinen Code ein, um Probleme beim Speichern der Anhänge zu protokollieren.
  • Doppelte Mails löschen: Überlege, wie du mit gmail doppelte mails löschen umgehen kannst, um deinen Posteingang zu optimieren und Speicherplatz zu sparen.

FAQ: Häufige Fragen

1. Wie finde ich meine gespeicherten E-Mail-Adressen?
Du kannst in Outlook unter "Datei" > "Optionen" > "E-Mail" nachsehen, wo deine E-Mail-Adressen gespeichert sind.

2. Kann ich eine .msg-Datei in Excel einfügen?
Ja, du kannst den Inhalt einer .msg-Datei in Excel importieren, indem du den VBA-Code anpasst, um die Inhalte auszulesen und in Zellen zu schreiben.

3. Was passiert, wenn ich die Original-E-Mail lösche?
Wenn du die Original-E-Mail löschst, verlierst du den Zugriff auf diese E-Mail, aber du hast die Anhänge separat gespeichert.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige