hscomputer
Goto Top

Illegale email-Absender mit VBa Script erfassen (Outlook 2010)

Hallo,
seit einiger Zeit gibt es wieder vermehrt Spammer, die mit Absender-Adressen wie

Admin@vonwoauch.immer@sonstwo.her

arbeiten, welche sich z.B. mit Outlook-Regeln nicht abfangen lassen. Ich habe zu diesem Zweck versucht ein VBA-Script zu implemetieren, was diese Aufgabe übernehmen soll - per regexp nach 2x@ suchen und als Spam markieren. Leider bekomme ich über Mailitem.Sender niemals den ganzen Absender-String, sondern immer nur einen (gültigen) Teil zurück, sodass dieses Script nicht funktioniert.

Nach langem Suchen in der Funktionsbibliothek von MS habe ich leider noch keine Möglichkeit gefunden, das zu umgehen. Hat jemand von euch einen Tip für mich, wie ich das regeln könnte? Mit Dank im Voraus.

Gruß

Content-ID: 428494

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

Ausgedruckt am: 23.11.2024 um 21:11 Uhr

jsysde
jsysde 14.03.2019 um 09:28:31 Uhr
Goto Top
Moin.

Wenn ich das noch richtig auf die Kette bekomme, zieht MaiItem.Sender die tatsächliche Absenderadresse aus den Headern der Mail, die muss valide sein, sonst würde die Mail gar nicht verschickt. Was du suchst, ist der DisplayName, also das, was in Outlook als Absendername angezeigt wird - das ist quasi ein Textfeld, da kannste reinschreiben, was du willst.

Die Filterung nach solchen Mails erst auf dem Client zu machen, naja, eigentlich isses da schon zu spät. Ich kenne deine Umgebung nicht, reden wir von einem einzelnen Outlook-Client im privaten Umfeld oder doch von ner Firmenumgebung mit entsprechendem Mailserver?

Cheers,
jsysde
fredmy
fredmy 14.03.2019 aktualisiert um 09:39:42 Uhr
Goto Top
Hallo,
für mich stellt sich eher ein wenig die Frage, warum du dise Mails denn überhaupt annimmst ?

Dein "Admin@vonwoauch.immer@sonstwo.her" [so sehen zwar keine Mailadressen aus, aber hier egal]
hat ja eine Quelle [IP des sendenden Servers] und der MX (ggfs A record) von "sonstwo.her" muß ja genau dise IP liefern face-smile
Ansonsten ist es eh Müll - warum nimmst du das dann an ? Nachlesen unter dem Thema SPF wäre evtl. hilfreicher als an irgendwelchen Symptomen herumzukurieren - aber nix gegen dei "Kranheit" tun.

Fred
PS: auch (von dir) als Spam eingestufte Mails, sind angenommene Mails - wird wichtig für eventuelle geschäftliche Prozesse. So zumindest stehts in Gerichtsakten.
HScomputer
HScomputer 14.03.2019 um 09:51:25 Uhr
Goto Top
Hallo jsysde,
danke für deine Antwort.

Hier geht es um einen einzelnen Client im teilprivaten Umfeld. Mailserver ist hier nicht vorhanden.

Wie kommt man denn an den DisplayName - Eintrag ran? Bestandteil von Mailitem.Sender ist es jedenfalls nicht. Nach so etwas hatte ich gesucht aber bisher nicht gefunden. Sendername enthält ja nur den Namensteil ohne die Adresse. Mailitem.DisplayName löst bei mir einen Fehler aus (muss erst noch sehen, wo der herkommt).

Grüß
HScomputer
HScomputer 14.03.2019 aktualisiert um 10:21:56 Uhr
Goto Top
Hi Fred,
dass das keine gültige Mailadresse ist, weiß ich auch, das hindert die Spammer aber nicht, solche Einträge zu verwenden. Und da diese Einträge nciht existieren, brauche ich da auch keinen MX-Eintrag zu suchen. Über das annehmen kann ich erst entscheiden, wenn ich sie habe, da es über den Mailprovider nicht gefiltert wird. Ich bekomme also erstmal alles, was bei denen durch den Filter geht.Da ich hier keinen eigenen Mail-Server betreibe, habe ich wohl keine Medizin gegen die Krankheit, sondern nur gegen die Symptome.

Gruß

Nachtrag: Das Thema SPF war mir bisher nicht bekannt, habe mich aber grad mal schnell informiert. Nach den gewonnenen Erkenntnissen verhindert SPF das Versenden und Empfangen derartiger Mails auch nicht, sondern macht es den Spammern nur 'etwas' schwieriger.

