Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

E-Mails importieren und bestimmten Textfeldern zuordnen.





Frage

Hallo zusammen, wenn möglich möchte ich eingegangene Mails (Outlook)importieren/abspeichern. Die E-Mail Daten/Texte sollen in einer Formularmaske, in den entprechenden Textfeldern übernommen werden. Bsp.: Die "Absender- Mailadresse" ins Textfeld "KäuferEMail", der Text "Rasenmäher" (Artikel) ins Textfeld "Artikel/Bezeichnung", die Zahl "Artikelnummer" ins Textfeld "Artikelnummer" usw. Geht dieses und wenn ja auch als Stapelverarbeitung. Grüße und Danke im voraus.

Antwort 1 von Ossimann

Hat keiner einen Vorschlag? :-(

Antwort 2 von Teddy7

Hallo Ossimann !
Ich hab da ein Beispiel - nicht auf meinem Mist gewachsen :

Das Problem:
Es sollen alle Emails des Standard-Outlook-Posteingangsordner durchsucht und alle Attachments automatisch in ein Verzeichnis kopiert werden.
Die Lösung:
Die gesamte Verarbeitung findet in einem Click-Event einer Schaltfläche statt. Um das Beispiel möglichst einfach zu gestalten, haben wir darauf verzichtet, das Zielverzeichnis frei wählbar zu gestalten. Statt dessen werden im folgenden Beispiel alle Attachments einfach in das Temp-Verzeichnis von Laufwerk C kopiert. Da Outlook im selben Verzeichnis aber auch eine temporäre Kopie der Dateinen speichert, wird das Attachment unter einem erweiterten Namen gespeichert. Hier der Beispiel-Code:




' Das Formular-Modul verwendet das Outlook-Objektmodell.
' Um dieses verwenden zu können, muß ein Objekt-Verweis auf die
' korrekte Outlook-Bibliothek (in diesem Beispiel
' Microsoft Outlook 8.0 Object Library) gelegt werden.

Option Compare Database
Option Explicit

Private Sub cmdKopieren_Click()
On Error GoTo fehlerhandler
' Der Zugriff auf Outlook erfolgt über eine Reihe von Objektvariablen
' die hier zunächst einmal deklariert werden
Dim objOutlook As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
Dim objMailordner As Outlook.MAPIFolder
Dim objMail As Outlook.RemoteItem
Dim objAttachment As Outlook.Attachment

' Schleifenvariable
Dim i As Integer

' Zunächst ein neues Outlook-Objekt anlegen und der entsprechenden
' Objekt-Variable zuweisen
Set objOutlook = New Outlook.Application

' Von der Outlook-Objekt-Variable kann nun ein Namespace-Objekt
' zurückgeliefert und in der entsprechenden Objektvariable gespeichert werden
Set objNameSpace = objOutlook.GetNamespace("MAPI")

' Über das Namespace-Objekt kann nun jeder Ordner innerhalb von Outlook
' angesprochen werden. Hier wird der Posteingangsorder in einer
' entsprechenden Objektvariable gespeichert.
Set objMailordner = objNameSpace.GetDefaultFolder(olFolderInbox)

' Mit einer Schleife kann nun der Posteingangsordner durchlaufen werden.
For i = 1 To objMailordner.Items.Count
' Innerhalb dieser Schleife wird nun Email für Email abgearbeitet.

' Mit einer weiteren Schleife werden zu jeder Email die ggf. vorhandenen
' Attachments durchgegangen und in ein Verzeichnis gespeichert.
For Each objAttachment In objMailordner.Items(i).Attachments
objAttachment.SaveAsFile "C:\temp\Attachment_" & objAttachment.FileName
Next
Next

verlassen:
On Error Resume Next
' Jedes von der Anwendung angelegte Objekt soll auch von der Anwendung
' wieder zerstört werden. Deshalb hier ein Clean-Up
Set objAttachment = Nothing
Set objMail = Nothing
Set objMailordner = Nothing
Set objNameSpace = Nothing
objOutlook.Quit
Set objOutlook = Nothing
Exit Sub
fehlerhandler:
MsgBox CStr(Err.Number) & ": " & Err.Description, vbCritical
Resume verlassen
End Sub


Gruß
Teddy

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: