Thema Datum  Von Nutzer Rating
Antwort
Rot emails aus outlook auslesen mit vba
01.06.2007 15:17:37 thomas zwirdsch
NotSolved
18.06.2007 06:12:29 Rasta
NotSolved

Ansicht des Beitrags:
Von:
thomas zwirdsch
Datum:
01.06.2007 15:17:37
Views:
2295
Rating: Antwort:
  Ja
Thema:
emails aus outlook auslesen mit vba
Folgende Aufgabe will ich lösen:

Ich möchte alle Emails, die nicht versendet werden konnten(also undelivered emails) erfassen und in einer Accesstabelle speichern. Diese Email befinden sich in meinem Fall, alle in einem Outlookordner.

Das Problem habe ich soweit fast gelöst, jedoch hakt es an einer Sache.

Zunächst erstmal der VBA-Code:

Public Function test()
Set ws = DBEngine.CreateWorkspace("work1", "admin", "")
Set db = ws.OpenDatabase("C:\Documents and Settings\Evolution\Desktop\unzustellbar.mdb")
Set rs = db.OpenRecordset("mail")
Dim objol As Outlook.Application

Set objol = CreateObject("Outlook.Application")
Set objNS = objol.GetNamespace("MAPI")
Set myinbox = objNS.GetDefaultFolder(olFolderInbox)

For i = 1 To myinbox.Folders("unzustellbar").Items.Count
getMailadress (myinbox.Folders("unzustellbar").Items(i).Body)
Next i
'myItems = myInbox.Items.Find("[subject] =""Butterfly""").Display
db.Close
End Function


Public Function getMailadress(c As String) As String
On Error GoTo ende
Dim i As Long
Dim s As Long
Dim e As Long
i = InStr(1, c, "@", vbTextCompare)
If i <> 0 Then
s = getStartpoint(i, c)
e = InStr(s + 1, c, " ", vbTextCompare)
rs.AddNew

'Debug.Print "-------------------------------"
' debug.Print "Ende: " +
rs![mail] = Trim(Mid(c, s, e - s))
rs.Update
' Debug.Print Mid(c, s, e - s)
'Debug.Print "-------------------------------"
End If
ende:
End Function

Public Function getStartpoint(i As Long, c As String) As Long
Dim s As String

While s <> " "
s = Mid(c, i, 1)
i = i - 1
MsgBox s
Wend

getStartpoint = i + 1

End Function

Mit der Funktion test wird die Anwendung gestartet.

Das Makro funktioniert auch soweit, nur gibt die Funktion mir nicht alle Emailadressen zurück, falls die zurückgesendete Email folgenden Body hat:

The Postfix program

xxxxx@xxxxx.com.ec: host xxxxx.com.ec[111.11.11.11]
said: 550 5.1.1 xxxxx.xxxx@xxxxt.com.ec... User unknown (in
reply to RCPT TO command)



erhalte ich anstatt der emailadresse, den String "program" zurück. Aus irgendeinem Grund werden die Freizeichen nicht erkannt.
Ich habe in der While-Bedingung der Funktion getStartpoint auch sowas wie While (s <> " " ") probiert, aber damit erhalte ich gar keine Ausgabe.

Vielleicht hat ja jemand von euch eine Idee, ich weiß nämlich nicht mehr weiter.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot emails aus outlook auslesen mit vba
01.06.2007 15:17:37 thomas zwirdsch
NotSolved
18.06.2007 06:12:29 Rasta
NotSolved