Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

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, 12366 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 ..
Ähnliche Inhalte
Outlook & Mail
gelöst Outlook vba Email Anhang in Ordner speichern (3)

Frage von Daywalkercxp zum Thema Outlook & Mail ...

XML
gelöst Kein automatisches Backup über Button VBA (2)

Frage von Knuefi zum Thema XML ...

Outlook & Mail
gelöst Anhang einer neuen Mail in eine andere neue Mail per Drag and Drop schieben (7)

Frage von slansky zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(6)

Information von LordGurke zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

Frage von Lynkon zum Thema TK-Netze & Geräte ...