Emailinhalt als txt.-Datei speichern
lima-city → Forum → Programmiersprachen → Basic
abgespeichert
automatisierung
basic
beitrag
datei
display
email
exit
fehler
hilfe
inhalt
lsung
message
methode
mglichkeit
prfung
quelltext
schleifen
schreibe
set
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Meinst du jetzt direkt von Outlook aus mit VBA als Makro, oder von "extern" über OLE-Automatisierung?
Grundsätzlich dürfte es kein Problem sein, mittels OLE-Automatisierung (egal ob jetzt als Makro, oder von einem eigenständigen Programm aus) die Nachrichten auszulesen. Wie du den Text dann als Datei abspeicherst, dürfte ja des geringste Übel sein ...
Stöber' einfach mal durch die Visual Basic Hilfe von Outlook (vorausgesetzt, du hast diese mitinstalliert!).
Beitrag geaendert: 17.4.2007 11:24:30 von burgi
Hab nochmal ein bisschen rumgesucht in der VBA-Hilfe:
GetDefaultFolder (Methode)
Sub DisplayATaskFolder()
Dim myolApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myTasks As Outlook.MAPIFolder
Dim myFolder As Outlook.MAPIFolder
Set myolApp = CreateObject("Outlook.Application")
Set myNamespace = myolApp.GetNamespace("MAPI")
Set myTasks = myNamespace.GetDefaultFolder(olFolderTasks)
Set myFolder = myTasks.Folders(1)
myFolder.Display
End Sub
Wenn du im Beispiel oben aus der Hilfe anstelle olFolderTasks olFolderInbox
verwendest, solltest du zumindest einen Punkt haben, wo du konkret zu suchen anfangen kannst.
Beitrag geaendert: 17.4.2007 11:28:51 von burgi -
Hi,
danke für die Infos.
Aber ich möchte nur die einkommende Email automatisch mit VBA als txt.-Datei in einem Ordner meiner Wahl abspeichern.
Danke für die Hilfe, vielleicht hast du ja eine Idee... ;) -
Hab leider keine Hilfe in Visual Basic installiert.
GetDefaultFolder (Methode) Sub DisplayATaskFolder() Dim myolApp As Outlook.Application Dim myNamespace As Outlook.NameSpace Dim myTasks As Outlook.MAPIFolder Dim myFolder As Outlook.MAPIFolder Set myolApp = CreateObject('Outlook.Application') Set myNamespace = myolApp.GetNamespace('MAPI') Set myTasks = myNamespace.GetDefaultFolder(olFolderTasks) Set myFolder = myTasks.Folders(1) myFolder.Display End Sub
hmm, so kann der Code doch nicht direkt in "DieseOutlookSitzung" eingefügt werden, oder?
Was schreibe ich denn bei "(Methode)" rein und wo kann ich angeben wo die Email als txt.-Datei abgespeichert werden kann?
Sorry, bin auf dem Gebiet noch neu, Quellcodemäßig noch nicht so der hellste...
Vielleicht kannst du/ihr mir in dem Fall trotzdem noch ein Stück weiterhelfen...
VIELEN DANK -
Hab da jetzt nach langer langer Suche was gefunden was auch genau das ausführen könnte, was es soll, nur wird in Zeile *** immer der Fehler: "Objekt erforderlich" angezeigt.
Wie kann ich diesen Fehler jetzt noch beheben sodass es läuft?
Dim oMessages As Object, oMessage As Object, nDateinummer As Integer ' Zugriff auf den Posteingang Set oMessages = objSession.Inbox.Messages ' *** Do While (True) ' Prüfung, ob noch eine Nachricht da ist: Set oMessage = oMessages.GetLast If (oMessage Is Nothing) Then Exit Do ' Die Message wird gespeichert unter dem Namen ihrer Überschrift, ' und der Inhalt der neuen Datei ist auch der Inhalt der Mail. strDateiname = txtPfad.Text & oMessage.Subject & ".txt" nDateinummer = FreeFile() Open strDateiname For Output As #nDateinummer Print #nDateinummer, oMessage.Text Close #nDateinummer ' Löschen der Nachricht, und Fortfahren in der Schleife oMessage.Delete Set oMessage = Nothing Loop ' Aufräumen Set oMessages = Nothing
-
Also ich hab mal ein bisschen Zeit investiert:
Option Explicit Private Sub Application_NewMail() Dim oMessages As Object Dim oMessage As Object Dim nItems As Object Dim nDateinummer As Integer Dim strDateiname As String Dim iItem As MailItem Dim myNamespace As Outlook.NameSpace Set myNamespace = Application.GetNamespace("MAPI") Set Application.ActiveExplorer.CurrentFolder = myNamespace.GetDefaultFolder(olFolderInbox) Set oMessages = myNamespace.GetDefaultFolder(olFolderInbox) 'Set oMessages = objSession.Inbox.Messages ' *** Set nItems = oMessages.Items Do While (True) ' Prüfung, ob noch eine Nachricht da ist: Set oMessage = nItems.GetLast If (oMessage Is Nothing) Then Exit Do ' Die Message wird gespeichert unter dem Namen ihrer Überschrift, ' und der Inhalt der neuen Datei ist auch der Inhalt der Mail. strDateiname = "C:\test.txt" 'txtPfad.Text & oMessage.Subject & '.txt' nDateinummer = FreeFile() Open strDateiname For Output As #nDateinummer Print #nDateinummer, oMessage.Body Close #nDateinummer ' Löschen der Nachricht, und Fortfahren in der Schleife oMessage.Delete Set oMessage = Nothing Loop ' Aufräumen Set oMessages = Nothing End Sub
Den Code mußt du bei DieseOutlookSitzung beimNewMail-Ereignis eintragen.
Übrigens: ich bin sonst sehr hilfsbereit, aber ich finde es irgendwie sehr unverschämt, zu sagen: ich will haben, macht mal! Deinem Post nach suchst du nach einer Quelltext-Lösung (ich weiß ja nicht, was du darunter verstehst), aber wie mit scheint, hast du von Programmieren gar keine Ahnung. Also müßtest du zumindest fragen: Ich suche ein fertiges Makro für Outlook, das blablabla macht. So wie du geschrieben hast, horcht es sich an, als hättest du nur einen "Rempmler" in die richtige Richtung gebraucht. -
Hallo nochmal,
ich schreibe schon seit längerem an einem PHP-Projekt.
Es filtert gewisse Informationen aus txt-Dateien und schreibt diese in eine SQL-Datenbank.
Da diese Informationen aus Emails stammen und ich diese bisher nur manuell aus Outlook abspeichern konnte habe ich mich bei Google über einen automatischen Weg schlau gemacht, jedoch nur dürftige Ergebnisse gefunden.
Ich beherrsche Visual Basic in der Tat leider noch nicht sehr gut, deshalb habe ich an dieses sehr gute Forum geglaubt , in der Hoffnung, dass irgendjemand das selbe Problem vielleicht schon einmal hatte und mir mit seinem Quelltext ggf. aushelfen könnte.
Ich wollte hier keinen zum Schaffen nötigen.
Nächstes Mal formulier ichs günstiger ;)
Trotzdem möchte ich mich vielmals bei dir bedanken, dass du dir die Mühe gemacht hast, ich werde das ganze in Kürze mal ausprobieren.
THANKS MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage