carolin.zelda
Goto Top

VBA Outlook - Mail delivery system

Hallo zusammen,

und zwar habe ich folgendes Problem: Wir arbeiten mit einem Newslettersystem und bekommen sehr oft Emails zurück, die wie folgt aussehen:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its recipients. This is a permanent error. The following address(es) failed:

HYPERLINK DER EMAILADRESSE
retry timeout exceeded

Nun würden ich gerne die Email-Adressen extrahiert haben, am besten in eine Excel-Tabelle.
Hier im Forum habe ich schon ein Programm gefunden, welches Emails aus den Mail delivery fails in ein Word-Dokument extrahieren soll.
Ich habe es aber nicht geschafft, dieses für unsere Ordnerstruktur umzuschreiben.
Vielleicht schafft es ja einer von euch.


Unsere Ordnerstruktur:

Öffentliche Ordner - Emailadresse des Benutzers
Alle Öffentlichen Ordner
E-Mail Versand
Carl
Berger

Das ist das Programm was ich bereits gefunden habe:

01.
Sub parseMails()
02.
Const FILEPATH = "D:\emails2.txt"
03.

04.
Set myRegExp = CreateObject("vbscript.regexp")
05.
Set objFSO = CreateObject("Scripting.FileSystemObject")
06.
Dim fldr As Folder
07.
Set fldr = Application.Session.Stores.Item("t.gerns@domain.tld").GetRootFolder.Folders("No-Reply")
08.
Set objTextFile = objFSO.CreateTextFile(FILEPATH, True)
09.
myRegExp.IgnoreCase = True
10.
myRegExp.Pattern = "([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6})"
11.

12.
For i = 1 To fldr.Items.Count
13.
If fldr.Items(i).Class = olMail Then
14.
strBody = fldr.Items(i).Body
15.
Set myMatches = myRegExp.Execute(strBody)
16.
If myMatches.Count >= 1 Then
17.
For Each myMatch In myMatches
18.
If myMatch.SubMatches.Count >= 1 Then
19.
strEMail = myMatch.SubMatches(0)
20.
objTextFile.WriteLine (strEMail)
21.
End If
22.
Next
23.
End If
24.
End If
25.
Next
26.

27.
objTextFile.Close
28.
MsgBox "Verarbeitung abgeschlossen !" & vbNewLine & "Die Datei mit den extrahierten E-Mail-Adressen liegt hier: " & FILEPATH
29.
Set myRegExp = Nothing
30.
Set objFSO = Nothing
31.
End Sub

Danke schon mal im Voraus face-smile

Content-Key: 306989

Url: https://administrator.de/contentid/306989

Printed on: April 19, 2024 at 23:04 o'clock

Member: atze187
atze187 Jun 13, 2016 updated at 09:15:40 (UTC)
Goto Top
Hi,

bitte gehen Sie weiter und lesen Sie die ANtwort von skybird - hier gibt es nichts zu sehen.

du musst dich durch die Ordnerstruktur arbeiten, d.h. an den Ordner \\<Mailbox von t.gerns@domain.tld>\Posteingang\Rückläufer kommst du per Application.Session.Stores.Item("t.gerns@domain.tld").GetRootFolder.Folders.item("Posteingang").Folders.item("Rückläufer") ran. In Office 2013 und aufwärts.

Gruß,
André
Mitglied: 129413
Solution 129413 Jun 13, 2016 updated at 09:03:03 (UTC)
Goto Top
Aber nur so kommt man vernünftig an die öffentlichen Ordner:
Set fldr = Application.GetNamespace("MAPI").GetFefaultfolder(olPublicFoldersAllPublicFolders).Folders.Item("E-Mail Versand").Folders.Item("Carl").Folders.Item("Berger")  
Gruß skybird

P.s. Hier gibt es Codeformatierung Leute!
Member: carolin.zelda
carolin.zelda Jun 13, 2016 at 09:38:53 (UTC)
Goto Top
Danke schon mal für die Bemühungen.

Habe die Ordnerstruktur jetzt so übernommen, aber das Programm zeigt mir beim Ausführen folgendes an:

Laufzeitfehler '438'

Objekt unterstützt diese Eigenschaft oder Methode nicht

Woran könnte das liegen?
Mitglied: 129413
129413 Jun 13, 2016 updated at 09:47:48 (UTC)
Goto Top
Du hast bestimmt die Zeilennummern mitkopiert, wie dein erster Post schwer vermuten lässt face-big-smile ...Duck und wech ...
=> Quelltextbutton!!
Member: carolin.zelda
carolin.zelda Jun 13, 2016 at 09:56:07 (UTC)
Goto Top
Nein, daran kann es nicht liegen, die habe ich alle entfernt :>