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
GELÖST

VBA in Outlook Nachrichten als SPAM kennzeichnen Fehlermeldung

Frage Entwicklung VB for Applications

Mitglied: 69304

69304 (Level 1)

23.02.2010, aktualisiert 13:33 Uhr, 4334 Aufrufe, 3 Kommentare

Hallo Leute!

Ich habe in VBA von Outlook ein Skript geschrieben, dass beim reinkommen der Nachricht den Betreff überprüft auf eine Zeichenfolge (z.B. Viagra).
Die Nachricht soll dann als "*SPAM*" gekennzeichnet werden.

Dies funktionierte auch noch soweit, bis ich eine FileReader hinzugefügt habe, der Zeilen einer Text-Datei ausliest und dieses dann als Kriterium nimmt.

Die Fehlermeldung lautet dann: "Laufzeitfehler '91': Objektvariable oder With-Blockvariable nicht festgelegt"

Diese tritt an der Zeile mit "If InStr(oEmail.HTMLBody, SpamKriterium) > 0 Then" auf, wenn ich per Break-Points versuche den Fehler zu ermitteln. Alles davor geht.

Hier mein Code, ich hoffe jemand findet den Fehler....

01.
Private Sub Application_NewMail() 
02.
    Dim oNS As Outlook.NameSpace 
03.
    Dim oInbox As Outlook.MAPIFolder 
04.
    Dim oEmail As Outlook.MailItem 
05.
    Dim i As Integer 
06.
    Dim SpamKriterium As String 
07.
    Dim SpamDateipfad As String 
08.
    Dim SpamKennzeichnung As String 
09.
     
10.
    SpamDateipfad = "C:\spam.txt" 
11.
    SpamKennzeichnung = "*****SPAM*****" 
12.
    Set oNS = Application.GetNamespace("MAPI") 
13.
    Set oInbox = oNS.GetDefaultFolder(olFolderInbox) 
14.
     
15.
    Open SpamDateipfad For Input As #1 
16.
    Do While Not EOF(1) 
17.
        Line Input #1, SpamKriterium 
18.
     
19.
        For i = 1 To oInbox.Items.Count 
20.
            Set oEmail = oInbox.Items.Item(i) 
21.
            If oEmail.UnRead = True Then 
22.
                If InStr(oEmail.HTMLBody, SpamKriterium) > 0 Then 
23.
                    oEmail.Subject = SpamKennzeichnung & oEmail.Subject 
24.
                    oEmail.UnRead = True 
25.
                    oEmail.Save 
26.
                End If 
27.
            End If 
28.
        Next i 
29.
        Set oInbox = Nothing 
30.
        Set oNS = Nothing 
31.
    Loop 
32.
    Close #1 
33.
End Sub
Mitglied: 76109
23.02.2010 um 14:58 Uhr
Hallo rbrixel !

An der Zeile mit InStr fällt mir kein Fehler auf, allerdings ist die Codezeile 29 und 30 falsch plaziert. Sollte logischerweise erst nach dem Loop kommen.

Gruß Dieter
Bitte warten ..
Mitglied: 69304
23.02.2010 um 15:01 Uhr
jupp, das wars... thx ;)

01.
Private Sub Application_NewMail() 
02.
'------------------------------------------------------- 
03.
' Outlook-Anti-Spam 
04.
' Überüprüfung in Text-Body, HTML-Body, Betreff, Sender Email-Adresse, Sender Email-Name 
05.
' anhand Wörter aus Textdatei 
06.
'------------------------------------------------------- 
07.
    Dim oNS As Outlook.NameSpace 
08.
    Dim oInbox As Outlook.MAPIFolder 
09.
    Dim oEmail As Outlook.MailItem 
10.
    Dim i As Integer 
11.
    Dim SpamKriterium As String 
12.
    Dim SpamDateipfad As String 
13.
    Dim SpamKennzeichnung As String 
14.
     
15.
    SpamDateipfad = "C:\spam.txt" 
16.
    SpamKennzeichnung = "*****SPAM*****" 
17.
    Set oNS = Application.GetNamespace("MAPI") 
18.
    Set oInbox = oNS.GetDefaultFolder(olFolderInbox) 
19.
     
20.
    Open SpamDateipfad For Input As #1 
21.
    Do While Not EOF(1) 
22.
        Line Input #1, SpamKriterium 
23.
        For i = 1 To oInbox.Items.Count 
24.
            Set oEmail = oInbox.Items.Item(i) 
25.
            If oEmail.UnRead = True Then 
26.
                If InStr(oEmail.HTMLBody, SpamKriterium) > 0 Or InStr(oEmail.Subject, SpamKriterium) > 0 Or InStr(oEmail.SenderEmailAddress, SpamKriterium) > 0 Or InStr(oEmail.SenderName, SpamKriterium) > 0 Or InStr(oEmail.Body, SpamKriterium) > 0 Then 
27.
                    oEmail.Subject = SpamKennzeichnung & oEmail.Subject 
28.
                    oEmail.UnRead = True 
29.
                    oEmail.Save 
30.
                End If 
31.
            End If 
32.
        Next i 
33.
    Loop 
34.
    Set oInbox = Nothing 
35.
    Set oNS = Nothing 
36.
    Close #1 
37.
End Sub
Bitte warten ..
Mitglied: 76109
23.02.2010 um 15:18 Uhr
Hallo rbrixel!

Keine Ursache! Den Beitrag könntest Du aber noch auf gelöst setzen

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst VBA Outlook - Mail delivery system (5)

Frage von carolin.zelda zum Thema VB for Applications ...

Outlook & Mail
gelöst Outlook vba Email Anhang in Ordner speichern (3)

Frage von Daywalkercxp zum Thema Outlook & Mail ...

Outlook & Mail
Fehlermeldung beim schließen von Outlook 2016 auf Terminalserver (7)

Frage von Tommy1983 zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Batch & Shell
HTML in Batch und Powershell (12)

Frage von michi-ffm zum Thema Batch & Shell ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...