Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: email - Header auslesen

email - Header auslesen
29.03.2005 22:10:09
heiko
hallo erst mal,
wer weis einen VBA Code um den kompleten header von email - adressen auszulesen.
(Spam usw.)
im vorraus vielen dank
heiko
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: email - Header auslesen
29.03.2005 22:38:56
Ramses
Hallo
nur zur Sicherheit und für andere die sich damit beschäftigen möchten:
Was willst du denn auslesen aus dem "header"
Das ist ein beispiel aus einem "Header"
...
Return-Path:
X-Flags: 0000
Delivered-To: GMX delivery to ramses@gmpro.net
Received: (qmail invoked by alias); 29 Mar 2005 20:09:13 -0000
Received: from mailout10.sul.t-online.com (EHLO mailout10.sul.t-online.com) [194.25.134.21]
by mx0.gmx.net (mx013) with SMTP; 29 Mar 2005 22:09:13 +0200
usw.
....
Nachdem der Sender völlig frei definiert werden kann, ist mir nicht klar was du damit machen willst.
O2003 hat einen sehr guten SPAM Filter integriert ?
Warum sollte das also von EXCEL aus gemacht werden,... da hast du den Schrott doch schon.
Gruss Rainer
Anzeige
AW: email - Header auslesen
29.03.2005 22:48:42
heiko
Hallo Rainer,
ich habe Outlook 2000 und bin eine bischen am rumbasteln, mit regel usw.
Ich möchte mir die adressen und den Code im Haeder von diesen mistdingern anschauen, ohne jede einzelne email aufzumachen.
Excel und vba ist somit nur ein Hilfsmittel.
Gruß
heiko

AW: email - Header auslesen
30.03.2005 17:07:19
Frank
Hallo Rainer,
in einem anderem Zusamenhang hatte ich folgenden Code erstellt:
' Verweis auf "Microsoft Outlook 10.0 Object Libary" setzen (ggf. an Deine Version anpassen!)

Sub GrapIext()
' An den Absender Anpassen!!!
Const strAbsenderName As String = "vorname.nachname@xyz.de"
' Ende "An den Absender Anpassen!!!"
Dim objOutlook As Outlook.Application
Dim objnSpace As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Dim objMsg As Object
Dim objItem As Outlook.MailItem
Dim intCounter As Integer, intCount As Integer, iRow As Integer
Dim ws As Worksheet
Dim sText As String
Application.ScreenUpdating = False
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.GetDefaultFolder(olFolderInbox)
intCount = objFolder.Items.Count
If intCount > 0 Then
Set ws = ActiveSheet
iRow = 1
For intCounter = 1 To intCount
Set objMsg = objFolder.Items(intCounter)
If objMsg.Class = olMail Then
Set objItem = objMsg
STOP
' Hier Objekt "objItem" ansehen!!!
If UCase(objItem.SenderName) = UCase(strAbsenderName) Then
iRow = iRow + 1
ws.Cells(iRow, 1).Value = objItem.Body
End If
End If
Next intCounter
Set ws = Nothing
End If
Set objnSpace = Nothing
Set objFolder = Nothing
Set objMsg = Nothing
Set objOutlook = Nothing
End Sub

In der For Next Schleife den Debugger einschalten, dann kannst Du das Mail-Object richtig zerpflücken!
Viel Spaß
Frank.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail Header auslesen in Outlook mit VBA


Schritt-für-Schritt-Anleitung

Um den vollständigen E-Mail Header auszulesen, kannst Du den folgenden VBA-Code verwenden. Dieser Code ist speziell für Outlook 2000, aber Du kannst die Objektbibliothek an Deine Version anpassen.

  1. Öffne Outlook und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeineE-Mail-Adresse)“ > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub GrapIext()
