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, 4344 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
Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(4)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (18)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...