Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Outlook 2003: Datei aus Mailanhang automatisch in Ordner verschieben oder kopieren

Mitglied: Sylvia

Sylvia (Level 1) - Jetzt verbinden

08.01.2007, aktualisiert 23.07.2007, 28442 Aufrufe, 30 Kommentare

Hallo !

ich suche eine Möglichkeit Dateianhänge von Mails direkt in einen Ordner zu verschieben oder zu kopieren. Dies kann ein fixer Ordner sein, muss also nicht bei jeder Mail ein anderer sein.

Beispiel: Mail mit Dateianhang: anhang1.xls.
Dieser soll nun sofort beim Eingang in den Ordner e:\temp\Mailanhänge verschoben oder kopiert werden.

Kennt jemand hier eine Lösungmöglichkeit ?

Ich habe im Outlook nur die Alternative gefunden, die komplette Mails zu verschieben - aber das möchte ich nicht - NUR der Anhang soll verschoben/kopiert werden.

Viele Grüße und Danke schonmal

Sylvia
30 Antworten
Mitglied: Biber
08.01.2007 um 19:30 Uhr
Hallo Sylvia,

das ist recht simpel und auch irgendwo in der VBA-Hilfe unter Outlook selbst ist ein Beispielcode dafür mit dabei (weiß ich, weil ich da mal zufällig darüber gestolpert bin - eben beim Suchen nach allen Schlüsselworten, die mir spontan im Kontext Attachments einfielen, habe ich es nicht gefunden).

Aber auch im Netz gibt es ~zig aufgemotze Varianten davon (siehe Suchmaschine "Outlook Anhänge automatisiert speichern").

Ein halbwegs seriöser, wenn auch ein bisschen übertriebener Schnipsel schient mir dieser zu sein:
How to: Email Anhang automatisch speichern u. umbennen
(Das "Unbennen" ist ein Zitat, keine persönliche Note von mir)

Wenn es klemmt, melde Dich nochmal.

Gruß
Biber
Bitte warten ..
Mitglied: Sylvia
10.01.2007 um 12:33 Uhr
Hallo Biber

danke schön, ich bin wohl etwas blind
Leider funktioniert das Ding nicht bei mir ich habe aber auch keine Ahnung von VB
folgender Code steht in meinem Outlook (Makros beim neustart explizit aktiviert, is ja mein Skript), den Ordner mailanhang habe ich unter E: auf der Festplatte angelegt.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

End Sub

Private Sub Application_NewMail()
Dim strNewFolder As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem
On Error Resume Next
strNewFolder = "E:\mailanhang\" & Format(Date, "ddmmyy")
MkDir strNewFolder
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
For Each objNewMail In objPosteingang.Items
With objNewMail
If .UnRead = True Then
intAnlagen = .Attachments.Count
If intAnlagen > 0 Then
For i = 1 To intAnlagen
.Attachments.Item(i).SaveAsFile strNewFolder & "\" & .Attachments.Item(i).FileName
Next i
End If
End If
End With
Next objNewMail
End Sub


Er macht absolut garnichts

Grüsse
Sylvia
Bitte warten ..
Mitglied: Sylvia
10.01.2007 um 12:37 Uhr
kaum hab ichs nochmal getestet nach dem Absenden des Postings, hat er zumindest mal den Ordner angelegt - aber da is nix drin
Ein pdf-Anhang habe ich aber der Mail beigefügt
Bitte warten ..
Mitglied: Biber
10.01.2007 um 13:08 Uhr
Moin Sylvia,
versuch es mal bitte so:
01.
Sub Application_NewMail()
02.
Dim strNewFolder As String
03.
Dim objPosteingang As MAPIFolder
04.
Dim objNewMail As MailItem
05.
Dim aAttachment As Attachment
06.
 
07.
strNewFolder = "E:\mailanhang\" & Format(Date, "ddmmyy")
08.
On Error Resume Next
09.
MkDir strNewFolder
10.
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
11.
For Each objNewMail In objPosteingang.Items
12.
   With objNewMail
13.
   If .UnRead = True Then
14.
       intAnlagen = .Attachments.Count
15.
       If intAnlagen > 0 Then
16.
           For i = 1 To intAnlagen
17.
              Set oAttachment = .Attachments.Item(i)
18.
              oAttachment.SaveAsFile strNewFolder & "\" & oAttachment.FileName
19.
           Next i
20.
       End If
21.
   End If
22.
   End With
23.
Next objNewMail
24.
End Sub
Der Ordner "E:\Mailanhang" MUSS existieren.
( Oder eben vorher mit "MkDir E:\Mailanhang" extra angelegt werden.)

