Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Outlook 2003 - Anhänge neuer Mails per VBA automatisch speichern

Frage Microsoft Outlook & Mail

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

20.01.2010 um 09:23 Uhr, 12063 Aufrufe, 3 Kommentare

Hallo,
ich habe hier einen kleinen Code, welcher bewirkt, dass Anhänge neuer eingehender Mails automatisch in einem (neu angelegtem) Ordner gespeichert werden.
Unter Outlook 2000 funktioniert dies auch, unter 2003 aber nicht. Der Unterordner wird zwar beim Eintreffen einer neuen Mail mit Anhang angelegt, der Anhang aber nicht darin gespeichert. Was muss ich da noch verändern?

01.
Private Sub Application_NewMail() 
02.
Dim strNewFolder As String 
03.
Dim objPosteingang As MAPIFolder 
04.
Dim objNewMail As MailItem 
05.
 
06.
On Error Resume Next 
07.
strNewFolder = "C:\Outlook-Anhang\" & Format(Date, "yyyy-mm-dd") 
08.
MkDir strNewFolder 
09.
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 
10.
For Each objNewMail In objPosteingang.Items 
11.
With objNewMail 
12.
If .UnRead = True Then 
13.
intAnlagen = .Attachments.Count 
14.
If intAnlagen > 0 Then 
15.
For i = 1 To intAnlagen 
16.
.Attachments.Item(i).SaveAsFile strNewFolder & "\" & .Attachments.Item(i).FileName 
17.
Next i 
18.
End If 
19.
End If 
20.
End With 
21.
Next objNewMail 
22.
End Sub
Torsten
Mitglied: fritzo
20.01.2010 um 14:13 Uhr
Hi,

lass mal das On Error Resume Next weg, dann siehst Du die Fehler, die während der Laufzeit auftreten. Outlook 2003 hatte bei mir Probleme mit dem an den Ordner angehängen Datum und dem MkDir, prüf die zwei Zeilen nochmal .. Bei mir läuft das Script so:


Sub Application_NewMail()
Dim strNewFolder As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As MailItem

' Prüfe, ob der Ordner bereits existiert
strNewFolder = "C:\Outlook-Anhang\"

' Target --> Posteingang
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

' Wenn neue Mails ankommen, dann enthaltene Anlagen in strNewFolder speichern
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
Bitte warten ..
Mitglied: goodbytes
21.01.2010 um 07:39 Uhr
Hi fritzo,
bei mir speichert Outlook die Anhänge aber leider nicht ab. Es kommt der Fehler: "Laufzeitfehler '13': Typen unverträglich.". Der Debugger verweist dann auf "Next objNewMail" am Ende.

Torsten

Ach übrigens, wenn ich mit "Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)" den Posteingang angeben kann ist es doch sicherlich auch möglich einen darunter selbst angelegten Ordner anzugeben, oder?
Bitte warten ..
Mitglied: fritzo
21.01.2010 um 10:13 Uhr
Hallo,

probier das mal so:

01.
Private Sub Application_NewMail() 
02.
    Dim fso As Object 
03.
    Dim objPosteingang As MAPIFolder 
04.
    Dim objNewMail As MailItem 
05.
  
06.
    Dim strNewFolder As String 
07.
    Dim intAnlagen As Integer 
08.
    Dim i As Integer 
09.
    Dim FolderPath As String 
10.
    Dim DateFolderPath As String 
11.
     
12.
    Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox) 
13.
 
14.
    FolderPath = "C:\Outlook-Anhang\" 
15.
    DateFolderPath = FolderPath & "\" & Format(Date, "yyyy-mm-dd") 
16.
     
17.
    Set fso = CreateObject("Scripting.FileSystemObject") 
18.
     
19.
    If Not fso.FolderExists(FolderPath) Then 
20.
        fso.CreateFolder FolderPath 
21.
    End If 
22.
     
23.
    If Not fso.FolderExists(DateFolderPath) Then 
24.
        fso.CreateFolder DateFolderPath 
25.
    End If 
26.
 
27.
    For Each objNewMail In objPosteingang.Items 
28.
        With objNewMail 
29.
            If .UnRead = True Then 
30.
                intAnlagen = .Attachments.Count 
31.
                If intAnlagen > 0 Then 
32.
                    For i = 1 To intAnlagen 
33.
                        If Not fso.FileExists(DateFolderPath & "\" & .Attachments.Item(i).FileName) Then 
34.
                            .Attachments.Item(i).SaveAsFile DateFolderPath & "\" & .Attachments.Item(i).FileName 
35.
                        End If 
36.
                    Next i 
37.
                End If 
38.
            End If 
39.
        End With 
40.
    Next objNewMail 
41.
    Set fso = Nothing 
42.
End Sub
Für einen selbst angelegten Ordner probier bitte mal das hier:
01.
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Folders.Item("Unterordner)
Gruß,
fritzo
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Outlook & Mail
Kein Mailversand mit Outlook 2003 (15)

Frage von gjhammes zum Thema Outlook & Mail ...

Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...