evinben
Goto Top

Anhänge aller RSS-Feeds-Elemente von einem Outlook-Ordner in ein Verzeichnis auf dem Datenträger abspeichern.

Hallo,

ich benutze ein VBA-Skript zum Speichern von E-Mail-Anhängen. Nun will ich die Anhänge von den ungelesenen RSS-Feeds-Elementen, die sich in einem Unterordner des als Standard gesetzten persönlichen Ordners befinden, auf ähnlicher Weise in ein angegebenes Verzeichnis auf dem Datenträger abspeichern. Es sind sehr viele Lektionen/Lehrmaterialien, die ich regelmäßig empfange.
Leider funktioniert der unten angepasste Code nicht mit RSS-Feeds-Elementen und ich finde leider keine Beispiele in der VBA-Hilfe dazu. Eine Eigenschaft wie objNewMail aber für RSS-Feeds Elemente (etwa wie objNewRSS oder objNewRSSFeeds), habe ich in der VBA-Hilfe leider nicht finden können. Wenn ich die RSS-Feeds-Elemente und paar E-Mail-Elemente als ungelesen markiere, werden leider nur die Anhänge ungelesener E-Mails in das angegebene Verzeichnis abgespeichert, jedoch nicht die Anhänge der RSS-Elemente.

Mit der Office-VBA-Hilfe bin ich leider nicht weitergekommen.

Besten Dank für paar Tipps

Gruß
evinben

Content-Key: 188145

Url: https://administrator.de/contentid/188145

Printed on: April 24, 2024 at 22:04 o'clock

Member: evinben
evinben Jun 11, 2013 at 05:03:32 (UTC)
Goto Top
Anbei ist das fast fertige Makro, das noch anpassungsbedürftig ist:
Quelle: http://www.office-loesung.de/ftopic102696_0_0_asc.php
Private Sub Application_NewMail() 

    Dim Foldername As String 
    Dim objIn As MAPIFolder 
    Dim objNewMail As MailItem 
    Dim find As AcFindMatch 
    
    
  
    On Error Resume Next 
    Set objIn = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)   
    For Each objNewMail In objIn.Items 
        With objNewMail 
        ' enter email adress to which the scanner sends the mail between the ""   
        If objNewMail.SenderEmailAddress = "test@adresse.de" Then   
              
            If .UnRead = True Then 
                NumberOfMails = .Attachments.Count 
                
                If NumberOfMails > 0 Then 
                
                            ' create the folder c:\temp and in this folder a folder with the name of the mail subject   
                            ' Existing folders won't be over overwritten, objNewMail.Subject is not case sensitive   
                    Foldername = "C:\temp\" & Replace(objNewMail.Subject, ":", "")   
                    MkDir Foldername 
    
                    For i = 1 To NumberOfMails 
                    
                           ' save the attachment to the folder mentioned   
                           ' above and replace the filname with the mail-body   
                           ' the vbCrLf, "" function replaces vertical spacing   
                           ' pdf is the filetype of the scanned paper   

                           objNewMail.BodyFormat = olFormatPlain 
                            s = Len(.Body) 
                            
                            
                             .Attachments.Item(i).SaveAsFile Foldername & "\" & Replace(Mid(.Body, InStr(.Body, ".com") + 4, s), vbCrLf, "") & ".pdf"   
                        
                            
                          
                    ' Optional: the mail can be deleted after saving   
                    '.Delete   
                    ' Optional: MsgBox for the user   
                    'MsgBox ("Attachment saved successfully")   
                        
                    Next i 
                End If 
            End If 
         End If 
          
        End With 
            
            Next objNewMail 
            End Sub 

Vielen Dank für den Versuch die richtige Methode zu finden

Gruß
Evinben
Member: evinben
evinben Jun 28, 2013 updated at 09:29:28 (UTC)
Goto Top
…die perfekte Lösung wäre unter dem folgenden Link zu finden:

http://gallery.technet.microsoft.com/scriptcenter/Save-attachments-from ...

Einfach die VBS-Datei abspeichern. Einen Ordner auf dem Datenträger irgendwo erstellen, in welchem die Anhänge der markierten Outlook-Elemente gespeichert werden sollen, und diesen auf das VBS-Skript ziehen und loslassen.

Exzellente Umsetzung!


Wer will, kann sich den Code anpassen. Für mich ist dies mehr als Perfekt umgesetzt.

Viel Erfolg

Gruß
Evinben