Gruß
Biber
Bitte warten ..
Mitglied: Sylvia
10.01.2007 um 13:47 Uhr
Hallo Biber,

wie gehabt, der ordner 100107 wird angelegt, aber die Datei nicht hereinkopiert/geschoben...


Kann das ein Berechtigungsproblem sein ? Auf den Ordner haben autentifizierte Benutzer zugriff - und admin und system natürlich eh.
Grüsse
Sylvia
Bitte warten ..
Mitglied: Biber
12.01.2007 um 11:36 Uhr
Moin Sylvia,

na ja, was der Fehler ist, erfahren wir eventuell, wenn Du dieses pauschale "On Error Resume Next" mal kurz auskommentierst.
So lässt sich ja nix sehen...

Gruß
Biber
Bitte warten ..
Mitglied: Sylvia
12.01.2007 um 11:57 Uhr
Aha
Nun kommt wenigstens eine Fehlermeldung:
Laufzeitfehler 13: Typen unverträglich

Bei Debuggen wird dann der Eintrag "Next objNewMail" vorletzte Zeile gelb markiert.

Bei einer weiteren Mail kam dann der Fehler:
Laufzeitfehler 75: Fehler beim Zugriff auf Pfad/Datei

Der Debugger steht hier auf "MkDir strNewFolder"

Vielleicht liegt das daran, dass es den Ordner mit dem Namen schon gibt von der Mail vorher ?

Was auch immer das heißt *seufz*
vb is einfach ein Böhmisches Dorf für mich

Hast Du einen Rat ?

Grüsse
Sylvia
Bitte warten ..
Mitglied: Sylvia
12.01.2007 um 12:25 Uhr
Ich habe nun das "MkDir strNewFolder" gelöscht und auch das "& Format(Date, "ddmmyy")" hinter strNewFolder..., ich brauche ja nur einen Ordner wo das alles reinkommt und nicht immer einen neuen Pro Tag.

Der Laufzeitfehler 13 kommt aber nach wie vor..

Grüsse
Sylvia
Bitte warten ..
Mitglied: Biber
12.01.2007 um 13:55 Uhr
Sorry, Sylvia,

das kommt vom schnellen Hingepfusche... bei Gelegenheit zieh ich das mal glatt (oder setze bastla darauf an).

Next Try:
01.
Sub Application_NewMail()
02.
Dim strNewFolder As String
03.
Dim objPosteingang As MAPIFolder
04.
Dim objNewMail As MailItem
05.
Dim oAttachment As Attachment
06.
 
07.
strNewFolder = "D:\mailanhang\" & Format(Date, "ddmmyy")
08.
On Error GoTo check_error
09.
MkDir strNewFolder
10.
Back1:
11.
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
12.
For Each Item In objPosteingang.Items
13.
  If Item.Class = olMail Then
14.
   Set objNewMail = Item
15.
   With objNewMail
16.
   If .UnRead = True Then
17.
  
18.
  intanlagen = .Attachments.Count
19.
  Debug.Print objNewMail & ": "; intanlagen
20.
  If intanlagen > 0 Then
21.
     For i = 1 To intanlagen
22.
        Set oAttachment = .Attachments.Item(i)
23.
           oAttachment.SaveAsFile strNewFolder & "\" & oAttachment.FileName
24.
     Next i
25.
   End If
26.
End If
27.
End With
28.
End If
29.
Next Item
30.
 
31.
check_error:
32.
Debug.Print Err.Number; Err.Description
33.
If Err.Number = 75 Then ' Fehler beim Zugriff auf Pfad -- ignorieren wir mal
34.
   Err.Clear
35.
   GoTo Back1:
36.
Else
37.
   Err.Raise Err.Number, Err.Description
38.
End If
39.
 
40.
Err.Clear
41.
Resume Next
42.
 
43.
End Sub
Eines der Problemchen war, dass bei jedem Item im Posteingang unterstellt wurde, es sei eine Mail.
Bei Terminen oder Lesebestätigungen geht es natürlich in die Grütze....

Schau mal, ob Du ein paar Meter weiter damit kommst...

Gruß
Biber
Bitte warten ..
Mitglied: Sylvia
12.01.2007 um 15:10 Uhr
Vielen Dank !! es tuuuuuuuuuuuuuuuuut
ausser dass das D:\ ein E:\ war, aber das hab ich hinbekommen

Allerdings kommt am Ende noch ein Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument.

Immerhin speichert er die Datei nun ab

Beim 2. Versuch hat er die Datei nicht mehr gespeichert, ews.htm hab ich sie genannt - aber die telefonbuch.pdf hat er genommen ?

