Hallo Lars!
Also habe es jetzt nochmal mit meinem Programm auf der Arbeit getestet. Dort starte ich in einer Sub den folgenden Code. Damit kann ich auf alles zugreifen.
Set outlook = CreateObject("Outlook.Application")
Set ekonto = outlook.GetNamespace("MAPI")
Set inbox = ekonto.GetDefaultFolder(6) 'der Posteingang
For Each nachricht In inbox.items
If nachricht.Subject = "Nachricht mit Termin" Then
If nachricht.Attachments.Count > 0 Then
For Each anhang In nachricht.Attachments
dateitemp = "Y:\mein pfad\" & "test" & ".msg"
anhang.SaveAsFile dateitemp
Next anhang
End If
End If
Next nachricht
Das Problem ist aber das du Termine mit msg als Endung speichern musst. Filename gibt es dort nicht und einen NAmen vom Termin auch nicht. Wenn man es händisch speichert, würde auch der Betreffe genommen werden. Also ich würde dann bei dir einbauen
if anhang.type = 5 then
hier mit msg speichern. die 5 stellt dar, dass es ein Termin ist.
else
deinen Code wie beisher mit Filename, wo bei es noch andere typen als die 2 gibt
end if
bei meinem Beispiel geht das so
Set outlook = CreateObject("Outlook.Application")
Set ekonto = outlook.GetNamespace("MAPI")
Set inbox = ekonto.GetDefaultFolder(6) 'der Posteingang
For Each nachricht In inbox.items
If nachricht.Subject = "Mail mit 2 Anhängen" Then
If nachricht.Attachments.Count > 0 Then
For Each anhang In nachricht.Attachments
If anhang.Type = 5 Then 'die 5 steht für Termin
dateitemp = "mein Pfad" & nachricht.Subject & ".msg"
' hier gibt es keine Dateinamen beim Anhang, dort würde beim Speichern der betreff genommen.
anhang.SaveAsFile dateitemp
Else
dateitemp = "meii Pfad" & anhang.Filename
anhang.SaveAsFile dateitemp
End If
Next anhang
End If
End If
Next nachricht
Ist nur ein Beispiel. Müsstest es an deine Sachen noch anpassen, insb. beim Namen der Anhänge. VG
|