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-Key: 169257

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

Printed on: April 20, 2024 at 04:04 o'clock

Member: bastla
bastla Jul 06, 2011 at 19:51:11 (UTC)
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
Member: Midivirus
Midivirus Jul 06, 2011 at 20:06:25 (UTC)
Goto Top
Member: Midivirus
Midivirus Jul 07, 2011 at 09:19:00 (UTC)
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
Member: bastla
bastla Jul 07, 2011 at 09:34:37 (UTC)
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
Member: Midivirus
Midivirus Jul 07, 2011 at 09:42:51 (UTC)
Goto Top
hatte meinen Post geändert!
Member: bastla
bastla Jul 07, 2011 at 10:28:02 (UTC)
Goto Top
Hallo Midivirus!

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

Grüße
bastla
Member: Midivirus
Midivirus Jul 07, 2011 at 10:58:55 (UTC)
Goto Top
aber auch daran, dass OL2007 einfach nicht die korrekte Mail packt ... schade!

Hab sonst keine weitere Idee ...
Mitglied: 76109
76109 Jul 07, 2011 at 12:55:53 (UTC)
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
Member: Midivirus
Midivirus Jul 07, 2011 at 13:01:41 (UTC)
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 ~
Mitglied: 76109
76109 Jul 07, 2011 at 13:06:35 (UTC)
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
Member: Midivirus
Midivirus Jul 20, 2011 at 12:29:52 (UTC)
Goto Top
Projekt vor erst auf Eis gelegt, schade!