Hast Du noch ne Idee wegen dem Laufzeitfehler ?
Was passiert wenn die Dateien den gleichen Namen haben ?
Kann man als Ordner anstatt den Tag auch nur den Monat nehmen (0107)?

Grüsse Sylvia
Bitte warten ..
Mitglied: Biber
12.01.2007 um 19:11 Uhr
Moin Sylvia,

nur kurz, weil ENDLICH mein Wochenende beginnt:
Hast Du noch ne Idee wegen dem Laufzeitfehler ?
Nicht direkt. Errorcode 5 hat eigentlich schon seit Erfindung der Alufolie die Bedeutung Zugriff verweigert.
Ob das nun bei dieser *.htm bedeutet, dass OL die versucht, als Htm-Seiten - und Unterseiten zu speichern oder da vielleicht noch ein Link auf ein Bildchen aus dem Internet ist.... heb Dir *.htm für später auf.
Was passiert wenn die Dateien den gleichen Namen haben ?
Wer zuletzt kommt, gewinnt.
Kann man als Ordner anstatt den Tag auch nur den Monat nehmen (0107)?
Jein. kannst Du natürlich, aber bei monatsweise oder jahresweise Abspeichern hast Du naturgemäß mehr Kollisionen (gleiche Dateinamen) als beim Speichern in Tages-Ordner.
Ich würde dann den Weg gegen, nicht in ein Tages-Verzeichnis zu speichern, sondern in ein großes Sammelbecken - und diesen Format(date())-String vorne an den Dateinamen dranhängen.
Wenn es sein muss, auch die Uhrzeit dazu.

So, nun bastel mal weiter - wenn ich am Montag aus dem WE zurückkomme, möchte ich hier ein fertiges Musterskript statt dieser zusammengeschroteten Skizze sehen...

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: Sylvia
15.01.2007 um 08:34 Uhr
Guten Morgen
ich hatte auch Wochenende... und hab mir dabei den Kopf zerbrochen wie vb wohl funktionieren mag... leider ergebnislos

Folgender Fehler kommt nun:
Laufzeitfehler 5: Ungültiger Prozeduraufruf oder ungültiges Argument.
Beim Debuggen steht er dann auf "Err.Raise Err.Number, Err.Description"

Die Dateien, diesmal xls und txt, werden aber abgelegt.

Kann man zip-Dateien auch gleich entpackt abspeichern ?

Böhmische Dörfer...


Gibt es Literatur, mit der man sich bissi aufs vb vorbereiten kann - also was leicht verständliches für nen DAU

Grüße
Sylvia
Bitte warten ..
Mitglied: Biber
15.01.2007 um 09:11 Uhr
Moin Sylvia,

Einsteiger-Links zu VBS/Wscript sind schon mehrfach hier im Forum gepostet worden.
Direkt bei M$ findest Du das umfangreiche "Hey, Scripting Guy" -Projekt.

Zu dem albernen Absturz...

So peinlich mir das ist, es könnte etwas besser werden, wenn Du vor der Zeile "check_error:" noch eine Zeile "Exit Sub" einfügst... *schäm*

Gruß
Biber
Bitte warten ..
Mitglied: Sylvia
15.01.2007 um 09:57 Uhr
Es scheint nun etwas besser zu sein

Hast Du wegen dem entpacken noch eine Idee ?
Kann man das gleich in einem Rutsch machen oder lässt man da ab und an ein Skript über den Ordnerinhalt laufen ?

Ich werd mal versuchen, ob ich das Verschieben der Mail in einen E-Mail-Ordner nach dem Abhängen der Datei hinbekomme... *bezweifel*
Aber ein Versuch isses wert....

Grüße
Sylvia
Bitte warten ..
Mitglied: Biber
15.01.2007 um 20:01 Uhr
Moin Sylvie nochmal,
zum Entpacken hast Du zwei oder drei Möglichkeiten:
- entweder über einen vorhandenen Konsolen-Entpacker (pkunzip.exe, 7z.exe . rar.exe..)
Sind allesamt legal und unkompliziert als Download erhältlich
Die könntest Du über "WShell.Run( entpacker.exe entpack-parameter)"
- oder hin und wieder später über einen Entpack-Dienst-Batch auspacken lassen
- oder aber mit einer über "Extras"->"Verweise" mit eingebundenen UnZip-Dll gleich im VBA mit auspacken lassen.
Wenn Du einen der gängigen Zipper (WinZip, WinRar, 7Zip) installiert hast, sollte Dir eine entsprechende Bibliothek mit im Outlook angeboten werden.

