tungsten
Goto Top

Alle eMails in Outlook-Ordnern speichern

Hallo!

Ich müßte folgendes realisieren:
alle eMails, die in Outlook gespeichert sind, sollen inklusive Anhängen in Dateien "exportiert" werden.

Ich dachte mir, ich laufe über alle Ordner, lege neue ggf. per VBSkript an, und speichere einfach alles, was sich selbst eMail nennt über die Funktion "Speichern unter..." als .msg-Datei bzw. als .msg-unicode-Datei

Leider fehlen mir grundlegende Infos:
Leider gibt es oder finde ich keinen Makrorekorder mehr, sonst würde ich einiges dazu vermutlich selbst recht einfach herausbekommen...

Meine Fragen wären:
- Wo kann ich alle Befehle von VBSkript nachschlagen? Kennt jemand ein Tutorial?
- Wie kann ich eine eMail über VBSkript speichern bzw. wie lautet der entsprechende Befehl/die Funktion?
- Wie bekomme ich die Inhalte eines Ordners?

Wie ich einen walk über Ordner machen kann habe ich glaube ich schon herausgefunden, allerdings bin ich mir nicht sicher, ob ich damit nur eMail-Ordner erwische.

Option Explicit

Sub ListAllFolders()
   Dim myfolder As MAPIFolder
   
   For Each myfolder In Application.Session.Folders
      ShowOneFolder myfolder, 1
   Next
End Sub

Sub ShowOneFolder(f As MAPIFolder, depth As Integer)
   Dim fsub As MAPIFolder
   Dim file As MAPIFile
   
   Debug.Print "Tiefe: " & depth & " Ordner: " & f.name  
   
   +++ ERZEUGE ORDNER AUF DISK +++
   fsub.createFolder
   +++ LIEFERE ALLE DATEIEN IN ORDNER +++
   For Each file in f.Files
      StoreMailOnDisk file
   Next
   +++
   
   For Each fsub In f.Folders
      ShowOneFolder fsub, depth + 1
   Next
End Sub

Sub StoreMailOnDisk()
   Dim file As MAPIFolder

   +++ SPEICHERE DATEI +++
   file.save
   
End Sub

So sollte ich doch grundsätzlich zum Ziel kommen, oder hat jemand eine bessere Idee?
Ihr seht ja wo es noch überall an einem Plan meinerseits mangelt. Habe ganz früher mal VBSkript programmiert, aber das ist inzwischen schon wieder hinten aus meinem Gehirn rausgepurzelt... face-sad


Vielen Dank für Eure Hilfe,

Jens

Content-ID: 65622

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

H2SO3-
H2SO3- 13.08.2007 um 13:22:16 Uhr
Goto Top
Hallo, habe vor kurzem etwas ähnliches geschrieben. Poste es hier mal rein. Mit diesem kannst du alle mails abgreifen die markiert sind.

Sub MailsSpeichern()

Dim objekt As Object
Dim myMail As Outlook.MailItem
Dim objRcp As Recipient
Dim absender As String
Dim uhrzeitDatei As String
Dim typeMail As String
Dim empfaenger As String
Dim Benutzer As String
Dim sqlstr As String
Dim dateiname As String
Dim empfangsmail As Boolean
Dim oConn As ADODB.Connection
Dim oRS As Recordset
Dim oRSKunde As Recordset
Dim sConn As String
Dim Kunde As String

For Each objekt In Application.ActiveExplorer.Selection

Set myMail = objekt

'auslesen der Nötigen Daten aus der mail
If UCase(myMail.SenderName) = UCase(Application.Session.CurrentUser) Then
' falls es sich um eine versendete mail Handelt
empfangsmail = False
For Each objRcp In myMail.Recipients
empfaenger = objRcp.Address

End If

End If
absender = myMail.SenderName
Next objRcp
Else
' falls es sich um eine empfangene Mail handelt
empfangsmail = True
empfaenger = myMail.ReceivedByName

If oRSKunde.EOF = False Then
empfaenger = CStr(oRSKunde(0))
Else

End If
absender = myMail.SenderEmailAddress
End If
End If

uhrzeitDatei = Format(myMail.ReceivedTime, "yyyy_mm_dd-hh_mm")

'abspeichern der mail als Datei
dateiname = absender + "-" + uhrzeitDatei + "Uhr.msg"
myMail.SaveAs "C:\Entsprechender Ordner \" & dateiname

Next
End Sub


Könnte zwar sein, das durch das zusammenkopieren jetzt einige fehler drinne sind. Aber ich hoffe du siehst worauf es ankommt. Wenn nicht frag mich nochmal.
Wenn du über einen exhange server interne mailadresse bekommst, wirst du allerdings ein kleines Problem bekommen, an dem ich auch noch zu kämpfen habe. Aber das "normale" abspeichern sollte so kein Problem sein.

cu H2SO3-
tungsten
tungsten 29.08.2007 um 11:32:31 Uhr
Goto Top
Hallo, habe vor kurzem etwas ähnliches
geschrieben. Poste es hier mal rein. Mit
diesem kannst du alle mails abgreifen die
markiert sind.

Das klingt schon einmal gut!


Sub MailsSpeichern()
...

Könnte zwar sein, das durch das
zusammenkopieren jetzt einige fehler drinne
sind. Aber ich hoffe du siehst worauf es
ankommt. Wenn nicht frag mich nochmal.

Ich glaube damit komme ich schon einmal weiter. Ist echt hart für mich. Wenn es doch nur eine Python-API oder eine Perl-API für Outlook gäbe face-wink
Die habe ich inzwischen wirklich drauf, aber VisualBasic ist irgendwie immer an mir vorbeigegangen. Na ja, eigentlich will ich es ja auch genau durch das kleine Projekt wieder lernen...


Wenn du über einen exhange server
interne mailadresse bekommst, wirst du

Das hier verstehe ich leider nicht?

allerdings ein kleines Problem bekommen, an
dem ich auch noch zu kämpfen habe. Aber

Welches Problem ensteht denn dann?


das "normale" abspeichern sollte so
kein Problem sein.

Das wäre es worauf es mir ankommt face-smile


cu H2SO3-

LOL, hübscher Nick! Chemiker? Oder gefällt es Dir einfach nur, alles "anzunagen"?

Auf jeden Fall vielen Dank!

Tungsten