PDA

Vollständige Version anzeigen : E-Mail verschieben


chris1791
27.03.2006, 14:20
Hallo Profis,
Mit dem Code aus einem älteren Forumbeitrag:

'...
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)
For i = 1 To objMailordner.Items.Count
For Each objAttachment In objMailordner.Items(i).Attachments
objAttachment.SaveAsFile "C:\temp\" & objAttachment.FileName
Next
Next
'...

Lese ich täglich Anhänge aus Outlook und speichere sie in ein beliebiges Verzeichnis.
Wie kann ich die E-mail deren Anhang ich gerade gespeichert habe in den Outlook Unterordner "Posteingang\archiv" verschieben?
Ich möchte nämlich nicht dass am nächsten Tag den gleichen Anhang wieder einlese.
Gruß, chris

chris1791
28.03.2006, 11:33
Hallo Leute,
nach nervenzerreißenden Versuchen habe ich es geschafft:

Private Sub Application_NewMail()
Dim strNewFolder As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
Dim objEmail As Outlook.Items
Dim zielFolder
On Error Resume Next

Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

For Each objNewMail In objPosteingang.Items
‘Für jede neue Email:
With objNewMail
If .UnRead = True Then
intAnlagen = .Attachments.Count
If intAnlagen > 0 Then
‘Wenn Anlagen vorhanden
For i = 1 To intAnlagen
If Left(.Attachments.Item(i), 3) = "xxx" Then
‘Wenn Anlage mit “xxx” beginnt:
.Attachments.Item(i).SaveAsFile "C:\Test\" & .Attachments.Item(i)
‘Merkten dass die Mail die diese Anlage enthällt verschoben wird:
verschieben = True
End If
Next i
End If
End If
End With
If verschieben = True Then
‘Die Email in den vorgegebenen Posteingang-Unterordner verschieben
objNewMail.Move objPosteingang.Folders("Mein Unterordner")
objNewMail.Delete
End If
verschieben = False
Next objNewMail
End Sub


Damit werden neue E-Mails durchlaufen. Wenn spezifizierter Anhang vorhanden wird dieser in "C:\Test" gespeichert und die E-Mail in den Posteingang-Unterordner "Mein Unterordner" verschoben.
für mich ist das Thema abgeschlossen!
Viele Grüße,
Chris