Aber zwischendurch mal die Frage: Ist das denn alles sinnvoll... blind jeden Anhang zu entpacken?
Müssen nicht bestimmte Anhänge woanders gesammelt werden?
Reden wir hier von den täglich 5000 gezippt an den HelpDesk gemailten Errorlog-Dateien?
Oder geht es um die zwei elektronischen Grußkarten, die Du am Wochenende gemailt bekommst?
Oder bist Du gar diejenige, die unsere ganzen freiwillig an M$ gesendeten Absturz-Infos lesen soll?

Grüße
Biber
Bitte warten ..
Mitglied: Sylvia
16.01.2007 um 09:16 Uhr
Guten Morgen, Biber

nun, es ist schon sinnvoll, da die Dateien aus dem Ordner dann durch einen Konverter laufen (mscons in csv bzw. xls). Der guckt da in bestimmten Abständen und wandelt die Daten dann um, damit diese dann wieder weiterverarbeitet werden können. Das kanner aber nur mit entpackten Dateien.

Die betreffende Mailadresse wird nur für den Eingang dieser Daten benutzt. Natürlich lauert da ein Antivirus...
Es handelt sich dabei bisher um etwa 250-300 Mails pro Monat (steigend), immer von den gleichen Absendern. Das Monat für Monat von Hand zu machen ist aber recht zeitaufwändig, da muss noch genug von Hand nachbearbeitet werden *seufz*.

Grundsätzlich hab ich verstanden was Du meinst, aber meine Kenntnisse reichen da wohl nicht aus. Ich habe 7z auf meinem Rechner und werde mir das mal anschauen. Wir haben auch noch freie Lizenzen für WinZip. Immerhin habe ich es hinbekommen, den Ordner mit dem namen des jeweiligen Vormonats zu benennen *froi*

Ab und an ist ein VB-Käpsele im Haus, den werde ich dann mal Löchern wegen dem Problem *g*

Vielen Dank für Deine Mühe !!

Grüße
Sylvia
Bitte warten ..
Mitglied: Sylvia
17.01.2007 um 09:59 Uhr
Guten Morgen !

ich hätte da noch ne Frage: Kann mann die Dateien auch abhängig von ihrer Endung (pdf,xls,csv) in verschiedene Ordner kopieren ?

Grüße

Sylvia
Bitte warten ..
Mitglied: bastla
17.01.2007 um 17:23 Uhr
Hallo Sylvia!

Pardon, wenn ich in Euer tête à tête reinplatze, aber da Biber oben ohnehin schon mit meiner Mitwirkung gedroht hatte ...

Du könntest zum Aufteilen der Attachments auf entsprechende Unterordner versuchsweise die "For"-Schleife durch folgende Variante ersetzen:
01.
...
02.
Set fso = CreateObject("Scripting.FileSystemObject")
03.
For i = 1 To intanlagen
04.
	Set oAttachment = .Attachments.Item(i)
05.
	strFileName = oAttachment.FileName
06.
	strFileType = ""
07.
	If InstrRev(strFileName, ".") Then strFileType = LCase(Mid(strFileName, InstrRev(strFileName, ".")))
08.
	Select Case strFileType
09.
	Case ".xls" 'Typ mit Kleinbuchstaben angeben
10.
		strSubFolder = "Excel"
11.
	Case ".csv"
12.
		strSubFolder = "CSV"
13.
	Case Else
14.
		strSubFolder = "Andere"
15.
	End Select
16.
	strSavePath = strNewFolder & "\" & strSubFolder
17.
	If Not fso.FolderExists(strSavePath) Then fso.CreateFolder(strSavePath)
18.
	oAttachment.SaveAsFile strSavePath & "\" & oAttachment.FileName
19.
Next i
20.
...
Grüße
bastla
Bitte warten ..
Mitglied: Sylvia
18.01.2007 um 11:37 Uhr
Hallo bastla,

da macht doch nichts wenn du dich einmischt, micht freuts und ausserdem ist der Forum doch für alle da.. was wir nicht wollen was in die Öffentlichkeit kommt läuft eh im PN

Vielen Dank für den Tip, das werde ich mal ausprobieren und ggf "aufbohren".
Ich habe keine Ahnung von VB, nur bisi Cobol und PHP, aber ich glaube ich versteh was Du meinst und werd mein Glück versuchen... learning by doing....

Viele Grüße

Sylvia
Bitte warten ..
Mitglied: Sylvia
23.07.2007 um 11:10 Uhr
Hallo Ihr,

es ergab sich mittlerweile einneues Problem - nachdem das Abhängen nun funktioniert hat..

Wie kann ich die Anhänge verschlüsselter Mails abhängen ?

