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

Forumthread: Mit Excel Email Adressen aus einer Email auslesen

Mit Excel Email Adressen aus einer Email auslesen
06.08.2019 12:17:07
R
Hallo,
ich möchte gerne mit Excel aus einer mit Outook empfangenen Datei die Empfänger Emailadressen (An und cc) auslesen.
Mit
GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items(Emailnr).to
bekomme ich nur Namen angezeigt, keine Mailadressen.
Das ganze muß unter Excel laufen, nicht unter Outlook, weil ich die Daten unter Excel auswerten will.
Kann jemand helfen?
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hole dir aus folgendem Link...
06.08.2019 13:07:33
R
Sorry,
im zitierten Beispiel wird der Absender ausgegeben. Ich suche Lösungen für die Empfänger (an und cc).
Ja, aber ich schrieb ja auch, ...
06.08.2019 13:18:38
Case
Hallo, :-)
... dass du dir die benötigte Information rausholen sollst. ;-)
Wenn du mit F8 im Einzelschritt durch den Code gehst und wenn du dann bei der Codezeile "With objItem" bist im Lokal-Fenster bei der Variable "objItem" auf das "+" klickst. Da gibt es den Punkt ".Recipients". Da verbergen sich die Informationen drunter. Ich dachte bei "VBA gut" wäre das klar. ;-)
Servus
Case

Anzeige
AW: Ja, aber ich schrieb ja auch, ...
06.08.2019 13:40:39
R
Ja, nun, womöglich eine Selbstüberschätzung. Gut ist ja auch relativ... ;-)
Aber die unter Recipients angebenen Werte beinhalten nicht die Email Adressen der Empfänger. Ich bekomme da nur Namen raus, wie z.B. Meier, Max (Firma). Ich hätte gerne so etwas wie meier.m@firma.de
Wenn du im Code...
06.08.2019 13:53:29
Case
Hallo, :-)
... an der oben angegebenen Stelle bist und im Direktfenster folgendes eingibst...
?objItem.Recipients(1).Address
... sollte die Empfängeradresse ausgegeben werden (tut es zumindest bei mir). ;-)
Servus
Case

Anzeige
AW: Wenn du im Code...
06.08.2019 13:57:34
R
Nein, das tut es bei mir nicht. Sonst wäre es ja einfach....
Da kommt zum Beispiel raus:
/O=TOP/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=Schwarz.r
Die Information, dass es über...
06.08.2019 14:28:06
Case
Hallo, :-)
... Exchange geht hast du nicht gegeben. ;-)
Dann (es ist immer noch einfach)...
?objItem.SendUsingAccount.SmtpAddress
Servus
Case

Anzeige
AW: Die Information, dass es über...
06.08.2019 14:37:17
R
Damit kommt gar nichts mehr raus.
Dann wirst du mal...
06.08.2019 14:43:29
Case
Hallo, :-)
... im Lokal-Fenster die Variable durchforsten müssen. Ich kann es gerade nicht testen. Mein Kumpel hat mir nur diese Info gegeben - bei ihm wird die Mailadresse ausgegeben. ;-)
Servus
Case

Anzeige
Oder noch besser - ...
06.08.2019 14:45:32
Case
Hallo, :-)
... frage mal in einem Outlookforum nach (es handlet sich ja um das Outlook Objektmodell - auch wenn es von Excel aus gesteuert wird). Gib aber gleich die Info mit Exchange.
Servus
Case

AW: Oder noch besser - ...
06.08.2019 14:49:17
R
Ja, danke, ich werde beides probieren. Kann etwas dauern.
Anzeige
AW: Oder noch besser - ...
06.08.2019 14:52:45
peterk
Hallo
Kleines Beispiel aus dem Internet
Sub GetSMTPAddressForRecipients(mail As Object)
    Dim recips As Object
    Dim recip As Object
    Dim pa As Object
    
    Const PR_SMTP_ADDRESS As String = _
        "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
    Set recips = mail.Recipients
    For Each recip In recips
        Set pa = recip.PropertyAccessor
        Debug.Print recip.Name & " SMTP=" _
           & pa.GetProperty(PR_SMTP_ADDRESS)
    Next
End Sub

Anzeige
AW: Oder noch besser - ...
06.08.2019 14:58:48
R
Ja, nochmals danke. Das Beispiel hatte ich auch schon entdeckt und ausprobiert, aber ebenso ohne Erfolg.
AW: Oder noch besser - ...
06.08.2019 15:11:08
peterk
Hallo
Ich habs unter Exchange ausprobiert und es funktioniert einwandfrei. Anbei mein ganzer Code
Sub ReadOutlookMails()

    Const olFolderInbox = 6

    Dim olApp As Object
    Dim MAPISpace As Object
    Dim MailItem As Object

    Set olApp = CreateObject("Outlook.Application")
    Set MAPISpace = olApp.GetNamespace("MAPI")
    Set olFolder = MAPISpace.GetDefaultFolder(olFolderInbox)

    For Each MailItem In olFolder.Items
        GetSMTPAddressForRecipients MailItem
    Next MailItem

    Set olApp = Nothing
    Set MAPISpace = Nothing
    Set olFolder = Nothing