' An den Absender Anpassen!!!
Const strAbsenderName As String = "vorname.nachname@xyz.de"
' Ende "An den Absender Anpassen!!!
Dim objOutlook As Outlook.Application
Dim objnSpace As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Dim objMsg As Object
Dim objItem As Outlook.MailItem
Dim intCounter As Integer, intCount As Integer, iRow As Integer
Dim ws As Worksheet
Application.ScreenUpdating = False
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set objFolder = objnSpace.GetDefaultFolder(olFolderInbox)
intCount = objFolder.Items.Count
If intCount > 0 Then
    Set ws = ActiveSheet
    iRow = 1
    For intCounter = 1 To intCount
        Set objMsg = objFolder.Items(intCounter)
        If objMsg.Class = olMail Then
            Set objItem = objMsg
            ' Hier Objekt "objItem" ansehen!!!
            If UCase(objItem.SenderName) = UCase(strAbsenderName) Then
                iRow = iRow + 1
                ws.Cells(iRow, 1).Value = objItem.Body
            End If
        End If
    Next intCounter
    Set ws = Nothing
End If
Set objnSpace = Nothing
Set objFolder = Nothing
Set objMsg = Nothing
Set objOutlook = Nothing
End Sub
  1. Passe den strAbsenderName an die E-Mail-Adresse an, deren Header Du analysieren möchtest.
  2. Starte das Makro, um die E-Mail-Header auszulesen.

Häufige Fehler und Lösungen

  • Fehler: „Laufzeitfehler 424: Objekt erforderlich.“

    • Lösung: Stelle sicher, dass Du den Verweis auf die „Microsoft Outlook xx.x Object Library“ gesetzt hast. Gehe zu Extras > Verweise im VBA-Editor und aktiviere die entsprechende Bibliothek.
  • Fehler: „Keine Elemente im Ordner.“

    • Lösung: Überprüfe, ob Du im richtigen Posteingang bist und dass E-Mails vorhanden sind.

Alternative Methoden

Falls Du den E-Mail Header nicht über VBA auslesen möchtest, kannst Du die Header-Daten auch manuell anzeigen:

  1. Öffne die E-Mail.
  2. Klicke auf „Datei“ und dann auf „Eigenschaften“.
  3. Im Fenster „Eigenschaften“ findest Du den E-Mail Header unter „Internetkopfzeilen“.
  4. Kopiere den Header, um ihn weiter zu analysieren.

Du kannst auch spezielle Tools verwenden, die die E-Mail Header analysieren und visualisieren.


Praktische Beispiele

Ein Beispiel für einen Header, den Du auslesen könntest, sieht so aus:

Return-Path: <mustermann@example.com>
Received: from mailout10.sul.t-online.com (EHLO mailout10.sul.t-online.com) [194.25.134.21]
    by mx0.gmx.net (mx013) with SMTP; 29 Mar 2005 22:09:13 +0200

Mit dem oben genannten VBA-Code kannst Du solche Header-Daten in Excel importieren und weiter analysieren.


Tipps für Profis

  • Nutze die Debug.Print Funktion, um während der Ausführung des Codes Werte im Direktfenster anzuzeigen. So kannst Du einfacher nachvollziehen, was im Code passiert.
  • Experimentiere mit den Eigenschaften des MailItem-Objekts, um mehr Details über die E-Mail zu erhalten, z. B. objItem.Subject für den Betreff oder objItem.Attachments für Anhänge.
  • Verwende die Möglichkeit, die E-Mail Header zu filtern, um nur bestimmte Absender oder Betreffs zu analysieren.

FAQ: Häufige Fragen

1. Wie kann ich E-Mail Header auslesen, wenn ich eine andere Outlook-Version benutze? Du musst den Verweis auf die entsprechende „Microsoft Outlook Object Library“ in Deinem VBA-Editor setzen. Der Code bleibt jedoch größtenteils gleich.

2. Kann ich den Header für mehrere E-Mails gleichzeitig auslesen? Ja, passe die Schleife im VBA-Code an, um bestimmte Filter zu verwenden oder alle E-Mails im Posteingang zu durchlaufen.

3. Wo finde ich die Header-Daten, wenn ich GMX oder T-Online benutze? Die Header-Daten sind in der Regel in den E-Mail-Eigenschaften der jeweiligen E-Mail zu finden, unabhängig vom Anbieter.

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