Der zugehörige Schlüssel ist natürlich vorhanden im Outlook/IE

Hat jemand einen Rat ?

Grüße
Sylvia
Bitte warten ..
Mitglied: Saschbert
08.05.2009 um 18:11 Uhr
Hallo,

ich weiß, ein wirklich alter Beitrag, aber er hat mir _sehr_ weitergeholfen. Da auch ich in VBS/VBA nicht fit bin, würde mich noch ein kleines Goodie in diesem Script erfreuen, wenn es möglich ist.

Am Ende der Verarbeitung soll ein Hinweisbox mit einem Text erscheinen (z.B. "Verarbeitung fertig" oder "Alle Anhänge gespeichert").

Hintergrund ist hier:
Ich bekomme mindestens 2x die Woche wirklich vieeeele Mails mit noch mehr Anhängen. Heute waren es 72 Mails mit insgesammt 353 Anhängen (PDF), entspricht 216 MB. Diese Anhänge kommen auf ein Netzlaufwerk, alle in einen Ordner. Im Script legt er sie jedoch erstmal lokal ab, und ich verschiebe sie später, nach Prüfung.

Das Problem:
Wenn ich nun das Makro in Outlook 2k3 starte, dann kommt erstmal die Sanduhr, zwischenzeitlich ist die mal weg, dann wieder da, und ich erkenne nicht wirklich, wann er durch ist. Daher wäre eine Quittierung schön.

Vielen Dank,
Saschbert
Bitte warten ..
Mitglied: bastla
08.05.2009 um 19:48 Uhr
Hallo Saschbert!
Am Ende der Verarbeitung soll ein Hinweisbox mit einem Text erscheinen (z.B. "Verarbeitung fertig" oder "Alle Anhänge gespeichert").
Die dafür nötige Anweisung
MsgBox "Alle Anhänge gespeichert.", vbOKOnly , "Verarbeitung fertig"
könntest Du am Ende des "Hauptprogrammes" = unmittelbar vor der Zeile
check_error:
platzieren.

Grüße
bastla
Bitte warten ..
Mitglied: Saschbert
11.05.2009 um 18:54 Uhr
WOW, super ... einfach spitze! Ich bin super begeistert. Und hey, ich habe es gleich auf den 2. Anhieb hinbekommen, noch eine Abfrage auf die Mailadresse zu bekommen, damit er nicht von allen Mails die Anhänge exportiert.

Nochmals vielen vielen Dank!!!

Gruß
Saschbert


Edith sagt: Der Befehl für die Hinweisbox kommt übrigens nicht direkt über das "check_error:", sondern noch eine Zeile früher vor dem "End Sub" "Exit Sub" (Edith entschuldigt sich ), aber das habe ich mir schon gedacht gehabt. Für alle noch einmal das nun wirklich funktionierende Script, inkl. Hinweis der Fertigstellung und eingeschränkt auf die E-Mails eine Absenders. Zudem habe ich noch eine Zeitvariable in den Ordnernamen eingebaut und die Ordnerbennenung umgetauscht. Hier nun das Script:

01.
Sub Application_NewMail()
02.
Dim strNewFolder As String
03.
Dim objPosteingang As MAPIFolder
04.
Dim objNewMail As MailItem
05.
Dim oAttachment As Attachment
06.
 
07.
strNewFolder = "C:\TEMP\" & Format(Date, "yyyymmdd") & "-" & Format(Time, "hhmm") & "_Scandaten" 'Hier könnte die Benennung auch getauscht werden, bzw. ein anderer Pfad angegeben werden.
08.
On Error GoTo check_error
09.
MkDir strNewFolder
10.
Back1:
11.
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
12.
For Each Item In objPosteingang.Items
13.
  If Item.Class = olMail Then
14.
   Set objNewMail = Item
15.
   With objNewMail
16.
   If .SenderEmailAddress = "test@absender.de" Then 'Hier die Absenderadresse, sonst Zeile löschen
17.
   If .UnRead = True Then 'Diese Zeile bewirkt, dass nur ungelesene Items exportiert werden.
18.
  
19.
  intanlagen = .Attachments.Count
20.
  Debug.Print objNewMail & ": "; intanlagen
21.
  If intanlagen > 0 Then
22.
     For i = 1 To intanlagen
23.
        Set oAttachment = .Attachments.Item(i)
24.
           oAttachment.SaveAsFile strNewFolder & "\" & oAttachment.FileName
25.
     Next i
26.
   End If
27.
   End If 'Dieses EndIf raus, wenn keine Beschränkung auf den Absender
