Digital-Inn
 
 

Go Back   Digital-Inn > Office-Welt > MS Outlook

MS Outlook Outlook . viel mehr als "nur" ein Mail-Programm.

Reply
 
Thread Tools Display Modes
Old 13-08-2008   #1
schantz
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
schantz is offline   Reply With Quote
Sponsored Links
Old 13-08-2008   #2
bst
Excel Moderator
Senior Member (Board-Inventar)
 

Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.468
Abgegebene Danke: 10
Erhielt 147 Danke für 145 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
bst is offline   Reply With Quote
Old 13-08-2008   #3
schantz
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
schantz is offline   Reply With Quote
Old 13-08-2008   #4
bst
Excel Moderator
Senior Member (Board-Inventar)
 

Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.468
Abgegebene Danke: 10
Erhielt 147 Danke für 145 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
bst is offline   Reply With Quote
Old 14-08-2008   #5
bst
Excel Moderator
Senior Member (Board-Inventar)
 

Join Date: Oct 2004
Location: Ilsfeld
Posts: 2.468
Abgegebene Danke: 10
Erhielt 147 Danke für 145 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
bst is offline   Reply With Quote
Sponsored Links
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 13:55.


Powered by vBulletin® Version 3.7.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 2.4.0
Template-Modifikationen durch TMS
Advertisement System V2.5 By   Branden
Copyright by NightwoLF & Jesse69