(aus dieser Quelle: https://www.hosteurope.de/faq/domains/verwaltung/spf/)

web.de/1&1/gmx.de haben sowas auch implementiert, dennoch gehen diese Mails durch! Da kann ich wohl auch wenig bis nix dagegen tun. Aber dennoch danke für den Hinweis auf SPF. Ist durchaus ein interessantes Verfahren.
HScomputer
HScomputer 14.03.2019 um 10:44:11 Uhr
Goto Top
Ich habe jetzt die richtige Ecke aus dem Klassenbaum gefunden face-smile
MailIttem.Sender.Address gibt mir tatsächlich den kompletten (falschen/ungültigen) Eintrag zurück und das funktioniert jetzt also auch. Danke für den Denkanstoß face-smile

Jetzt bleiben nur noch die Einträge über, die 2 Mailadressen als Absender haben - in der Form: <adresse1@xxx.yy> <adresse2@aaa.bb>
Die bekomme ich damit nicht zu fassen, da gibt es immer nur die letzte im Adress-Feld zurück. Wenn es da noch eine Property gäbe, die das abdeckt, wäre ich damit durch face-smile

Danke nochmal.
138810
Lösung 138810 14.03.2019 aktualisiert um 10:51:39 Uhr
Goto Top
Einfach den ganzen Header extrahieren und dann per Regex rausfiltern, dann hast du's an der Quelle der Mail gepackt ...
strHeader = mailObject.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001E")  
HScomputer
HScomputer 14.03.2019 um 11:44:56 Uhr
Goto Top
@138810
Danke! Das hat funktioniert!
Jetzt muss ich nur noch rausfinden, wie ich das auf immer das aktuell eingehende Objekt anwende (um nicht immer den ganzen Eingangsordner zu scannen). Etwas andere Vorgehensweise - die ich im VBA noch nie verwendet habe, daher neu für mich, aber Bildung hat ja noch nie geschadet face-smile

Danke - sehr hilfreich!
138810
Lösung 138810 14.03.2019 aktualisiert um 11:47:08 Uhr
Goto Top
Zitat von @HScomputer:

@138810
Danke! Das hat funktioniert!
Jetzt muss ich nur noch rausfinden, wie ich das auf immer das aktuell eingehende Objekt anwende (um nicht immer den ganzen Eingangsordner zu scannen). Etwas andere Vorgehensweise - die ich im VBA noch nie verwendet habe, daher neu für mich, aber Bildung hat ja noch nie geschadet face-smile
Dafür gibt es da folgende Event in der OutlookSession das immer dann anspringt wenn neue Mails eintreffen:
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)

End Sub
Oder man erstellt eine Regel und haftet da das Makro mit einer Aktion dran
HScomputer
HScomputer 14.03.2019 um 11:58:14 Uhr
Goto Top
Super! Danke für deine Mühen!
fredmy
fredmy 14.03.2019 um 15:08:41 Uhr
Goto Top
Zitat von @HScomputer:

Hallo jsysde,
danke für deine Antwort.

Hier geht es um einen einzelnen Client im teilprivaten Umfeld. Mailserver ist hier nicht vorhanden.


wie kommen die Mails denn dann an ? Da muß es einen Mailserver geben - ggfs. bei einem Provider und der ist fast immer konfigurierbar ( SPF ein/aus) manchmal ist es auch "Nutzerfreundlich" ausgedrückt .. ggfs nachfragen /nachlesen.

Fred
HScomputer
HScomputer 14.03.2019 um 15:51:26 Uhr
Goto Top
Hallo Fred,
die kommen von der Mail-Fee :D

Ist ein Mailprovider, bei dem ist offensichtlich SPF aktiv, was aber in diesem Fall eben nicht reicht. Das Script funktioniert jetzt aber, somit ist von meiner Seite alles klar.

Spammer werden wohl immer Wege finden - wie Hacker auch....

Howdy
VGem-e
VGem-e 14.03.2019 um 17:24:39 Uhr
Goto Top
Servus,

und auch wenn hier im Forum schon mehrmals darauf hingewiesen wurde:

MS Office 2010 erhält nach dem 13.10.2020 keine Sicherheitsupdates mehr!

Evtl. ein Grund, rechtzeitig einen Umstieg auf ein Alternativprodukt eines anderen Anbieters oder eine neuere Office-Version von MS nachzudenken!?

Ich denke, auch in Zukunft stellt e-Mail ein potentielles Einfallstor für Schadsoftware u.ä. dar und dann sollte m.E. das Mailprogramm wenigstens up-to-date bleiben!!

Gruß