28.
End If
29.
End With
30.
End If
31.
Next Item
32.
MsgBox "Alle Anhänge gespeichert.", vbOKOnly, "Verarbeitung fertig" 'Hinweisbox der Fertigstellung. Wenn unerwünscht, Zeile raus
33.
Exit Sub
34.
 
35.
check_error:
36.
Debug.Print Err.Number; Err.Description
37.
If Err.Number = 75 Then ' Fehler beim Zugriff auf Pfad -- ignorieren wir mal
38.
   Err.Clear
39.
   GoTo Back1:
40.
Else
41.
   Err.Raise Err.Number, Err.Description
42.
End If
43.
 
44.
Err.Clear
45.
Resume Next
46.
 
47.
End Sub
Bitte warten ..
Mitglied: bastla
11.05.2009 um 19:35 Uhr
Hallo Saschbert!

Freut mich, dass es passt ...

Grüße - auch an Edith (die das erwähnte "End Sub", jetzt "Exit Sub", mitgebracht hat - das hatten wir oben noch gar nicht) ...
bastla
Bitte warten ..
Mitglied: Saschbert
11.05.2009 um 23:05 Uhr
Zitat von bastla:
Grüße - auch an Edith (die das erwähnte "End
Sub", jetzt "Exit Sub", mitgebracht hat - das hatten
wir oben noch gar nicht) ...

Hab sie mal ermahnt.

Aber so ist das, wenn man von einer Sprache noch nichts versteht, und die ersten Krabbelversuche wagt.
Bitte warten ..
Mitglied: TomTom81
14.07.2009 um 15:57 Uhr
hey,
schönes Script habt Ihr Euch da zusammengebastelt
Ich benutze es auch und es funktioniert prima !!

Ich bin leider in VB auch absolut unbeholfen und würde das Script gerne ein wenig erweitern.
Ich bekomme mehrere Mails mit jeweils 1 Anhang, dabei interessieren mich nur die Anhaenge.
Wenn die Anhaenge von dem gewissen Absender also kopiert sind, möchte ich die Emails direkt wieder
automatisch löschen.

Ich kann mir vorstellen, dass es folgendermassen funktioniert:

If .SenderEmailAddress = "mail@absender.de" then objNewMail.delete

Ob das richtig ist und wo das letztendlich in das script eingebunden werden muss, weis ich leider nicht.
Vielleicht kann mir einer von Euch helfen.

Gruß
Thomas
Bitte warten ..
Mitglied: JuliusLeo
14.07.2009 um 22:59 Uhr
Hi,
also ich habe den Code bei visual basic eingegeben...
01.
Module Module1
02.
 
03.
    Sub Main()
04.
    End Sub
05.
    Sub application_NewMail()
06.
        Dim strNewFolder As String
07.
        Dim objPosteingang As MAPIFolder
08.
        Dim objNewMail As MailItem
09.
        Dim oAttachment As Attachment
10.
        strNewFolder = "C:\TEMP\" & Format(Date, "yyyymmdd")& "-" & Format(Time, "hhmm") & "_Scandaten"
11.
        On Error GoTo check_error
12.
        MkDir(strNewFolder)
13.
Back1:
14.
        objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
15.
        For Each Item In objPosteingang.Items
16.
            If Item.Class = olMail Then
17.
                objNewMail = Item
18.
                With objNewMail
19.
                    If .SenderEmailAddress = "test@absender.de" Then
20.
                        If .UnRead = True Then
21.
                            intanlagen = .Attachments.Count
22.
                            Debug.Print objNewMail & ": "; intanlagen 
23.
                            If intanlagen > 0 Then
24.
                                For i = 1 To intanlagen
25.
                                    oAttachment = .Attachments.Item(i)
