vielen Dank für deinen Vorschlag. Habe ich ausprobiert. Leider konnten
die unterschiedlichen Dateitypen nicht alle erkannt werden.
Habe aber jetzt eine Lösung mit AutoIT und VBA gefunden, die alle Formate
unterstützt und die PDFs auch stets vollständig abspeichert.
Die Lösung sieht so aus:
[autoit][/autoit]Spoiler anzeigen
$oOutlook = _m_outlook_creat_get_Object() ; übergibt Objekt in Variable $oOutlook
$Anhangfolder = 'K:\CRS\ZFM\AutoIt\Programme\peppi\Attachments\' ; peicherort der Anhänge
$Item_ID = 123; Ablageordner
Global $aOL_Item = _OL_ItemFind($oOutlook, $Mail_Absender, $olMail, "", "", "", "EntryID"); übergibt alle Email-IDs
If $aOL_Item[0][0] = 0 Then Exit MsgBox(16, "OutlookEX UDF: _OL_ItemAttachmentGet Example Script", "Es konnten keine Emails im Ordner 'Posteingang' gefunden werden. @error = " & @error)
Local $ActualNo = $aOL_Item[0][0]; gibt die Anzahl der gefunden Emails zurück
While 1
$Result = _OL_ItemAttachmentGet($oOutlook, $aOL_Item[$ActualNo][0], Default)
If IsArray($Result) Then
for $i = 1 to UBound($Result) -1
$oItem = $Result[$i][0]
$oItem.SaveAsFile($Anhangfolder&$Item_ID&'\'&$oItem.Filename)
for $i2 = 0 to 10
$res = FileExists ($Anhangfolder&$Item_ID&'\'&$Result[$i][2])
If $res = 1 Then Exitloop 1
If $i2 = 10 Then Exitloop SetError(1)
Sleep(300)
next
IF @error <> 0 Then Exit MsgBox(64, 'Result', 'Achtung Speicherfehler. mit Attachment: '&$Result[$i][2])
next
EndIf
$ActualNo -= 1
If $ActualNo = 0 Then Exitloop
Wend
MsgBox(64, "Hinweis", "Erfolgreich gespeichert!")
_OL_Close($oOutlook)
Exit
func _m_outlook_creat_get_Object($action = 'get')
Local Static $outlook_Object
Switch $action
Case 'get'
if IsObj($outlook_Object) then
return $outlook_Object
Else
ContinueCase
endif
Case 'create'
$outlook_Object = _OL_Open()
return $outlook_Object
case 'close'
_OL_Close($outlook_Object)
$outlook_Object = 0
EndSwitch
endfunc ;<==/m_outlook_creat_get_Object
Besten Dank für die Unterstützung