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, 4328 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst VBA Outlook - Mail delivery system (5)

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

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

Frage von Tommy1983 zum Thema Outlook & Mail ...

E-Mail
gelöst Mails bei Outlook.com Postfächern immer im Spam. (2)

Frage von Moddry zum Thema E-Mail ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...