26.
                                    oAttachment.SaveAsFile(strNewFolder & "\" & oAttachment.FileName)
27.
                                Next i
28.
                            End If
29.
                            End With 
30.
            End If
31.
        Next Item
32.
        MsgBox("Alle Anhänge gespeichert.", vbOKOnly, "Verarbeitung fertig")
33.
        Exit Sub
34.
check_error:
35.
        Debug.Print Err.Number; Err.Description 
36.
        End if
37.
        Err.Clear()
38.
        Resume Next
39.
 
40.
    End Sub
41.
 
42.
                                Next
43.
                            End If
44.
                        End If
45.
                    End If
46.
                End With
47.
            End If
48.
        Next
49.
 
50.
 
51.
 
52.
 
53.
 
54.
 
55.
    End Sub
56.
 
57.
End Module
... und dann kam das raus mehrere fehlermeldungen:
Fehler 1 Der Typ "MAPIFolder" ist nicht definiert. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 7 31 ConsoleApplication1
Fehler 2 Der Typ "MailItem" ist nicht definiert. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 8 27 ConsoleApplication1
Fehler 3 Der Typ "Attachment" ist nicht definiert. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 9 28 ConsoleApplication1
Fehler 4 Zur Angabe von Typargumenten für generische Typen oder Methoden ist "Of" erforderlich. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 10 44 ConsoleApplication1
Fehler 5 Typ erwartet. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 10 50 ConsoleApplication1
Fehler 6 Der Name "Time" wurde nicht deklariert. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 10 76 ConsoleApplication1
Fehler 7 Der Name "Application" wurde nicht deklariert. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 14 26 ConsoleApplication1
Fehler 8 Der Name "olFolderInbox" wurde nicht deklariert. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 14 76 ConsoleApplication1
Fehler 9 "If" muss mit einem entsprechenden "End If" abgeschlossen werden. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 19 21 ConsoleApplication1
Fehler 10 "If" muss mit einem entsprechenden "End If" abgeschlossen werden. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 20 25 ConsoleApplication1
Fehler 11 Methodenargumente müssen in Klammern stehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 22 41 ConsoleApplication1
Fehler 12 Ungültiges Zeichen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 22 58 ConsoleApplication1
Fehler 13 Methodenargumente müssen in Klammern stehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 35 21 ConsoleApplication1
Fehler 14 Ungültiges Zeichen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 35 31 ConsoleApplication1
Fehler 15 "End If" muss ein entsprechendes "If" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 36 9 ConsoleApplication1
Fehler 16 Syntaxfehler. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 42 33 ConsoleApplication1
Fehler 17 "End If" muss ein entsprechendes "If" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 43 29 ConsoleApplication1
Fehler 18 "End If" muss ein entsprechendes "If" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 44 25 ConsoleApplication1
Fehler 19 "End If" muss ein entsprechendes "If" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 45 21 ConsoleApplication1
Fehler 20 "End With" muss ein entsprechendes "With" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 46 17 ConsoleApplication1
Fehler 21 "End If" muss ein entsprechendes "If" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 47 13 ConsoleApplication1
Fehler 22 Syntaxfehler. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 48 9 ConsoleApplication1
Fehler 23 "End Sub" muss ein entsprechendes "Sub" voranstehen. C:\Dokumente und Einstellungen\D - Chris\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\ConsoleApplication1\Module1.vb 55 5 ConsoleApplication1

Also ich bin ein zimlicher neuling in diesem Programm und würde mich über unterstützung freuen:
Vielen Dank im Voraus
Julius

[Edit Biber] In Code-Tags gesetzt [/Edit]
Bitte warten ..
Mitglied: JuliusLeo
15.07.2009 um 11:20 Uhr
Hallo,
oder könntet ihr mir das fertige Programm villeicht an meine E-mail adresse senden (koenig.julius@t-online.de).
Aber wenn möglich nicht auf eine E-mail adresse festgelegt, sondern das sie den Anhang jeder anommenen E-mail adresse in dem Ordner
Email -anhänge auf dem Desktop abspeichert. Wenn ihr das hinbekommen würdet, wäre das echt total nett.
Vielen Dank
Julius
Bitte warten ..
Mitglied: dhakra
21.07.2010 um 14:11 Uhr
Hi!

ich bin jetzt schon seit einiger Zeit auf der Suche nach einem ähnlichen Script, finde aber überall nur solche Scripte wie dieses hier.
Und zwar empfange ich Faxe als E-Mail mit PDF-Anhang. Ich möchte lediglich die PDF in den Outlookordner schieben damit ich in der Schnellansicht das Fax sehen und die E-Mail löschen kann. Leider weiß ich nicht wie ich Anhang in einen Outlookordner extrahiere. Den Rest würde ich mir dann irgendwie selbst zusammenschieben können. Wär cool wenn jemand n Ratschlag hat.

BTW: Ich arbeite bereits mit Outlook 2010 falls es dort irgendwelche dramatischen Änderungen bezüglich VBS gibt.
Bitte warten ..
Mitglied: bastla
21.07.2010 um 14:37 Uhr
Hallo JuliusLeo und ein nachträgliches Willkommen im Forum!
ich habe den Code bei visual basic eingegeben...
... klingt verdächtig nach VB20xx, und nicht nach Outlook-VBA ...

Ansonsten könntest Du es vielleicht mit der folgenden ungetesteten Version versuchen:
01.
Sub application_NewMail()
02.
Dim strNewFolder As String
03.
Dim objPosteingang As MAPIFolder
04.
Dim objNewMail As MailItem
05.
Dim oAttachment As Attachment
06.
Dim WshShell As Object
07.
Dim strDesktop As String
08.
 
09.
Set WshShell = CreateObject("WScript.Shell")
10.
strDesktop = WshShell.SpecialFolders("Desktop")
11.
 
12.
strNewFolder = strDesktop & "\" & Format(Date, "yyyymmdd")& "-" & Format(Time, "hhmm") & "_Scandaten"
13.
On Error GoTo check_error
14.
MkDir(strNewFolder)
15.
 
16.
objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
17.
For Each Item In objPosteingang.Items
18.
    If Item.Class = olMail Then
19.
        objNewMail = Item
20.
        With objNewMail
21.
            'If .SenderEmailAddress = "test@absender.de" Then 'um nur Mails eines bestimmten Absenders zu bearbeiten, Kommentar entfernen (und Absenderadresse anpassen ;-))