End Sub


Sub GetSMTPAddressForRecipients(mail As Object)
    Dim recips As Object
    Dim recip As Object
    Dim pa As Object
    
    Const PR_SMTP_ADDRESS As String = _
        "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
    Set recips = mail.Recipients
    For Each recip In recips
        Set pa = recip.PropertyAccessor
        Debug.Print recip.Name & " SMTP=" _
           & pa.GetProperty(PR_SMTP_ADDRESS)
    Next
End Sub


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail-Adressen aus Outlook in Excel extrahieren


Schritt-für-Schritt-Anleitung

Um E-Mail-Adressen aus einer E-Mail in Outlook zu extrahieren und in Excel zu verwenden, kannst Du den folgenden VBA-Code nutzen. Dieser Code hilft dabei, die E-Mail-Adressen der Empfänger auszulesen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub ReadOutlookMails()
    Const olFolderInbox = 6
    Dim olApp As Object
    Dim MAPISpace As Object
    Dim MailItem As Object

    Set olApp = CreateObject("Outlook.Application")
    Set MAPISpace = olApp.GetNamespace("MAPI")
    Set olFolder = MAPISpace.GetDefaultFolder(olFolderInbox)

    For Each MailItem In olFolder.Items
        GetSMTPAddressForRecipients MailItem
    Next MailItem

    Set olApp = Nothing
    Set MAPISpace = Nothing
    Set olFolder = Nothing
End Sub

Sub GetSMTPAddressForRecipients(mail As Object)
    Dim recips As Object
    Dim recip As Object
    Dim pa As Object
    Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"

    Set recips = mail.Recipients
    For Each recip In recips
        Set pa = recip.PropertyAccessor
        Debug.Print recip.Name & " SMTP=" & pa.GetProperty(PR_SMTP_ADDRESS)
    Next
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro ReadOutlookMails aus, um die E-Mail-Adressen zu extrahieren.

Häufige Fehler und Lösungen

  • Problem: Es werden nur Namen und keine E-Mail-Adressen angezeigt.
    Lösung: Stelle sicher, dass Du die PropertyAccessor-Methode richtig verwendest. Überprüfe auch, ob die E-Mail-Adresse in Deinem Outlook korrekt hinterlegt ist.

  • Problem: Es wird eine Exchange-Adresse angezeigt, anstatt der SMTP-Adresse.
    Lösung: Verwende den SMTPAddress-Eigenschaftszugriff, um die richtige E-Mail-Adresse zu erhalten.


Alternative Methoden

Wenn Du keine VBA-Programmierung nutzen möchtest, kannst Du auch folgende Methoden ausprobieren:

  1. Excel-Funktionen: Nutze die Funktion TEXTFILTER, um E-Mail-Adressen aus Textdaten in Excel zu extrahieren, wenn diese in einer Zelle stehen.
  2. Power Query: Importiere Daten aus einem E-Mail-Postfach in Excel, um E-Mail-Adressen zu filtern und zu analysieren.

Praktische Beispiele

Hier sind einige Beispiele, wie Du E-Mail-Adressen aus Excel in Outlook nutzen kannst:

  • E-Mail-Adressen in Outlook importieren: Du kannst die extrahierten E-Mail-Adressen in eine CSV-Datei exportieren und diese in Outlook importieren, um Kontakte zu erstellen.
  • E-Mail-Adressen für Massenmailings: Verwende die Liste der E-Mail-Adressen, um gezielte E-Mail-Kampagnen über Outlook zu starten.

Tipps für Profis

  • Nutze Debug.Print im VBA-Code, um die Ergebnisse im Direktfenster des VBA-Editors anzuzeigen. So kannst Du überprüfen, ob die E-Mail-Adressen korrekt extrahiert werden.
  • Wenn Du mit großen Datenmengen arbeitest, achte darauf, die Leistung von Excel im Auge zu behalten. Reduziere die Anzahl der geladenen Elemente, um die Verarbeitung zu optimieren.

FAQ: Häufige Fragen

1. Wie kann ich E-Mail-Adressen aus Excel in Outlook importieren?
Exportiere die E-Mail-Adressen als CSV-Datei und nutze die Importfunktion in Outlook, um die Kontakte hinzuzufügen.

2. Kann ich E-Mail-Adressen direkt aus einer Zelle in Excel extrahieren?
Ja, Du kannst Formeln wie TEXTFILTER oder benutzerdefinierte VBA-Funktionen verwenden, um E-Mail-Adressen aus Text in einer Zelle zu filtern.

3. Funktioniert dieser Code in älteren Excel-Versionen?
Der VBA-Code sollte in Excel 2010 und späteren Versionen funktionieren, solange Outlook installiert ist und die richtigen Zugriffsrechte bestehen.

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