![]() |
|
|||||||
| MS Outlook Outlook . viel mehr als "nur" ein Mail-Programm. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Registered User
Board-Frischling
Join Date: Aug 2008
Location: Deutschland
Posts: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Frage - Anlagen in Abhängigkeit vom Betreff speichern
Hallo,
meine Umgebung: Windows XP mit MS Office 2007, Outlook mit Exchange-Server, Exchange-Konto lokal gespiegelt. mein Problem: Ich bekomme regelmäßig Mails mit Anhängen, die ich zur Weiterverarbeitung speichern muss (.txt-Dateien). Der Speicherort ist abhängig vom Betreff der Mail, wobei nur Teile des Betreffs maßgeblich sind, beispielsweise eine Ziffernfolge 1234567 innerhalb des Betreffs "xyz_1234567_abcde". Ich habe vor Einrichtung des Exchange-Servers das Addin Attachment Processor von Mapilabs genutzt, das aber mit Exchange seinen Dienst verweigert. Die Idee ist nun, mittels eines Makros jede eingehende Mail auf die Ziffernfolge im Betreff zu untersuchen und bei positiver Prüfung den Anhang in einem festen Ordner zu speichern, beispielsweise c:\anhaenge\meinordner\dateiname_anhang.txt Danach soll die Nachricht in einen Outlook-Ordner "MeinOutlookOrdner" verschoben werden. Vielleicht hat jemand einen Tipp oder ein VBA-Teil für mich. Vielen Dank im voraus an alle, die sich für mich den Kopf zerbrechen! Schöne Grüße schantz |
|
|
|
| Sponsored Links | |
|
|
#2 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.470
Abgegebene Danke: 10
Erhielt 149 Danke für 147 Beiträge
|
Morgen,
schau Dir mal diese an, kommst Du damit zurecht? http://www.digital-inn.de/ms-outlook...speichern.html http://www.digital-inn.de/ms-outlook...n-pruefen.html http://www.digital-inn.de/ms-outlook...h-drucken.html http://www.digital-inn.de/ms-outlook...e-1000-ca.html HTH, Bernd |
|
|
|
|
|
#3 |
|
Registered User
Board-Frischling
Join Date: Aug 2008
Location: Deutschland
Posts: 2
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
|
Hallo Bernd,
vielen Dank erstmal. Leieder bin ich kein Spezialist in VBA und kann mir die Vorschläge nicht selber umschreiben. Ich bin die ganze Zeit am Suchen und find nix, was auf mein Problem passen würde. MfG schantz |
|
|
|
|
|
#4 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.470
Abgegebene Danke: 10
Erhielt 149 Danke für 147 Beiträge
|
Hi,
Heute habe ich keine Zeit (und auch Lust) mehr. Wenn sich niemand anderes findet schaue mir das Morgen nochmals näher an. cu, Bernd |
|
|
|
|
|
#5 |
|
Excel Moderator
![]() Senior Member (Board-Inventar)
Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.470
Abgegebene Danke: 10
Erhielt 149 Danke für 147 Beiträge
|
Morgen,
versuche mal sowas. Der Code muss ins Klassenmodul von DieseOutlookSitzung. cu, Bernd -- Code:
Option Explicit
Private Const START_FOLDER As String = "e:\test\post\" ' Der Startordner
Private Sub Application_NewMail()
Dim strFolder As String ' der Ordner in welche die Anhänge gelegt werden
Dim objFolder As MAPIFolder ' der Posteingang
Dim objItem As Object ' ein Objekt im Posteingang
Dim objMailItem As MailItem ' eine Mail im Posteingang
Dim objRe As Object ' ein 'Regular Expression Object'
Dim objMc As Object ' eine MatchCollection, das Ergebnis von objRe.Execute
Dim i As Integer ' Zähler über Anhänge
Set objRe = CreateObject("vbscript.regexp")
objRe.Pattern = "(\d{3,})" ' eine Zahl die aus mindestens 3 Ziffern besteht, danach wird im Betreff gesucht
' Der Standard-Posteingangsordner
Set objFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
' Dort alle Elemente durchlaufen
For Each objItem In objFolder.Items
' Nur Mails beachten
If TypeOf objItem Is MailItem Then
Set objMailItem = objItem
With objMailItem
' nur ungelesene Mails mit >= 1 Anhang und einer min. 3-stelligen Ziffer im Betreff beachten
If .UnRead = True And .Attachments.Count > 0 And objRe.Test(.Subject) Then
Set objMc = objRe.Execute(.Subject)
' die Ziffernfolge aus dem Betreff extrahieren und als Unterverzeichnis hernehmen
strFolder = START_FOLDER & objMc(0).SubMatches(0) & "\"
' Debug.Print strFolder
' ggf. dieses Unetrverzeichnis erstellen
If Len(Dir(strFolder, vbDirectory)) = 0 Then MkDir strFolder
' Dort die Anhänge abspeichern
For i = 1 To .Attachments.Count
.Attachments(i).SaveAsFile strFolder & "\" & .Attachments(i).FileName
Next i
Set objMc = Nothing
' am Ende noch die Mail als Gelesen markieren
.UnRead = False
End If
End With
End If
Next objItem
Set objRe = Nothing
End Sub
|
|
|
|
| Sponsored Links | |
![]() |
| Thread Tools | |
| Display Modes | |
|
|