22.
                If .UnRead = True Then
23.
                    intanlagen = .Attachments.Count
24.
                    Debug.Print objNewMail & ": "; intanlagen 
25.
                    For i = 1 To intanlagen 'If davor eingespart: wenn intanlagen < 1 ist, wird die Schleife ohnehin nicht ausgeführt ...
26.
                        oAttachment = .Attachments.Item(i)
27.
                        oAttachment.SaveAsFile(strNewFolder & "\" & oAttachment.FileName)
28.
                    Next
29.
                End If
30.
            'End If 'um nur Mails eines bestimmten Absenders zu bearbeiten, Kommentar entfernen
31.
        End With
32.
    End If
33.
Next Item
34.
MsgBox("Alle Anhänge gespeichert.", vbOKOnly, "Verarbeitung fertig")
35.
Exit Sub
36.
 
37.
check_error:
38.
Debug.Print Err.Number; Err.Description 
39.
Err.Clear()
40.
Resume Next
41.
 
42.
End Sub
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Viren und Trojaner
Virus gefunden Mailanhang
Frage von MartyMcFlurry90Viren und Trojaner10 Kommentare

Hallo zusammen, sind eine kleine Firma und mein Virenschutz hat mir heute diese Meldung als Report geliefert. Meiner Recherche ...

Microsoft Office

Einzelnes Tabellenblatt als E-Mailanhang mit Outlook versenden

gelöst Frage von manfredwernerMicrosoft Office5 Kommentare

Hallo Forum, In einer Excel Tabelle habe ich mehrere Tabellenblätter welche automatisch mit Inhalten aus einer Eingabemaske im ersten ...

Batch & Shell

Linux Shell Mailanhang umbenennen

gelöst Frage von ThekiviBatch & Shell2 Kommentare

Hallo Miteinander, ich habe hier eine Linuxmaschine(Debian Variante) mit Postfix laufen. Der Server verarbeitet Dateien und schickt sie per ...

Outlook & Mail

Outlook Termin verschwindet automatisch

Frage von oceOutlook & Mail3 Kommentare

Hallo zusammen, ich habe Owner Berechtigung auf einen Kalender von einem Kollegen. Wenn ich in dem Namen von demjenigen ...

Neue Wissensbeiträge
Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 15 StundenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 3 TageniOS3 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 4 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Off Topic
Avengers 4: Endgame - Erster Trailer
Information von Frank vor 6 TagenOff Topic2 Kommentare

Ich weiß es ist Off Topic, aber ich freue mich auf diesen Film und vielleicht geht es anderen hier ...

Heiß diskutierte Inhalte
Windows Server
Einziger Domänencontroller ersetzen - Windows Server 2012R2 - Hostname
Frage von DeRo93Windows Server26 Kommentare

Guten Tag, Leider haben wir einen Domänencontroller dessen Komponentenspeicher defekt ist. Alle Maßnahmen sind da leider fehlgeschlagen. Nun wurde ...

Server-Hardware
WS 2016 Essentials Hardware
Frage von ChefknechtServer-Hardware20 Kommentare

Moin welche Hardware würdet ihr empfehlen? Dell Poweredge HP Proliant Fujitsu Ich bin total konfus was nun nötig ist, ...

Windows Server
Welche Option fürs Windows Server Installations besser
Frage von backitWindows Server18 Kommentare

Hi Zusammen, ich werde unserer AD (SBS 2011) und Exchange 2010 Servern auf neuen physikalischen Server umziehen. ich habe ...

Windows Update
Fehler bei Updates über WSUS
Frage von Hendrik2586Windows Update16 Kommentare

Guten Tag liebe Kolleginen und Kollegen, lang lang ist meine letzte Anfrage her. Hier etwas das mich nun schon ...