midivirus
Goto Top

Outlook - VBA - Anhänge extrahieren - keine Reaktion

Quelle:
http://www.ms-office-forum.net/forum/sitemap/index.php?t-186463.html
http://www.office-loesung.de/ftopic401266_0_0_asc.php

Mein Code, aus der Quelle angepasst und überflüssiges entfernt.

Aufgerufen wird es mittels einer Regel.

Public Sub Application_NewMail(objMail As Outlook.MailItem)

Dim Ordnername As String
Dim objPosteingang As MAPIFolder
Dim objNewMail As Object
Dim maildate As Date
Dim dirdatename As String
Dim anzahl As Integer

'Variable objPosteingang wird mit dem Posteingangsordner verknüpft  
Set objPosteingang = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)  
'Schleife, die jedes Item im Posteingang durchläuft  
For Each objNewMail In objPosteingang.Items
'Bedingung, dass Item eine Mail sein muss  
    If TypeOf objNewMail Is Outlook.MailItem Then
    With objNewMail

       'Pfad zum Backupordner + dynamischen Unterordner  
        Ordnername = "C:\Users\User\Desktop\"  
        anzahl = .Attachments.Count
        MsgBox (anzahl)

        'Bedingung dass nur ungelesene Mails geprüft werden  
        If .UnRead = True Then
            'Anzahl der Attachments werden gezählt  
            anzahl = .Attachments.Count
            MsgBox (anzahl)
            'Bedingung, dass mindestens 1 Attachment in der Mail vorhanden sein muss  
            'Schleife, die für jedes Attachment durchläuft  
            For i = 1 To anzahl
                'Attachment speichern  
                .Attachments.Item(i).SaveAsFile Ordnername & "\" & .Attachments.Item(i).FileName  
                MsgBox (anzahl)
            Next i
               'Mail löschen  
               objNewMail.Delete
       End If
    End With
End If

Next objNewMail
End Sub

Das schöne ist: es passiert einfach nichts sichtbares. Selbst wenn ich jetzt die MsgBox verwende, wird auch die mir nicht angezeigt. Nur wenn es einen Syntaxfehler gibt.
Die Sicherheit steht schon auf "nicht empfohlen", trotzdem passiert einfach nichts.

Ein anderes Skript hingegen läuft problemlos.

Falls es zur Lösungsfindung beiträgt, hier der Code:
Public Sub ForwardMail(objMail As Outlook.MailItem)

  Dim oForward As Outlook.MailItem
  ' Text, der dem Betreff vorangestellt werden soll  
  Const FIX_SUBJECT As String = "VK1 54398 "  

  ' Verweis auf das aktuell geöffnete oder selektierte Element:  
    Set myNameSpace = Application.GetNamespace("MAPI")  
    Set myFolder = myNameSpace.GetDefaultFolder(6)


  If TypeOf objMail Is Outlook.MailItem Then
    Set oForward = objMail.Forward
    With oForward
    .Recipients.Add "zieladresse@domain.tld"  
    End With
    If InStr(1, oForward.Subject, FIX_SUBJECT, vbTextCompare) = 0 Then
      oForward.Subject = FIX_SUBJECT & oForward.Subject
    End If
    oForward.Display
    With oForward
    .Send
    End With
  End If
End Sub
Der Code schickt die Mail mit dem oben angegebenen Betreff an die angegebene Zieladresse weiter.

Beste Grüße
Midivirus

Ich könnte es auch Outlook zuordnen ... hab mich für VBA entschieden.

Content-ID: 169257

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

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

bastla
bastla 06.07.2011 um 21:51:11 Uhr
Goto Top
Hallo Midivirus!

Setze beim Debuggen versuchsweise früher an - also eine MsgBox nach Zeile 15, nach Zeile 21 eine Ausgabe der Variablen "anzahl" und auch nach Zeile 24 noch eine Kontroll-Ausgabe ...

Zeile 15 könntest Du noch komplettieren auf:
If TypeOf objNewMail Is Outlook.MailItem Then
Grüße
bastla
Midivirus
Midivirus 06.07.2011 um 22:06:25 Uhr
Goto Top
Midivirus
Midivirus 07.07.2011 um 11:19:00 Uhr
Goto Top
Also die Zeile 20 (21) gibt mir eine 0 zurück.

die ausgewählte Mail ist die zweit älteste aus dem Posteingang. Was ich einfach nicht nachvollziehen kann (...)

Liegt es an meinem Sys: Win7 Ultimate OL 2007
bastla
bastla 07.07.2011 um 11:34:37 Uhr
Goto Top
Hallo Midivirus!

Sorry, Outlook ist nicht so meine Baustelle face-sad - warum kein Attachment gefunden wird, kann ich Dir leider auch nicht sagen ...

Grüße
bastla
Midivirus
Midivirus 07.07.2011 um 11:42:51 Uhr
Goto Top
hatte meinen Post geändert!
bastla
bastla 07.07.2011 um 12:28:02 Uhr
Goto Top
Hallo Midivirus!

Hatte ich gesehen, aber es scheitert ja offensichtlich daran, dass die Anzahl der Attachments 0 ergibt ...

Grüße
bastla
Midivirus
Midivirus 07.07.2011 um 12:58:55 Uhr
Goto Top
aber auch daran, dass OL2007 einfach nicht die korrekte Mail packt ... schade!

Hab sonst keine weitere Idee ...
76109
76109 07.07.2011 um 14:55:53 Uhr
Goto Top
Hallo Midivirus!

Also, Outlook ist ebenfalls nicht meine Baustelle, allerdings ist Outlook auf meinem virtuellen XP installiert und habe die NewMail-Sub mal manuell (ohne Übergabeparameter) getestet und funktioniert. Die Sache mit der Regel habe ich noch nicht so ganz verstanden bzw. beim Versuch eine Regel zu erstellen,
sind meine Mails irgendwie verschwunden und nicht mehr aufzufinden. Von daher liegt der Fehler vermutlich an Deiner Regel?

Gruß Dieter
Midivirus
Midivirus 07.07.2011 um 15:01:41 Uhr
Goto Top
Mhhh,

werde die Tage mal mein virtualWin7 entsprechend konfigurieren.

Warum die Mail gelöscht ist, siehe "Zeile 35 und 36.

In 35 wird angedeutet, was in 36 dann gemacht wird.


Beste Grüße


~ Thema ruht etwas ~
76109
76109 07.07.2011 um 15:06:35 Uhr
Goto Top
Hallo Midivirus!

Warum die Mail gelöscht ist, siehe "Zeile 35 und 36.
Das hast Du leider missverstandenface-wink

Sollte bedeuten, daß die Mails schon vor dem Start der Sub weg waren bzw. nicht im 'GetDefault...' gefunden wurden.

Gruß Dieter
Midivirus
Midivirus 20.07.2011 um 14:29:52 Uhr
Goto Top
Projekt vor erst auf Eis gelegt, schade!