Abschlussarbeit. Titel: SpamAware (Spamfilter-Plugin für Outlook Express) Harald R. Binkle. August Betreuung: Prof. Dr.

Größe: px
Ab Seite anzeigen:

Download "Abschlussarbeit. Titel: SpamAware (Spamfilter-Plugin für Outlook Express) Harald R. Binkle. August 2005. Betreuung: Prof. Dr."

Transkript

1 Abschlussarbeit Titel: SpamAware (Spamfilter-Plugin für Outlook Express) Harald R. Binkle August 2005 Betreuung: Prof. Dr. Andreas Künkler Fachbereich Design und Informatik Fachhochschule Trier University of Applied Sciences

2 FACHHOCHSCHULE TRIER UNIVERSITY OF APPLIED SCIENCES Fachbereich DESIGN UND INFORMATIK Autor: Harald Binkle Titel: SpamAware (Spamfilter-Plugin für Outlook Express) Studiengang: Informatik (Bachelor of Science) Betreuung: Prof. Dr. Andreas Künkler Fachbetreuung: Dipl.-Inf. Joachim Marder, Jam-Software, Trier August 05 Es wird hiermit der Fachhochschule Trier (University of Applied Sciences) die Erlaubnis erteilt, die Arbeit zu nicht-kommerziellen Zwecken zu verteilen und zu kopieren. Unterschrift des Autors c Harald R. Binkle, 2005

3 Vorwort An dieser Stelle möchte ich mich bei meinen Betreuern Herrn Prof. Dr. Andreas Künkler und Herrn Dipl.-Inf. Joachim Marder bedanken, die mir jeder Zeit bei Fragen mit gutem Rat zur Seite standen. Außerdem danke ich meinen Kollegen und Kolleginnen der Firma Jam-Software, die mir ebenfalls Unterstützung boten. iii

4 Kurzfassung SpamAware ist ein Spamfilter Plugin für Microsoft Outlook. Dieses Plugin ist im Rahmen der zuvor angefertigten Projektarbeit entwickelt worden. Nun soll es mit weiteren Funktionen versehen werden, die sowohl die Filterleistung als auch die Benutzerfreundlichkeit erhöhen. Neben neuen Filterfunktionen soll ebenfalls der zugrunde liegende Filter, SpamAssassin, erneuert werden. Dieser wird mittels eines speziellen Perl Compilers in eine DLL kompiliert. Des Weiteren ist SpamAware so zu verändern, dass es sowohl unter Microsoft Outlook, als auch unter Microsoft Outlook Express zum Einsatz kommen kann. Da Microsoft Outlook Express im Gegensatz zu Microsoft Outlook keine COM-Schnittstelle für Plugins besitzt, ist hierzu eine API eines Drittherstellers erforderlich. Als Entwicklungsumgebung soll Borland Delphi 7 verwendet werden. Das fertige Produkt sollte schließlich sowohl in deutscher Sprache, als auch in Englisch als ausführbare Installationsdatei inklusive Hilfedateien vorliegen. Abstract SpamAware is a spam-filter-plugin for Microsoft Outlook. This plugin was developed during last year s semester project. Now this plugin should be extended with more features to improve the power of the filter and the usability. Beside new features the underlying filter, SpamAssassin, should be renewed. This one will be compiled into a DLL with a special Perl compiler. Furthermore SpamAware has to be modified so that it runs under Microsoft Outlook as well as under Microsoft Outlook Express. Because Microsoft Outlook Express does not have a COM interface like Microsoft Outlook an API of a third company has to be used. Borland Delphi 7 has to be used to implement the program. The final product should come as installation file in both languages, German and English. iv

5 Inhaltsverzeichnis 1 Einleitung 1 2 Aufgaben- und Anforderungsspezifikation 2 3 Der Hintergrund von SpamAware Was ist Spam? Die Auswirkungen von Spam SpamAssassin Was ist SpamAssassin? Wie funktioniert SpamAssassin und was kann er? Installation von Perl und SpamAssassin Erstellen des Perl-Scripts zum Erzeugen der DLL Unit SpamUtils für den Zugriff auf SpamAssassin Entwurf der Klassen Implementierung der Klassen Die Version 1.0 von SpamAware 23 6 Erweitern von SpamAware Die Black-/Whitelist Funktion Menüpunkte zum Hinzufügen zu Blacklist / Whitelist Importieren von Adressbuchkontakten Automatisches Aufnehmen von Empfängern eigener Mails in die Whitelist Die verschiedenen ScanModi Die Einbindung der Hilfedatei zur kontextsensitiven Hilfe Die Schlagwortliste für eine Wortbewertung Den aktuell angezeigten Ordner scannen Integration in Outlook Express Entwurf der Schnittstelle Implementierung Erstellen der Installationsdatei Erstellen des Installationsscripts in InnoSetup v

6 9 Installation und Benutzung Installation Die Benutzung Die Optionen von SpamAware Zusammenfassung und Ausblick Zusammenfassung Ausblick Abbildungen 58 Quellen 59 vi

7 1 EINLEITUNG 1 1 Einleitung Jeder der eine -Adresse besitzt kennt dieses Phänomen. Der Posteingang des Programms läuft vor s über. Aber die meisten dieser Nachrichten sind unerwünscht, so genannter Spam. Meist sind es Werbe- s, um die nie gebeten wurde. Die Anzahl solcher umher irrenden s steigt stetig. So muss jeder Benutzer immer mehr Zeit damit verbringen erwünschte s unter all dem Spam heraus zu sortieren. Viele Dienstleister bieten das automatische Filtern von Spam an, was vor noch nicht so langer Zeit schon für Schlagzeilen gesorgt hatte 1. Doch selbst wenn ein Benutzer den Spam-Filter-Service eines Providers in Anspruch nimmt, gelingt es immer noch einer Vielzahl von unerwünschten E- Mails hindurch zu schlüpfen. Das Verlangen nach einem Programm, das wirklich allen Spam heraus filtert kommt schnell auf. Auf der Suche nach solchen Programmen stellt sich schnell heraus, dass sie entweder kaum Spam filtern oder kostenpflichtig sind. Bei einer solchen Suche stolpert man immer wieder auf SpamAssassin. SpamAware macht sich SpamAssassin zu nutze und hüllt seine Effektivität in ein einfach zu bedienendes Plugin für Microsoft Outlook und Outlook Express. Mit Hilfe von SpamAware sind Gedanken über die Fragen, Was genau ist Spam? Und wie werde ich ihn wieder los?, nicht mehr nötig. Welche Frage sich noch stellt ist: Wie funktioniert SpamAware, beziehungsweise SpamAssassin? In den folgenden Kapiteln werden diese Fragen beantwortet. Zudem wird dargelegt wie SpamAssassin in SpamAware integriert und für Outlook Express zugänglich gemacht wurde. 1 Die Dienstleister hatten Spam ohne den Kunden zu informieren aussortiert. So wurden dem Kunden Nachrichten vorenthalten, was das Postgeheimnis verletzt.

8 2 AUFGABEN- UND ANFORDERUNGSSPEZIFIKATION 2 2 Aufgaben- und Anforderungsspezifikation Aufgabe dieser Abschlussarbeit war die Erweiterung eines Spamfilter-Plugins für Microsoft Outlook durch neue Funktionen und der Möglichkeit es sowohl unter Microsoft Outlook als auch unter Microsoft Outlook Express nutzen zu können. Das Programm sollte schließlich als ausführbare Installationsdatei sowohl in englisch als auch in deutsch vorliegen. Es ergaben sich somit folgende Spezifikationen: 1. Folgende neue Funktionen sollen dem bestehenden Plugin hinzugefügt werden: Vom Benutzer leicht editierbare Black- und Whitelist Funktionalität, die es ihm ermöglicht diese im Optionen Dialog vorzunehmen. Das Importieren von Adressbuchkontakten aus Microsoft Outlook per Knopfdruck. Die Fähigkeit -Adressen der Empfänger ausgehender E- Mails automatisch in die Whitelist aufzunehmen. Einführen verschiedener ScanModi, von denen abhängt ob eine untersucht werden soll oder nicht: alle s untersuchen, also auch bereits untersuchte Mails nur s, die noch nicht von SpamAware untersucht wurden nur s, die noch nicht auf Spam untersucht wurden Einbindung der Hilfedatei zur kontextsensitiven Hilfe Unterstützung einer Schlagwortliste mit der s zusätzlich bewertet werden können. Die Möglichkeit die s des aktuell angezeigten Ordners zu untersuchen Erstellen von Menüpunkten zum Hinzufügen einer Auswahl von s zur Blacklist, beziehungsweise Whitelist. 2. Der dem Plugin zugrunde liegende SpamAssassin in der Version 2.6 ist durch den aktuellen SpamAssassin zu ersetzen. Dieser ist nicht

9 2 AUFGABEN- UND ANFORDERUNGSSPEZIFIKATION 3 mehr als ausführbare EXE-Datei 2 zu nutzen, sondern in Form einer DLL 3 mit passender Delphi Schnittstelle. 3. Das Plugin ist so zu erweitern, dass es sowohl unter Outlook als auch unter Outlook Express zum Einsatz kommen kann. 4. Eine Installationsdatei soll inklusive der Hilfe- und Liesmich-Dateien erstellt werden. Um Zugang zu Outlook Express zu bekommen muss eine API eines Drittherstellers [Nkt] verwendet werden. Alle Funktionalität, die in Outlook gegeben ist, soll somit auf Outlook Express übertragen werden. Das Abändern von SpamAware sollte so erfolgen, dass die zukünftige Unterstützung weiterer Programme keine größeren Änderungen mehr erfordert. 2 eine EXE-Datei ist eine für Windows (32 bit) ausführbare Datei; in diesem Fall ein Kommandozeilenprogramm 3 DLL=Dynamic Link Library, eine Datei mit Hilfsmodulen für ausführbare Programme

10 3 DER HINTERGRUND VON SPAMAWARE 4 3 Der Hintergrund von SpamAware Der Inhalt dieses Kapitels ist vorwiegend einer Studie des Bundesamt für Sicherheit in der Informationstechnik entnommen.[bsi] Mittlerweile besteht 60% bis 90% des -Verkehrs im Internet aus Spam. Kämen keine Filter zum Einsatz und würde jeder Benutzer einer - Adresse durchschnittlich zehn Sekunden zum Erkennen und Löschen von Spam benötigen, ergäbe dies ein Schaden von fast Euro 4 (bei einem Stundenlohn von 50 Euro). 3.1 Was ist Spam? SPAM ist ein Kunstwort, das aus dem englischen Begriff Spiced Ham entstanden ist. Spiced Ham ist eine Markenbezeichnung einer amerikanischen Firma, die unter diesem Namen Frühstücksfleisch in Dosen verkauft. Der Zusammenhang mit einer unerwünschten ergab sich erst nachdem eine britische Komiker-Truppe (Monty Python) in einem Sketch laut singend SPAM...SPAM...SPAM... jedwedes sinnvolle Gespräch in einem kleinen Restaurant zu unterdrücken versuchte. Als sich so im Laufe der Jahre Spam als Begriff für unerwünschte s etablierte, begann sich ebenfalls der Begriff Ham für erwünschte s zu festigen. Spam- s haben allerdings nicht die Absicht jedwede sinnvolle in ihrer Überzahl untergehen zu lassen. Spam entsteht auf verschiedene Art und Weise. Firmen haben in s ein Werbemedium gefunden, dass bei dessen Nutzung kaum Kosten verursacht. Diese Firmen verschaffen sich Listen von gültigen -Adressen, denen sie so ihre Werbung zukommen lassen. Diese Werbe- s (formal UCE, Unsolicited Commercial ) haben immer den selben Inhalt und werden an unzählige Adressen geschickt. Diese Firmen ( Spammer genannt) betreiben teils selbst große Anstrengungen, um an möglichst viele Adressen zu gelangen, teils geben sie dies an darauf spezialisierte Firmen ab. Es gibt verschiedene Methoden um an -Adressen zu gelangen. Die wohl bekanntesten sind das zufällige Generieren von Adressen mittels Wörterbüchern und das so genannte harvesting. Beim harvesting durchsuchen Programme systematisch das Internet nach -Adressen. Eine weitere Quelle von Spam sind s, die von Viren und Würmern verursacht werden. Diese Schädlinge verbreiten sich, indem sie sich selbst 4 pro Jahr,pro Person

11 3 DER HINTERGRUND VON SPAMAWARE 5 an alle Adressen des Adressbuches eines befallenen Computers schicken. Dadurch entsteht ein Exponentielles Wachstum der Anzahl von s, was die enorm hohen Prozentzahlen von 60-90% erklärt. Zudem kommt hinzu, dass Spam s, egal wie sie erzeugt wurden, immer wieder an Adressen geschickt werden, die entweder fehlerhaft sind oder gar nicht mehr existieren. Server sind meist so konfiguriert, dass beim Empfang dieser selbige annehmen und kurze Zeit später eine Fehlermeldung (bounces) an den Empfänger zurück schicken. Diese Fehlermeldungen werden womöglich ebenfalls nicht ankommen, da Spammer oft ihre Absenderadresse fälschen. So entsteht eine weitere Welle von s (die Fehlermeldungen), die nicht erwünscht ist. Diese Art von Spam wird als colateral spam bezeichnet. 3.2 Die Auswirkungen von Spam Die Auswirkungen von Spam lassen sich am besten durch Bespiele der Kosten die Spam verursacht darstellen. Betrachten wir zunächst ein Großunternehmen mit eigener IT-Abteilung. Wir schätzen die unmittelbaren Kosten durch den gesteigerten -Verkehr auf ca Euro pro Jahr 5. Die mittelbaren Kosten des Produktivitätsausfalls betragen ca. 1,6 Millionen Euro 6. Sonstige Kosten - wie Imageschaden, Virenschäden und rechtliche Auseinandersetzungen - veranschlagen wir pauschal mit Euro. Somit ergeben die durch Spam verursachten Kosten (ohne Schutzmaßnahmen) eine Summe von 1,7 Millionen Euro pro Jahr 7, was etwa 18 Cent pro entspricht. Rechnet man dies mit dem Einsatz von Antispam-Maßnahmen durch, ergibt sich folgendes: Ein solches Unternehmen wird wahrscheinlich einen -Server besitzen, der eingehende s mittels einer kommerziellen Software auf Spam und Viren überprüft. Damit ergeben sich als unmittelbare Kosten die Lizenz Spam- und Viren- s(mit 25 KByte durchschnittlich) * 365 Tage. Größe * 6 Euro pro GByte 6 ((Anzahl von Spam- und Viren- s pro Jahr * 10 Sekunden zum manuellen Erkennen und löschen)/(8 Std. * 60 Min. * 60 Sek.)) * 500 Euro [Personentagessatz] 7 die mittelbaren + die sonstigen Kosten. Die unmittelbaren können bei dieser Summe vernachlässigt werden.

12 3 DER HINTERGRUND VON SPAMAWARE 6 kosten der Software und die Personalkosten der IT-Abteilung in Höhe von Euro 8. Dies entspricht einem Betrag von 4 Cent pro Spam- . Vergleicht man diese Zahlen mit denen eines Kleinunternehmens, was mit einem Privatanwender vergleichbar ist, kommt man zu folgendem Ergebnis: Die unmittelbaren Kosten entstehen hier durch längere Downloadzeiten und höheren Traffic. Dies ergäbe Kosten für den Download von ca. 750 zusätzlichen s mit ca. 18MByte, die zu vernachlässigen sind. Der Produktivitätsausfall wird hier am stärksten gewichtet. Geht man wiederum davon aus, dass 10 Sekunden benötigt werden, um eine Spam- zu erkennen und zu löschen, ergibt das einen Ausfall von zwei Stunden pro Tag. Hinzu kommt der Ausfall von durchschnittlich einem halben bis einen Tag für die Beseitigung von durch Spam erhaltene Viren. Somit sind die relativen Kosten für den Endanwender von ca. 66 Cent 9 pro Spam- deutlich höher als die eines Großunternehmens. Entscheidet sich das Kleinunternehmen / der Privatanwender für den Einsatz einer Antispam-Lösung und/oder eines Virenscanners fallen hier zum Beispiel Lizenzkosten von 25 Euro pro Jahr an (es gibt natürlich auch kostenlose Lösungen) beziehungsweise einmalige Kaufkosten von ca. 20 Euro. Somit errechnen sich hier Kosten von 325 Euro pro Jahr 10, was ca. 4 Cent pro Spam- entspricht. An diesen Beispielen ist zu sehen, dass es sich für jeden lohnt eine Antispam- Software zu installieren Euro pro Jahr für Nutzerlizenzen der Anitspam-Software Euro für eventuelle zusätzliche Hardware Euro zur Administration der Software + 5% von 1,7 Millionen [bei einer realistischen Trefferquote des Spamfilters von 95%] Euro[Personentagessatz] / 750 Spam- und Viren- s 10 5% von 750 * (500 Euro[Personentagessatz] * 12 Monate) + 25 Euro Lizenzkosten

13 4 SPAMASSASSIN 7 4 SpamAssassin 4.1 Was ist SpamAssassin? SpamAssassin is a mail filter to identify spam. It is an intelligent filter which uses a diverse range of tests to identify unsolicited bulk , more commonly known as Spam. These tests are applied to headers and content to classify using advanced statistical methods. In addition, SpamAssassin has a modular architecture that allows other technologies to be quickly wielded against spam and is designed for easy integration into virtually any system. [SpAs] SpamAssassin ist ein in in Perl geschriebener Spamfilter aus der Unix- Welt. Er ist wohl der bekannteste seiner Art und kommt vor allem auf Unixservern zum Einsatz. Seit August 2004 ist SpamAssassin ein Projekt der Apache Software Foundation und unter der Apache-Lizenz lizenziert. 4.2 Wie funktioniert SpamAssassin und was kann er? Wie im obigen Zitat zu lesen, ist SpamAssassin modular aufgebaut. Dies gibt ihm die Möglichkeit auf einfache Weise neue Funktionen zu seinen Fähigkeiten hinzu zu fügen und bestehende zu optimieren. Jedes dieser Module gibt eine Punktzahl beim Untersuchen einer zurück. Die Summen aller Punkte der Module ergeben schließlich den Spamscore. Je höher diese Punktzahl ist, desto wahrscheinlicher ist die untersuchte Spam. Die Module zur Bewertung stützen sich auf unterschiedliche Methoden. Die wichtigsten Methoden sind hier aufgelistet: Tests auf den Kopf, wie zum Beispiel Anfragen an die Server zu stellen, über welche die angeblich weitergeleitet wurde, um heraus zu finden ob diese wirklich existieren. Statische Tests: meist lexikalische Untersuchungen auf den Kopf und Rumpf bis hin zur Untersuchung kompletter Phrasen des Inhaltes Analyse von Zeichensätzen im Zusammenhang mit lokalisierter Benutzung Abfrage so genannter RBLs (Realtime Blackhole Lists): Server mit Listen von Hashwerten deren zugehörige s schon als Spam klassifiziert wurden.

14 4 SPAMASSASSIN 8 Abfrage von URL-Blacklists: Untersuchung ob URL s innerhalb von E- Mails auf Internetseiten verweisen, die schon als Werbeziel von Spam s erkannt wurden. Automatisches Whitelisting : Aufnehmen von Absender Adressen auf die Whitelist, falls die Gesamtpunktzahl einen bestimmten wert nicht erreicht hat. Nutzung eines Bayes Filters: Ein Filter, der mit Hilfe von komplexen statistischen Algorithmen die Nachrichten bewertet. Einige dieser Methoden erzeugen negative Punktwerte, wie zum Beispiel die Whitelist. Deshalb erzielen die meisten erwünschten s oftmals eine negative Gesamtpunktzahl. Alle Methoden, auch als Regeln bezeichnet, stehen in Form vom Textdateien dem SpamAssassin zur Verfügung. So ist es auf einfache Weise möglich eigene Regelsammlungen in zusätzlichen Dateien oder auch nur einzelne Regeln in der Datei local.cf 11 hinzu zu fügen. Die Regeln in einer solchen Datei werden mit Hilfe regulärer Ausdrücke erstellt. Ein Beispiel für eine solche Regeldatei ist im folgenden Listing 1 zu sehen. 1 # R a s s i s t i s c h e E Mails 2 header SOBER CT Content Type : = / t e x t \/ p l a i n ; / i 3 header ISBOUNCE 1 From = / (? :MAILER DAEMON postmaster )/ i 4 header ISBOUNCE 2 S u b j e c t = / (? : f a i l u r e d e l i v e r y d e l i v e r y 5 f a i l u r e Postmaster n o t i f y )/ i 6 header BOUNCE HEADER X Is A Bounce = /. { 0, 9 9 } / 7 meta NULL SENDER BOUNCE HEADER BOUNCE RP1 8 BOUNCE RP2 \ \ BOUNCE RP3 ISBOUNCE 1 ISBOUNCE 2 9 header CT DEL STATUS Content Type = / report type=d e l i v e r y s t a t u s / 10 meta REPORT DSN ( NULL SENDER CT DEL STATUS) 11 meta SOBER P SPAM ( SOBER P SPAM H + SOBER CT == 2) 12 s c o r e SOBER P SPAM d e s c r i b e SOBER P SPAM R a s s i s t i s c h e E Mails, T i t e l 14 meta SOBER P SPAM BOUNCE ( ( SOBER P SPAM H SOBER P SPAM B) 15 + REPORT DSN == 2) 16 s c o r e SOBER P SPAM BOUNCE d e s c r i b e SOBER P SPAM BOUNCE R a s s i s t i s c h e E Mails, T i t e l ( Bounce ) Listing 1: Auszug aus selbst erstellter Regeldatei soll. 11 Diese Datei ist dafür gedacht, dass der Benutzer einzelnen Regeln selbst hinzufügen

15 4 SPAMASSASSIN 9 Ob eine als Spam eingestuft wird entscheidet letzt endlich der Benutzer selbst. In der Konfigurationsdatei von SpamAssassin (auf welche im Kapitel 4.5 näher eingegangen wird) kann man unter anderem den required score angeben, welcher der Schwellwert ist ab dem eine als Spam klassifiziert wird. Das Ergebnis einer untersuchten Nachricht ist im Kopf der wieder zu finden. Die Version von SpamAssassin erzeugt ein Ergebnis im Kopf der wie Listing 2 zeigt. In Zeile 1 ist zu sehen, dass die untersuchte als Spam erkannt wurde. Der hier erzielte Punktwert von 13.0 (Zeile 5) hat den in der Konfigurationsdatei angegebenen Schwellwert überschritten und so wird die Nachricht als Spam klassifiziert. Von Zeile 6 des Listings 2 an sind die Tests aufgelistet, mit denen ein Punktwert erzielt wurde. Ab Zeile 10 folgt die genaue Aufschlüsselung, welcher Test welchen Punktwert ergeben hat. 1 X Spam Flag : YES 2 X Spam Checker Version : SpamAssassin ( ) 3 on pc. i n t r a n e t. jam s o f t w a r e. com 4 X Spam Level : 5 X Spam Status : Yes, s c o r e =13.0 r e q u i r e d =5.0 6 t e s t s= DRUGS ERECTILE, DRUGS ERECTILE OBFU, INFO TLD, JAM PHARMACY BD, 7 JAM VIAGRA, JAM VIAGRA BD, RCVD IN DSBL, RCVD IN XBL, SUBJECT DRUG GAP VIA, 8 URIBL OB SURBL, URIBL WS SURBL 9 a u t o l e a r n=spam v e r s i o n = X Spam Report : SUBJECT DRUG GAP VIA S u b j e c t c o n t a i n s a gappy v e r s i o n o f viagra JAM VIAGRA S u b j e c t l i n e c o n t a i n s medicine Viagra JAM PHARMACY BD BODY: Body c o n t a i n s pharmacy, medication e t c JAM VIAGRA BD BODY: S u b j e c t l i n e c o n t a i n s t y p i c a l medical 15 product l i k e Viagra or Valium INFO TLD URI : Contains an URL i n the INFO top l e v e l domain RCVD IN DSBL RBL: Received v i a a r e l a y i n l i s t. d s b l. org 18 [<http : / / d s b l. org / l i s t i n g? >] RCVD IN XBL RBL: Received v i a a r e l a y i n Spamhaus XBL 20 [ l i s t e d i n sbl xbl. spamhaus. org ] URIBL WS SURBL Contains an URL l i s t e d i n the WS SURBL b l o c k l i s t 22 [ URIs : healup. i n f o d o c s n p i l l s. i n f o ] URIBL OB SURBL Contains an URL l i s t e d i n the OB SURBL b l o c k l i s t 24 [ URIs : healup. i n f o d o c s n p i l l s. i n f o ] DRUGS ERECTILE OBFU Obfuscated r e f e r e n c e to an e r e c t i l e drug DRUGS ERECTILE R e f e r s to an e r e c t i l e drug Listing 2: Die von SpamAssassin im Kopf der eingefügten Zeilen

16 4 SPAMASSASSIN Installation von Perl und SpamAssassin Die Installation von Perl und SpamAssassin zum Erstellen der DLL läuft in drei Schritten ab. Die ersten beiden Schritte sind das Installieren der Perl Laufzeitumgebung und des SpamAssassins. Eine Erklärung dieser Schritte ist in einer sehr ausführlichen Anleitung im Internet 12 zu finden. Die Anleitung lässt sich auf folgende wesentliche Schritte reduzieren: 1. Das Herunterladen der kostenlosen Perl-Laufzeitumgebung unter 13. Herunterladen von SpamAssassin von Installieren von ActivePerl durch Ausführen der MSI-Datei und nachinstallieren folgender Perl Module: DB File; ist erforderlich für die Unterstützung des Bayes Filters Time-HiRes; ist nicht unbedingt erforderlich verbessert allerdings die Genauigkeit der Zeitangaben IP-Country; ist nötig, damit das Country Relay Plugin funktioniert Mail-SPF-Query; ist für das SPF-Plugin nötig und installiert zugleich Net-DNS Die Installation dieser Pakete sollte bevorzugt über ppm3 15 erfolgen, welches Teil der bereits installierten Perl Laufzeitumgebung ist. Hierzu muss lediglich ppm3 in der Kommandozeile gestartet werden und das Packet mit install <packetname> installiert werden. Da ppm3 sich die aktuellen Versionen der Pakete aus dem Internet lädt, ist eine Internetanbindung erforderlich. 3. Das Installieren von SpamAssassin sieht wie folgt aus: entpacken der ZIP-Datei in einen beliebigen Ordner Kommandozeile öffnen und im Ordner der eben entpackten Spam- Assassin-Quelldateien folgende Befehle ausführen: perl makefile.pl //erstellt das Makefile 12 [SAsHT] 13 Zum Erstellen dieser Arbeit wurde die ActivePerl Version verwendet.[acst] 14 Hier wurde die Version verwendet.[spas] 15 ppm3 ist ein Paketmanager für Perl. Es ist ein Kommandozeilenwerkzeug.

17 4 SPAMASSASSIN 11 nmake //erstellt das Installationsscript nmake install //kopiert alle erforderlichen Dateien in die vorgesehenen Unterordner von Perl und erstellt Perl-Scripte zum Ausführen von SpamAssassin 4. Installation von PerlPDK 16. Dies ist ein kostenpflichtiges Paket mit verschiedenen Perl-Compilern, die mit Hilfe der Perl Laufzeitumgebung ausführbare Windows EXE- oder DLL Dateien kompilieren können. 4.4 Erstellen des Perl-Scripts zum Erzeugen der DLL Da bisher eine EXE-Datei zum Untersuchen der s verwendet wurde, lag es zunächst nahe diese Methode erneut für die neue Version von SpamAssassin zu verwenden. Allerdings funktionierte dies nicht, da die erzeugte Datei, obwohl sie mit dem selben Perl Script (siehe Listing 3) erzeugt wurde, sich in der Kommandozeile zwar identisch zur vorigen verhielt, jedoch nicht als Prozess aus Delphi heraus. Der Grund dafür konnte auch nach intensiver Suche nicht gefunden werden. 1 BEGIN { 2 my $mail = Mail : : SpamAssassin : : NoMailAudit >new ( ) ; 3 my $spamtest = Mail : : SpamAssassin >new ({ d o n t c o p y p r e f s => 1 } ) ; 4 my $ s t a t u s = $spamtest >check ( $mail ) ; 5 my $ r h i t s= $ s t a t u s >g e t r e q u i r e d h i t s ( ) ; 6 my $ h i t s = ( $ s t a t u s >g e t h i t s ( ) ) ; 7 my $ l i s t = $ s t a t u s >g e t n a m e s o f t e s t s h i t ( ) ; 8 9 print ( H i t s : $ h i t s \n ) ; 10 print ( t e s t s h i t : $ l i s t \n ) ; 11 print ( v e r s i o n=. Mail : : SpamAssassin : : Version ( ). \n ) ; $ s t a t u s >f i n i s h ( ) ; 14 } Listing 3: Perl Script Version 1.0 von SpamAware 16 Hier wurde PerlPDK in der Version verwendet.[acst]

18 4 SPAMASSASSIN 12 Da das PerlPDK nicht nur PerlApp zum Erzeugen von EXE Dateien enthält, sondern mit Hilfe von PerlCrtl die Möglichkeit bietet eine DLL zu erzeugen, wurde dieser elegantere Weg eingeschlagen. Dies erforderte tiefer gehende Kenntnisse in Perl.[PeOR] So sollte ein COM-Objekt von der DLL bereitgestellt werden, das den SpamAssassin repräsentiert. Hierzu musste einerseits das Objekt und andererseits die Schnittstelle, welche die von PerlCrtl (in der späteren DLL) exportierten Methoden bereit stellt, in Perl implementiert werden. Dies funktionierte wunderbar bis auf die Tatsache, dass SpamAware die Möglichkeit bietet die s mit mehreren Threads gleichzeitig zu scannen und diese Threads nun serialisiert wurden. Die Idee mehrere Instanzen des einen SpamAssassin-Objektes aus der DLL heraus zu erzeugen wurde schnell wieder verworfen, da dies dazu führte, dass auch die einkompilierte Perl Laufzeitumgebung ebenfalls jedes mal mit instantiiert wurde und so jeweils 20 MB im Hauptspeicher mehr belegt wurden. Um auch diesem Problem Abhilfe zu schaffen, müssen nun mehrere SpamAware Objekte und somit auch mehrere der zugehörigen Methoden statisch in der DLL zur Verfügung stehen. Anders ist es leider nicht zu lösen, da nur die Objekte der obersten Ebene des Perl Scripts von PerlCtrl parallel angesprochen werden können. Der Aufbau des Perl Scripts ergibt sich also wie in Abbildung 1 zu sehen ist. Das Perl Script selbst ist aus drei Teilen aufgebaut. 1. Die Implementierung des Wrappers der SpamAssassin-Objekte mit den zugehörigen Methoden (siehe Listing 4 Zeile 1-78). 2. Die Definition der Umgebungsvariablen für die SpamAssassin-Objekte, deren Methode und die Erzeugung der zunächst 10 SpamAssassin Objekte (siehe Listing 4 Zeile ). 3. Die Typdefinitionen für PerlCtrl, welche die exportierten Schnittstellen der DLL festlegen (siehe Listing 4 Zeile ).

19 4 SPAMASSASSIN 13 Abbildung 1: Die Klassen in Perl 1 package JAMSpamAssassinTest ; 2 #... use commands 3 #p r o p e r t y $score and $ n a m e s o f t e s t s h i t do always r e t u r n t h e v a l u e s 4 #o f t h e l a s t run scan. Be c a r e f u l l using t h i s p r o p e r t i e s 5 #w h i l e c a l l i n g t h e scan method from s e v e r a l t h r e a d s. 6 $ s c o r e = ; # s e t e r r o r code i f not scanned 7 $ n a m e s o f t e s t s h i t = e r r o r no h i t s ; 8 $new header = ; 9 $LOCAL RULES DIR = r u l e s ; 10 $ l o c a l t e s t s o n l y = 0 ; 11 $ d o n t c o p y p r e f s = 0 ; 12 $ u s e r p r e f s f i l e n a m e ; 13 $spamtest =new Mail : : SpamAssassin ; 14 sub new { 15 my $ s e l f = s h i f t ; 16 my $type =ref ( $ s e l f ) $ s e l f ; 17 return bless {}, $type ;

20 4 SPAMASSASSIN I n i t ( ) ; 19 } 20 # sub S e t U s e r P r e f s F i l e { 22 my( $ s e l f, $ m y u s e r p r e f s f i l e n a m e ) ; 23 $ u s e r p r e f s f i l e n a m e=$ m y u s e r p r e f s f i l e n a m e ; 24 } 25 # sub GetLocalTest { return $ l o c a l t e s t s o n l y ; } 27 sub I n i t { 28 $spamtest =new Mail : : SpamAssassin ({ 29 l o c a l t e s t s o n l y => $ l o c a l t e s t s o n l y, 30 d o n t c o p y p r e f s => $ d o n t c o p y p r e f s, 31 PREFIX => $PREFIX, 32 DEF RULES DIR => $LOCAL RULES DIR, 33 u s e r p r e f s f i l e n a m e => $ u s e r p r e f s f i l e n a m e, 34 LOCAL RULES DIR => $LOCAL RULES DIR, 35 h o m e d i r f o r h e l p e r s => $PREFIX, 36 } ) ; 37 } 38 sub Scan { 39 my( $ s e l f, $amail ) ; 40 my $mail = $spamtest >p a r s e ( $amail ) ; 41 my $ s t a t u s = $spamtest >check ( $mail ) ; 42 $ s c o r e = $ s t a t u s >g e t h i t s ( ) ; 43 $ n a m e s o f t e s t s h i t = $ s t a t u s >g e t n a m e s o f t e s t s h i t ( ) ; 44 $mail = $spamtest >p a r s e ( $ s t a t u s >r e w r i t e m a i l ( ) ) ; 45 $new header = $mail >g e t a l l h e a d e r s ( ) ; 46 my $ r e t u r n s t r i n g = $ s c o r e. #. $ n a m e s o f t e s t s h i t. #. $new header ; 47 $ s t a t u s >f i n i s h ( ) ; 48 $mail >f i n i s h ( ) ; 49 return $ r e t u r n s t r i n g ; 50 } 51 sub Learn { 52 my( $ s e l f, $amail, $isspam, $ f o r g e t ) ; 53 my $mail = $spamtest >p a r s e ( $amail ) ; 54 $spamtest >i n i t l e a n e r ( ) ; 55 $spamtest >l e a r n ( $mail, $isspam, $ f o r g e t ) ; 56 $spamtest >f i n i s h l e a r n e r ( ) ; 57 return t r u e ; 58 }

21 4 SPAMASSASSIN sub spamtest { return $spamtest ; } 60 ############# 61 =D e s c r i p t i o n 62 S c r i p t to b u i l d a d l l o f SpamAssassin u s i n g p e r l c t r l from Active P e r l 63 This s c r i p t implements a l l needed methods o f SpamAssassin to make i t 64 a v a i l a b l e as COM o b j e c t. 65 =cut 66 package JAMSpamAssassin ; 67 #... use commands 68 # p r o p e r t i e s to e x p o r t : 69 $VERSION = Mail : : SpamAssassin : : Version ( ) ; ; 71 $spamtests [ 0 ] = new JAMSpamAssassinTest ; 72 # $spamtests [ 9 ] = new JAMSpamAssassinTest ; 74 $SpamtestMAX=10; 75 # sub GetRulesDir { return $spamtests [0] > GetRulesDir ( ) ; } 77 #SA uses i n t e g e r v a l u e s [ 0, 1 ] f o r r e p e s e n t a t i o n o f boolean v a l u e 78 #COM ( Delphi ) s e t s t h e v a l u e t r u e to 1 79 sub SetLocalTest { 80 my $ l t o = s h i f t ; 81 my $ i =0; 82 for ( $i, $i <$SpamtestMAX, $ i ++){ 83 i f ( $ l t o ) { $spamtests [ $ i ] >SetLocalTest ( 1 ) } ; 84 i f (! $ l t o ) { $spamtests [ $ i ] >SetLocalTest ( 0 ) } ; 85 }#f o r 86 return TRUE; 87 } 88 sub GetLocalTest { return $spamtests [0] > GetLocalTest ( ) ; } 89 #t h i s method has to c a l l e d b e f o r e t h e f i r s t scan i s s t a r t e d, 90 #i t i n i t i a l i z e s environment v a l u e s 91 sub I n i t { 92 my $ i =0; 93 for ( $i, $i <$SpamtestMAX, $ i ++){ 94 $spamtests [ $ i ] > I n i t ( ) ; 95 }#f o r 96 } 97 # i f r e p o r t i s s e t then a d e t a i l e d spamreport i s added to t h e header 98 sub Scan0 { 99 my $amail = s h i f t ;

22 4 SPAMASSASSIN return $spamtests [0] > Scan ( $amail ) ; 101 } 102 #..... t h e o t h e r 8 f u n c t i o n s 103 sub Scan9 { 104 my $amail = s h i f t ; 105 return $spamtests [9] > Scan ( $amail ) ; 106 } 107 #l e t t h e bayes f i l t e r l e a r n a mail as spam or ham. 108 #i f f o r g e t i s t r u e t h e mail w i l l be removed from both l i s t s. 109 sub Learn0 { 110 my $amail = s h i f t ; 111 my $isspam = s h i f t ; 112 my $ f o r g e t = s h i f t ; 113 $spamtests [0] > l e a r n ( $amail, $isspam, $ f o r g e t ) ; 114 return t r u e ; 115 } 116 #..... t h e o t h e r 8 f u n c t i o n s 117 sub Learn9 { 118 my $amail = s h i f t ; 119 my $isspam = s h i f t ; 120 my $ f o r g e t = s h i f t ; 121 $spamtests [9] > l e a r n ( $amail, $isspam, $ f o r g e t ) ; 122 return t r u e ; 123 } 124 # ############# 126 =POD 127 =BEGIN P e r l C t r l 128 %TypeLib = ( 129 PackageName => JAMSpamAssassin, 130 DocString => JAMSpamAssassin Library to a c c e s s SpamAssassin, 131 TypeLibGUID => {A5D4722A 2CBD 453B 931B 229E01F2E8B0}, 132 ControlGUID => {B56AAB35 53A8 4E94 B19D DABF67894F17}, 133 D i s p I n t e r f a c e I I D=> {D1A23714 EE53 48E A7AF6956}, 134 ControlName => JAMSpamAssassinControl, 135 ControlVer => 2, 136 ProgID => JAMSpamAssassin, 137 LCID => 0, 138 DefaultMethod => I n i t, 139 # no or empty r e t u r n v a l u e i s not a l l o w e d f o r d e l p h i so s e t t i n g b o o l 140 Methods => {

23 4 SPAMASSASSIN # S e t L o c a l R u l e s D i r => { 143 DocString => path to the l o c a l r u l e s, 144 RetType => VT BOOL, 145 TotalParams => 1, 146 NumOptionalParams => 0, 147 ParamList =>[ LOCAL RULES DIR => VT BSTR ] 148 }, 149 GetLocalRulesDir => { 150 DocString => r e t r i e v e path to the l o c a l r u l e s, 151 RetType => VT BSTR, 152 TotalParams => 0, 153 NumOptionalParams => 0, 154 ParamList =>[] 155 }, 156 I n i t => { 157 DocString => c a l l b e f o r e a scan i s s t a r t e d, 158 RetType => VT BOOL, 159 TotalParams => 0, 160 NumOptionalParams => 0, 161 ParamList =>[] 162 }, 163 Scan0 => { 164 DocString => scan the given mail, 165 RetType => VT BSTR, 166 TotalParams => 1, 167 NumOptionalParams => 0, 168 ParamList =>[ amail => VT BSTR ] 169 }, 170 #..... t h e o t h e r 8 f u n c t i o n s 171 Scan9 => { 172 DocString => scan the given mail, 173 RetType => VT BSTR, 174 TotalParams => 1, 175 NumOptionalParams => 0, 176 ParamList =>[ amail => VT BSTR ] 177 }, 178 Learn0 => { 179 DocString => l e t the bayes l e a r n, 180 RetType => VT BOOL, 181 TotalParams => 3,

24 4 SPAMASSASSIN NumOptionalParams => 0, 183 ParamList =>[ amail => VT BSTR, 184 issspam => VT BOOL, 185 f o r g e t => VT BOOL ] 186 }, 187 #..... t h e o t h e r 8 f u n c t i o n s 188 Learn9 => { 189 DocString => l e t the bayes l e a r n, 190 RetType => VT BOOL, 191 TotalParams => 3, 192 NumOptionalParams => 0, 193 ParamList =>[ amail => VT BSTR, 194 issspam => VT BOOL, 195 f o r g e t => VT BOOL ] 196 }, 197 # }, # end o f Methods 199 # can t w r i t e to p r o p e r t i e s so t hey are read only 200 # and t h e r e are methods f o r w r i t i n g a c c e s s 201 P r o p e r t i e s => { 202 VERSION => { 203 DocString => v e r s i o n o f c u r r e n t running SA, 204 Type => VT BSTR, 205 ReadOnly => 1, 206 }, 207 SpamtestMAX => { 208 DocString => maximum number o f SA i n s t a n c e s, 209 Type => VT I2, 210 ReadOnly => 1, 211 }, 212 } # end o f P r o p e r t i e s 213 ) ; # end o f %TypeLib 214 =END P e r l C t r l 215 =cut Listing 4: Auszug aus dem Perl Script zur Erzeugung der DLL Das Implementieren des Wrappers erforderte tiefere Einarbeitung in den Quellcode von SpamAssassin. Darauf möchte ich wegen der Größe und Komplexität von SpamAssassin im Rahmen dieser Arbeit aber nicht näher eingehen. Auffallend ist, dass die Methode Scan einen zusammengesetzten String aus

25 4 SPAMASSASSIN 19 dem erreichten Punktwert, den Trefferregeln und dem neuen Kopf zurück gibt (siehe Zeile 65 in Listing 4). Dies ist nötig, da es leider nicht möglich ist mehrere Werte zurück zu geben. Würde man die Ergebnisse über Properties oder out Variablen zugänglich machen wollen, könnte es vorkommen, dass diese schon Werte eines nachfolgenden Scans enthalten, wenn mehrere Scans schnell nacheinander folgen. Damit ist des Öfteren zu rechnen. Die Implementierung der Methoden, die später von der DLL bereitgestellt weden, ist jetzt recht einfach. Ein Feld, das zunächst zehn SpamAssassin Objekte fasst, wird beim Laden der DLL erstellt und die Umgebungsvariablen über eine Init-Methode den Objekten zugewiesen. Es werden also für zehn SpamAssassin-Objekte zehn Scan-Methoden und zehn Learn-Methoden benötigt. Dadurch ist es möglich mit 10 Threads gleichzeitig zu scannen. Die Definition der so genannten TypeLib zur Bereitstellung der Methoden durch die DLL beschreibt die Methoden inklusive der verwendeten Typen. Auf diese Weise sind die späteren Zugriffe durch die DLL auf die ungetypten Variablen aus Perl definiert. Mit diesem Perl Script ist es nun möglich mittels PerlCtrl die gewünschte DLL zu erstellen. Das Kommandozeilenwerkzeug PerlCtrl wird im Verzeichnis vom Spam- Assassin-Quellcode aufgerufen. Dort muss sich ebenfalls das zuvor erstellte Perl Script befinden, welches als Parameter übergeben wird. PerlCtrl bietet über zusätzliche Parameter die Möglichkeit der DLL weitere Informationen zu geben, wie zum Beispiel Copyright, Version und Firma. Der Befehl zum Erstellen der DLL könnte also so aussehen: perlctrl --info CompanyName=JAM-Software --info FileDescription="SpamAssassin 3.0.3" --info FileVersion=1.0 --info LegalCopyright="Joachim Marder" sadll.pl

26 4 SPAMASSASSIN 20 Abbildung 2: Die Klassen der Unit SpamUtils 4.5 Unit SpamUtils für den Zugriff auf SpamAssassin Die Unit SpamUtils dient zum einen dem leichteren Zugriff auf die DLL, und zum anderen dem Zugriff auf die Konfigurationsdatei von SpamAssassin Entwurf der Klassen Die Unit sollte anderen Programmen einfaches Scannen von s mit Hilfe der DLL ermöglichen. Also gibt es eine Klasse TJAMSpamAssassin, die alle Zugriffe auf das aus der DLL erzeugte Objekt vornimmt, eine Klasse TJAMSpamTest die einen Scan einer repräsentiert und eine Klasse TSpamAssassinConfigFile zum Verwalten der Konfigurationsdatei. Diese Klassen sind in Abbildung 2 dargestellt Implementierung der Klassen Die Klasse TJAMSpamAssassin ist als Singleton pattern implementiert, da es nicht sinnvoll ist mehrere Instanzen des SpamAssassin-Objektes zu erzeugen (siehe Kapitel 4.4). Die wichtigste Methode von TJAMSpamAssassin ist Scan (siehe Listing 5). Diese Methode kümmert sich darum, dass mehrere aufeinander folgende, durchzuführende Scans auf die gewünschte Anzahl von Threads, also hier Scanmethoden der DLL, verteilt werden. Durch das Property MAXUSE wird angegeben wie viele Threads gleichzeitig laufen dürfen. Ist dieser Wert zum

27 4 SPAMASSASSIN 21 Beispiel auf 3 gesetzt, werden nur die ersten drei Methoden aus der DLL benutzt. Sind mehr s zu scannen als MAXUSE erlaubt, werden die s wieder von vorne auf die Methoden aufgeteilt. Es erfolgt also eine Serialisierung auf eine Anzahl von Threads, die in MAXUSE gegeben ist. 1 function TJAMSpamAssassin. Scan ( amail : TIDMessage ) : WideString ; 2 var M a i l S t r i n g : WideString ; 3 strstream : TStringStream ; 4 begin 5 i f not assigned ( fspamassassin ) then exit ; 6 strstream := TStringStream. Create ( ) ; 7 try 8 amail. SaveToStream ( strstream ) ; 9 M a i l S t r i n g := strstream. DataString ; 10 f n e x t u s e :=( fmailcount mod fmaxuse ) ; 11 case f n e x t u s e of 12 0 : r e s u l t := fspamassassin. Scan0 ( M a i l S t r i n g ) ; 13 1 : r e s u l t := fspamassassin. Scan1 ( M a i l S t r i n g ) ; 14 // : r e s u l t := fspamassassin. Scan9 ( M a i l S t r i n g ) ; 16 end ; 17 Inc ( fmailcount ) 18 f i n a l l y 19 FreeAndNil ( strstream ) ; 20 end ; 21 end ; Listing 5: Die Scan Methode von TJAMSpamAssassin Die Klasse TJAMSpamTest repräsentiert einen Scan einer . Durch das Instantiieren dieser Klasse und das Aufrufen deren Scan-Methode ist das Ergebnis nach dem Scan in den Properties Score, Testhits und NewHeader verfügbar. In der alten Version von SpamAware wurden die Testhits, der Spamstatus und der erzielte Punktwert von SpamAware in den Kopf der einfügt. Da dies in der neuen Version nicht mehr geschehen soll, werden die Testhits nicht mehr übergeben, sondern nur noch der Punktwert und der neue Kopf der , dem durch SpamAssassin alle Informationen hinzugefügt wurden (siehe Kapitel 4.2). Zudem wurde eine statische Methode (Scor WithSpamAssassin) hinzugefügt, die das Erstellen von TJAMSpamTest übernimmt, um die Benutzung weiter zu erleichtern.

28 4 SPAMASSASSIN 22 TSpamAssassinConfigFile ist eine Klasse, die den Zugriff auf die Konfigurationsdatei von SpamAssassin ermöglicht. Standardmäßig erstellt diese Klasse, falls nicht schon vorhanden, einen Ordner.SpamAssassin mit der Datei user pref im Benutzerverzeichnis des aktuellen Benutzers. Der Pfad dieser Datei wird ebenfalls als Pfad für die automatische Whitelist und die Bayes-Filter Datenbankdateien für SpamAssassin angeben. Mit Hilfe von TSpamAssassinConfigFile ist es möglich die White- und Blacklist und die Optionen benutze Bayes Filter, automatisches lernen für Bayes und führe nur lokale Tests durch einfach zu ändern.

29 5 DIE VERSION 1.0 VON SPAMAWARE 23 5 Die Version 1.0 von SpamAware Die Version 1.0 von SpamAware ist im Rahmen der zuvor angefertigten Projektarbeit entstanden und bietet die Grundlage für diese Arbeit. Der Funktionsumfang der Version 1.0 beschränkte sich darauf, dass alle neuen E- Mails automatisch untersucht werden und man lediglich einen Ordner scannen lassen kann, der zuvor in den Optionen ausgewählt werden musste (siehe Abbildung 3). Die Optionen selbst boten nur das Einstellen des Schwellwertes, der Anzahl der Threads und ob eine im Betreff markiert oder in einen gewählten Ordner verschoben werden soll. Abbildung 3: Der Optionen Dialog von SpamAware 1.0 Durch die Benutzung des veralteten SpamAssassin (v2.6) war die Erkennungsrate für Spam insbesondere bei Viagra s nicht mit der jetzigen zu vergleichen. SpamAware selbst benutzt Redemption [Redemp], um auf manche Outlook Objekte zugreifen zu können. Redemption ermöglicht es so auf Outlook Objekten zu arbeiten, dass die Sicherheitsmeldung beim Zugriff auf manche Ob-

30 5 DIE VERSION 1.0 VON SPAMAWARE 24 jekte nicht erscheint. Außerdem bietet Redemption von Outlook abgeleitete Methoden und Objekte mit mehr Funktionen an. So liefert beispielsweise das NewMail Ereignis von Redemption gleich die mit, die das Ereignis ausgelöst hat. Die Struktur von SpamAware 1.0 ist in Abbildung 4 zu sehen. Einige dieser Klassen sind im Laufe dieser Arbeit nahezu gänzlich abgeändert worden (siehe Kapitel 7). Abbildung 4: Die Klassen von SpamAware 1.0

31 6 ERWEITERN VON SPAMAWARE 25 6 Erweitern von SpamAware Das Erweitern von SpamAware bestand nicht nur darin, die in der Aufgabenstellung verlangten Funktionen zu implementieren, sondern auch bestehende Methoden zu verfeinern und Fehler zu beseitigen. So wurde zum Beispiel die Bearbeitung der fertig untersuchten s aus dem Scanthread heraus genommen und in den Hauptthread verlagert. Dies war notwendig, da unter Outlook 2000 die Referenz, der , die mit in dem Scanthread übergeben wurde, nicht wieder dereferenziert wird. So bleibt die EXE Datei von Outlook 2000 im Speicher nachdem man es beendet hatte. Dieses Problem hätte laut MSDN [Msdn] durch Marshalling 17 gelöst werden können, jedoch wäre der Aufwand für Marshalling um ein vielfaches höher gewesen, als die von TThreadpool zur Verfügung stehende Methode Threadterminated zu implementieren. Der typischer Ablauf eines Scans beim Eintreffen einer neuen wird in Abbildung 5 gezeigt. 6.1 Die Black-/Whitelist Funktion Die Implementierung der Black- und Whitelist Funktion teilte sich in zwei Bereiche. Zum einen sollten die Listen in den Optionen editierbar sein, und zum anderen müssen deren Daten in die Konfigurationsdatei von SpamAssassin geschrieben werden und wieder herauslesbar sein. Der erste Teil ist dank der produktiven IDE von Delphi einfach zu realisieren (siehe Abbildung 6). Das Speichern und Lesen der Listen aus der Konfigurationsdatei übernimmt die Klasse TSpamAssassinConfigFile. Zum Lesen und Verarbeiten dient die Methode ParseCfgFile und deren Hilfsmethode getlistvalue. ParseCfgFile wird beim Laden der Konfigurationsdatei aufgerufen, sucht die gewünschten Werte in der Datei und weist diese den entsprechenden Variablen zu. Da diese beiden Methoden nichts weiter tun, als suchen und zuweisen von Strings innerhalb der Datei möchte ich hier nicht näher darauf eingehen. Hinzu kommt, dass diese recht schwer zu lesen sind, da ein Konstrukt wie ein Tokenizer 18 in Delphi nicht vorhanden ist und so das Suchen durch Auffinden der Positionen von Substrings geschehen muss. Die Komponente, welche die Listen in den Optionen darstellt, verwaltet die 17 Marshalling ist ein Mechanismus zum der Datenaustausch zwischen verschiedenen COM-Objekten 18 Tokenizer ist ein Objekt mit dessen Hilfe Inhalte von Strings leicht abgearbeitet werden können

32 6 ERWEITERN VON SPAMAWARE 26 Abbildung 5: Das Sequenzdiagramm beim Eintreffen einer

33 6 ERWEITERN VON SPAMAWARE 27 Abbildung 6: Die Whitelist des Optionen Dialogs Daten in einer StringList, die den Inhalt der StringList aus TSpamAssassin- ConfigFile übernehmen kann. So bezieht der Optionen Dialog seine Daten aus den Properties von TSpamAssassinConfigFile, die beim Erstellen des Optionen Dialoges immer neu aus der Konfigurationsdatei geladen werden.

34 6 ERWEITERN VON SPAMAWARE Menüpunkte zum Hinzufügen zu Blacklist / Whitelist Das Hinzufügen der Menüpunkte für Black- und Whitelist unterscheidet sich in keiner Weise von dem Hinzufügen der Knöpfe, die bereits in SpamAware 1.0 verwendet wurden (siehe Abbildung 7). Hierzu dient die Methode AddButton in der Unit OutlookUtils. Abbildung 7: Das Menü von SpamAware als Outlooktoolbar Beim Ausführen der Aktionen wird die Methode AddSelectionToList mit dem Parameter white=true oder white=false aufgerufen. Diese Methode ermittelt die aktuell selektierten s, erstellt eine Liste aus deren Absenderadressen, übergibt diese an die entsprechende Liste und verschiebt die s in den in den Optionen angegebenen Spamordner, falls Zur Blacklist geklickt wurde und in den Posteingang andernfalls. 6.2 Importieren von Adressbuchkontakten Im Falle des Importierens der Adressbuchkontakten, beziehungsweise deren -Adressen, auf die Whitelist, ist zu beachten, dass in Outlook Verteilerlisten im Adressbuch gespeichert werden. Somit ist eine Abfrage notwendig, die überprüft ob ein Eintrag ein Kontakt ist oder eine Verteilerliste (siehe Listing 6 Zeile 3). Ein in Verbindung mit einem Exchange-Server auftretendes Problem ist, dass Kontakte bei Benutzung eines Exchange-Servers nicht lokal, sondern auf dem Server gespeichert sind. Wird die -Adresse eines Kontaktes benötigt, muss zunächst die Referenz dorthin auflösen aufgelöst. Dazu wird die Methode ResolveExchangeAddress aufgerufen, die mit Hilfe von Redemption ein Empfängerobjekt erstellt und aus diesem die -Adresse ausliest.

35 6 ERWEITERN VON SPAMAWARE 29 1 item := c o n t a c t s. items. item ( i ) as ContactItem ; 2 /// check i f i t i s a r e a l c o n t a c t or contactgroup 3 i f not item. C l a s s =olcontact then continue ; 4 s a f e c o n t a c t. Item := item ; 5 // 1Address 6 addr:= s a f e C o n t a c t. 1Address ; 7 /// t r e a t case t h e c a n t a c t i s a exchange s e r v e r c o n t a c t 8 i f SafeContact. 1AddressType = EX then begin 9 addrtmp:= ResolveExchangeAddress ( addr ) ; 10 i f I s V a l i d A d d r e s s ( addrtmp ) then r e s u l t. add ( addrtmp ) ; 11 end // e n d i f 12 else i f I s V a l i d A d d r e s s ( addr ) then r e s u l t. Add( addr ) ; 13 //... 2Address and 3Address Listing 6: Auszug aus der Methode Get AddressesFromContacts aus OutlookUtils 6.3 Automatisches Aufnehmen von Empfängern eigener Mails in die Whitelist Das automatische Aufnehmen von -Adressen ausgehender s auf die Whitelist ist eine logische Funktion die sicherstellen soll, dass Antworten auf eigene s keinesfalls als Spam klassifiziert werden. Auf diese Weise wird ebenfalls eine so niedrige Punktzahl erzielen, dass eine Antwort auf die bei eingeschaltetem Bayes Filter (siehe Kapitel 4 gleich als gute gelernt wird. Um ausgehende s verarbeiten zu können, wurde das SentItem-Ereignis in selbiger Methode implementiert. Diese wird bei ausgehenden s aufgerufen. Von der so übergebenen werden die Empfänger extrahiert und falls nötig wiederum mit ResolveExchangeAddress aufgelöst. Anschließend werden die Adressen zur Whitelist hinzugefügt. Dies alles geschieht nur, wenn diese Funktion in den Optionen eingeschaltet wurde. 6.4 Die verschiedenen ScanModi Manchmal ist es sinnvoll die Möglichkeit zu haben s mehrfach nach Spam zu untersuchen (zum Beispiel zu Testzwecken, oder beim Erstellen von Regeln). Dies veranlasste, dass verschiedene Modi eingeführt werden sollten,

36 6 ERWEITERN VON SPAMAWARE 30 die dem Benutzer die Möglichkeit geben zu wählen, welche s untersucht werden. 1. alle s scannen, auch bereits untersuchte s : untersucht alle s. Ausgenommen sind s, die schon als gelesen markiert worden sind. 2. nur s, die noch nicht von SpamAssassin untersucht wurden : SpamAware trägt nach dem Untersuchen einer das Ergebnis nicht nur in den Kopf dieser ein (bzw. ersetzt den ganzen Kopf), sondern speichert die Testhits und die Punktzahl in einem CustomProperty der . Die Möglichkeit dies zu tun hängt vom Programm ab. Da Outlook diese Möglichkeit bietet wurde sie genutzt. So kann abgefragt werden, ob diese bereits von SpamAware untersucht wurde. 3. nur s, die noch nicht auf Spam untersucht wurden : Hier wird überprüft, ob im Kopf der zu untersuchenden die Phrase X-Spam-Status: vorkommt. Wenn dies der Fall ist, wird davon ausgegangen, dass diese s bereits einmal von SpamAware, oder einem anderen Anti-Spam Programm, welches auf SpamAssassin zurück greift, untersucht wurde. Die Entscheidung, ob die gewählte der drei Optionen zutrifft, wird von der Methode IsToScan in der zentralen Unit Plugin übernommen. Einstellbar ist dies über den Leistung Karteireiter im Optionen Dialog (siehe Abbildung 8) 6.5 Die Einbindung der Hilfedatei zur kontextsensitiven Hilfe Die heutigen modernen Programme verfügen fast alle über eine kontextsensitive Hilfe 19. So sollte auch SpamAware diese Möglichkeit bieten. Das Einbinden der kontextsensitiven Hilfe in ein Delphi Programm gestaltet sich so, dass die Komponenten, die von der Hilfe näher beschrieben werden sollen eine Nummer erhalten und diese Nummern sich (nicht sichtbar) in der Hilfedatei 19 wenn rechts oben im Fenster (neben dem Schließen Kreuz) das Fragezeichen angeklickt wird, verändert sich der Mauszeiger zu einem Fragezeichen und ein Hilfetext erscheint zu der Komponente des Fensters, die als nächstes angeklickt wird

37 6 ERWEITERN VON SPAMAWARE 31 Abbildung 8: Der Leistung Karteireiter im Optionen Dialog

38 6 ERWEITERN VON SPAMAWARE 32 wiederfinden. Diese Einträge in der Hilfedatei wurden mit Help&Manual 20 vorgenommen. So kann der HelpRouter, eine Delphi Komponente, der ausgewählten Komponente die passenden Zeilen der Hilfedatei zuordnen. 20 Help&Manual ist Programm zum komfortablem Erstellen von Hilfedateien verschiedener Formate [HeMa]

39 6 ERWEITERN VON SPAMAWARE Die Schlagwortliste für eine Wortbewertung Bei Benutzung eines Spamfilters ist es wünschenswert, Einfluss darauf nehmen zu können, was den Filter dazu bewegt s eher als Spam oder Ham zu bewerten. Eine Liste von Worten, deren Vorkommen in s diese eher aus Ham einstufen, ist gerade bei themenbezogenem Verkehr sinnvoll (zum Beispiel Produktnamen von Firmen). Da SpamAssassin diese Möglichkeit nicht bietet wurde eine Methode erstellt, welche dynamisch eine Regel für solche Worte erstellt. Diese Methode ist im folgenden Listing 7 zu sehen. 1 function ConvertStringToMultiWordRuleDef ( MultiWord : String ) : String ; 2 var ichar : I n t e g e r ; 3 begin 4 Result := /\b (? : ; 5 for ichar := 1 to Length( MultiWord ) do begin 6 I f ( MultiWord [ ichar ] = #10) AND ( ( MultiWord [ ichar 1] = #13)) then 7 begin 8 Result := Result + ; 9 continue ; 10 end ; 11 i f Ord( MultiWord [ ichar ] ) < 32 then continue ; 12 i f ( MultiWord [ ichar ] = ) AND ( Result [ Length( Result ) 1 ] = ) 13 then continue ; 14 Result := Result + QuoteRegExprMetaChars ( MultiWord [ ichar ] ) ; 15 end ; 16 Result := Result + )\ b/ i ; 17 end ; 18 // B e i s p i e l f ü r e i n e e r s t e l l e Regel : 19 { # WordRule w hite 20 body SP2E BodyWordWLRule 21 /\ b (? : T r e e s i z e SmartPOP2SMTP SpamAware FH Trier )\ b/ i 22 header SP2E HeaderWordWLRule S u b j e c t 23 = /\ b (? : T r e e s i z e SmartPOP2SMTP SpamAware FH Trier )\ b/ i 24 meta SP2E CompleteWordWLRule 25 ( SP2E HeaderWordWLRule SP2E BodyWordWLRule) 26 s c o r e SP2E CompleteWordWLRule } Listing 7: Diese Funktion erstellt eine Regel aus den in MultiWord übergebenen Wörtern

40 6 ERWEITERN VON SPAMAWARE Den aktuell angezeigten Ordner scannen Die Funktion den aktuell angezeigten Ordner nach Spam zu untersuchen, besteht darin, über den Explorer den aktuellen Ordner zu ermitteln und dessen Inhalt iterativ nach Spam zu untersuchen. Diese Funktion ist vor allem nach der ersten Installation von SpamAware interessant, wenn sich bereits eine Vielzahl von noch nicht untersuchten E- Mails in Ordnern befinden.

41 7 INTEGRATION IN OUTLOOK EXPRESS 35 7 Integration in Outlook Express Bei Outlook Express ist es im Gegensatz zu Outlook so, dass es keine Unterstützung für Plugins gibt. Zumindest ist dies seitens Microsoft so. Da allerdings Outlook Express zusammen mit Windows XP installiert und somit weit verbreitet ist, handelt es sich wohl um das meist eingesetzte Programm (zumindest im privaten Bereich). Daher gibt es viele Softwarehersteller, die die Unterstützung für Plugins in Outlook Express gerne nutzen würden. Nektra [Nkt] ist eine Firma, die eine API für Outlook Express entwickelt hat. Mit dieser API ist es möglich Zugriff auf Outlook Express zu erlangen und damit Plugins zu kreieren. Die so genannte OEAPI besteht aus vier DLL- Dateien, die für den Zugriff auf visuelle, interne und speichernde Komponenten sowie deren Ereignisse zuständig sind. Um diese Zugriffe zu erlangen muss eine EXE-Datei laufen. Diese EXE-Datei (der so genannte Launcher ) lädt eine der DLL-Dateien, die wiederum überwacht wann Outlook Express gestartet wird, um dann mittels Codeinjection 21 den anderen DLL-Dateien die Funktion zu ermöglichen. 7.1 Entwurf der Schnittstelle Ein wesentlicher Aspekt in diesem Teil der Arbeit war es, eine Schnittstelle zu erstellen und zu implementieren, die es ermöglicht, später auf einfache Art weitere Programme zu unterstützen. Diese Schnittstelle sollte alle nötigen Methoden enthalten, um die jetzige, in Outlook vorhandene, Funktionalität beizubehalten und diese auf Outlook Express zu übertragen. Die Beziehungen der neuen und alten Klassen, beziehungsweise der abgeänderten Klassen sind in Abbildung 9 zu sehen. 7.2 Implementierung Damit das Plugin mit Outlook Express mitgeladen wird, muss ein Eintrag in der Registry von Windows erzeugt werden, welcher der DLL von OEA- PI das zu ladende Plugin angibt. Dieser Eintrag wird, wie auch der Eintrag für das Outlook-Plugin, von einer Registryfactory erzeugt. Diese Fabrik wird beim Registrieren der Plugin-DLL aufgerufen. Da das Plugin idealerweise 21 Ein Verfahren bei dem einer fremden Anwendung eigener Programmcode unter geschoben wird. Dies geschieht meist während der Ausführung des Programms im Speicher.

42 7 INTEGRATION IN OUTLOOK EXPRESS 36 in der selben DLL implementiert werden soll, in der sich auch das Outlook Plugin befindet, muss die Methode AfterConstruction in TPlugin implementiert werden. Diese Methode wird beim Laden der DLL ausgeführt. Da dies ebenfalls beim Laden der DLL in Outlook geschieht, ist festzustellen, unter welcher Applikation die DLL gerade geladen wird, damit beim Laden von Outlook nicht die OEAPI Objekte kreiert werden. Dies wird mittels der Methode IsHostApp, wie sie in Listing 8 zu sehen ist, durchgeführt. IsHostApp ermittelt den Namen des laufenden Prozesses und vergleicht diesen mit dem übergebenen String. Ist dieser im Namen enthalten wird true zurück gegeben. 1 function TPlugin. IsHostApp ( f i l e n a m e : String ) : boolean ; 2 var hprocess : THandle ; 3 hmod : HMODULE; 4 cb : DWORD; 5 ModuleName : array [ ] of Char ; 6 begin 7 r e s u l t := f a l s e ; 8 hprocess := OpenProcess (PROCESS QUERY INFORMATION 9 or PROCESS VM READ, False, GetCurrentProcessId ) ; 10 i f ( hprocess <> 0) then begin 11 EnumProcessModules ( SizeOf (hmod), cb ) ; 12 GetModuleFilenameEx ( hprocess, hmod, ModuleName, SizeOf ( ModuleName ) ) ; 13 CloseHandle ( hprocess ) ; 14 end ; 15 i f AnsiContainsText ( ExtractFileName ( ModuleName ), f i l e n a m e ) 16 then r e s u l t := t r u e ; 17 end ; Listing 8: Die Methode IsHostApp aus Plugin Ist sichergestellt, dass in diesem Fall Outlook Express 22 der Hostprocess ist, dann wird das Objekt TOEAPIInit erzeugt. Dieses ermöglicht allen anderen Komponenten von OEAPI den Zugriff auf das Programm. Da für das Outlook Plugin ein extra Interface ( IDTExtensibility2 ) implementiert werden musste ist keine Sorge zu tragen, dass nicht benötigte Outlook Objekte erstellt werden, da dieses Interface von Outlook Express nicht aufgerufen wird. 22 Der Name der EXE Datei von Outlook Express ist msimn.exe

43 7 INTEGRATION IN OUTLOOK EXPRESS 37 Neben der von beiden Applikationen aufgerufenen Methode InitCommon, die alle gemeinsamen Komponenten 23 erzeugt, muss für OEAPI die Methode OnInitOEAPI implementiert werden, in der nun alle Outlook Express spezifischen Objekte erstellt werden. Hier galt es genau darauf zu achten, dass alle erstellten OEAPI Objekt wieder beim Entladen (Methode OnShutdownOEAPI ) zerstört werden, da sonst Outlook Express im Speicher bleibt. Zur Implementierung der Schnittstelle musste zunächst festgestellt werden, welche Methoden zum Zugriff auf das Programm nötig sind. So dienten, ausgegangen vom bestehenden Plugin, die Methoden, die direkt auf Outlook-Objekte zugreifen als Vorlage für das Interface. Zugriffe und Methodenaufrufe von Outlook-Objekten müssen nun durch eigene Methoden gekapselt werden. Die Übergabeparameter und Rückgabewerte sind jedoch untypisiert zu halten, da diese in anderen Programmen aus andere Typen bestehen. So ergaben sich fast alle Methoden der Schnittstelle PluginUtilsInterface wie sie in den Listings 9 bis 11 zu sehen sind. Im folgenden Listing 9 sind vor allem die Methoden zur Erstellung der Werkzeugleiste und deren Knöpfe zu sehen. 1 { 2 I n t e r f a c e to be implemented f o r a l l m a i l c l i e n t s to use SpamAware Harald Bin kle 4 } 5 unit P l u g i n U t i l s I n t e r f a c e ; 6 7 interface 8 uses OleServer, C l a s s e s, IdMessage ; 9 10 type 11 /// h o s t a p p i c a t i o n t y p e [ to be completed on new addins 12 THostApplication=(haOutlook, haoutlookexpress ) ; /// m a i l e v e n t procedure t y p e 15 TPlugMailEvent= 16 procedure ( ASender : TObject ; const amail : IDispatch ) of object ; 17 I P l u g i n U t i l s = 18 interface ( I I n t e r f a c e ) [ {A538CA07 056D 4137 BFCE 007AD5B5C5EA} ] /// g e t s t h e t y p e o f h o s t a p p l i c a t i o n 23 Das Menü und alle zum Scannen benötigten Objekte, z.b. TJAMSpamAssassin, TThreadpool

44 7 INTEGRATION IN OUTLOOK EXPRESS function GetHostApp : THostApplication ; /// Cleans up t h e s e s s i o n. Destroys a l l c r e a t e d o b j e c t s. 24 procedure CleanUp ; { 27 adds a t o o l b a r to he h o s t a p p l i c a t i o n app i n s t a n c e o f t h e h o s t a p p l i c a t i o n name name o f t o o l b a r t h e c r e a t e d t o o l b a r 31 } 32 function AddToolBar ( app : OleVariant ; name: String ) : OleVariant ; { 35 adds a menubutton to a t o o l b a r app i n s t a n c e o f h o s t a p p l i c a t i o n toolbarname name o f t h e t o o l b a r to add t h e nemubutton to menuname c a p t i o n o f t h e menubutton t h e c r e a t e d menubutton 40 } 41 function AddMenu( app : OleVariant ; toolbarname : String ; 42 menuname : String ) : OleVariant ; { 45 adds a b u t t o n to a t o o l b a r or menu parent a t o o l b a r or a menubutton to add t h e new b u t t o n c l i c k E v e n t procedure to be c a l l e d on b u t t o n c l i c k buttonname c a p t i o n o f t h e b u t t o n ButtonImageResourceName resourcename o f t h e bitmap 50 to be a s s i g n e d to t h e b u t t o n s e p a r a t e t r u e i f a s e p e a r t o r s h o u l d be c r e a t e d 52 a f t e r t h i s new b u t t o n t h e new b u t t o n 54 } 55 function AddButton ( parent : OleVariant ; ClickEvent : TNotifyEvent ; 56 ButtonName : String ; ButtonImageResourceName : String ; 57 s e p a r a t e : boolean ) : OleVariant ; { 60 s e t s a b u t t o n b u t t o n v i s i b l e or i n v i s i b l e b u t t o n b u t t o n to s e t t h i s p r o p e r t y

45 7 INTEGRATION IN OUTLOOK EXPRESS 39 v i s i b l e t r u e i f b u t t o n s h o u l d be v i s i b l e and f a l s e e l s e 63 } 64 procedure S e t B u t t o n V i s i b l e ( button : OleVariant ; v i s i b l e : boolean ) ; Listing 9: Die Schnittstelle des Plugin zu den Programmen Das nun anschließende Listing 10 zeigt die Methoden für Zugriffe auf s und Ordner. 1 { 2 moves a mail from i t s c u r r e n t f o l d e r to a d e s t i n a t i o n f o l d e r mailid i d o f t h e mail to be moved DestFolderID i d o f f o l d e r t h e mail s h o u l d be moved to 5 } 6 procedure Mov ( MailID : WideString ; DestFolderID : WideString ) ; 7 8 { 9 d i s p l a y s a d i a l o g to choose a f o l d e r DESCRIPTION 11 } 12 function PickFolder : OleVariant ; { 15 c o n v e r t s mail to TIDMessage 16 by p a s s i n g only t h e h e a d e r f i e l d s and t h e body. 17 The o r i g i n a l mail i s not canged. copy o f t h e mail as IDMessage 19 } 20 function ConvertMail ( const Mail : OleVariant ) : TIdMessage ; { 23 g e t s t h e c u r r e n t s e l e c t e d and d i s p l a y e d f o l d e r DESCRIPTION 25 } 26 function GetActiveFolder : OleVariant ; { 29 r e t u r n s t h e standard i n f o l d e r DESCRIPTION 31 } 32 function GetDefaultInboxFolder : OleVariant ; {

46 7 INTEGRATION IN OUTLOOK EXPRESS r e t u r n s t h e standard f o l d e r o f d e l e t e d items ( mails ) DESCRIPTION 37 } 38 function GetDefaultDeletedItemsFolder : OleVariant ; { 41 r e t u r n s t h e standard j u n k m a i l f o l d e r. 42 I f t h i s f o l d e r does not e x i s t i t r e t u r n t h e s t a n d a r t f o l d e r o f 43 d e l e t e d items DESCRIPTION 45 } 46 function GetDefaultJunkFolder : OleVariant ; { 49 g e t s t h e ID o f a f o l d e r f o l d e r f o l d e r to g e t t h e ID from Id o f t h e f o l d e r 52 } 53 function GetFolderID ( f o l d e r : OleVariant ) : WideString ; { 56 g e t s a f o l d e r by i t s ID This method uses Redemption! EntryID f o l d e r I D f o l d e r 60 } 61 function GetFolderFromID ( EntryID : WideString ) : OleVariant ; { 64 g e t s t h e f i r s t mail in t h e g i v e n f o l d e r f o l d e r f o l d e r to g e t t h e mail from r e s u l t f i r s t mail from f o l d e r 67 } 68 function GetFirstMail ( f o l d e r : OleVariant ) : OleVariant ; // use t h e s e two methods to i t e r a d e through mails in a f o l d e r { 73 g e t s t h e next mail from t h e g i v e n f o l d e r. Attention, 74 b e f o r e you c a l l t h i s method f o r t h e f i r s t time f o r 75 a f o d l e r GetFirstMail has p r i v i o u s l y to be c a l l e d.

47 7 INTEGRATION IN OUTLOOK EXPRESS 41 f o l d e r f o l d e r to g e t t h e mail from mail 78 } 79 function GetNextMail ( f o l d e r : OleVariant ) : O l e v a r i a n t ; { 82 g e t t h e s t a t u s i f a mail i s read or unread mail mail to be examined f o r read s t a t u s t r u e i f mail i s read, f a l s e i f i t i s unread 85 } 86 function IsMailRead ( mail : OleVariant ) : boolean ; { 89 s e t s a mail as read or unread mail t h e mail to be marked as read read i s t r u e t h e mail w i l l be marked as read, 92 i f f a l s e as unread 93 } 94 procedure SetMailRead ( mail : OleVariant ; read : boolean ) ; { 97 r e t u r n s t h e complete header o f a mail by a c c e s s i n g i t s h e a d e r f i e l s. complete header o f t h i s mail 99 } 100 function GetMailHeader ( const Mail : OleVariant ) : WideString ; { 103 S e t s a new header to a mail. amail mail Header new mail header 106 } 107 procedure SetMailHeader ( var Mail : OleVariant ; Header : WideString ) ; { 110 D e t e c t s i f t h e header o f a mail i s mepty. 111 I n t r a n e t Mails d e l i v e r e d by 112 MS Excange Server have empty headers t r u e i f t h e header i s empty 114 } 115 function EmptyHeader ( const Mail : OleVariant ) : boolean ; 116

48 7 INTEGRATION IN OUTLOOK EXPRESS { 118 g e t a mail by i t s ID mailid Id o f t h e mail be r e t r i e v e d r e s u l t mail b e l o n g i n g to t h e ID 121 } 122 function GetMailFromID ( MailID : WideString ) : OleVariant ; { 125 g e t s t h e ID o f a mail mail mail to g e t t h e ID from r e s u l t Id o f t h e mail 128 } 129 function GetMailID ( Mail : OleVariant ) : WideString ; { 132 g e t s t h e s u b j e c t o f a mail mail mail to g e t t h e s u b j e c t from r e s u l t s u b j e c t o f t h e mail 135 } 136 function GetMailSubject ( Mail : OleVariant ) : WideString ; { 139 s e t s t h e s u b j e c t o f a mail mail t h e mail to s e t t h e new s u b j e c t f o r s u b j e c t t h e s t r i n g to s e t as new s u b j e c t 142 } 143 procedure S e t M a i l S u b j e c t ( var Mail : OleVariant ; s u b j e c t : Widestring ) ; { 146 t e s t i f an Item i s a mail or not mail mail to be t e s t e d r e s u l t t r u e i f Item i s a mail 149 } 150 function IsMailItem ( Mail : OleVariant ) : boolean ; Listing 10: Die Schnittstelle des Plugin zu den Programmen

49 7 INTEGRATION IN OUTLOOK EXPRESS 43 Nachfolgend ist das Listing 11 zu sehen. In diesem sind unter anderem auch Methoden beschrieben, die auf s zugreifen. Jedoch dienen diese Methoden ausschließlich dem Zugriff auf -Adressen für die Blackbeziehungsweise Whitelist. 1 { 2 g e t s t h e e m a i l a d d r s s e s from t h e c u r r e n t addressbook r e s u l t l i s t o f m a i l a d d r e s s e s 4 } 5 function Get AddressesFromContacts : TStrings ; 6 7 { 8 g e t s t h e sender o f a mail mail t h e mail to g e t sender from r e s u l t m a i l a d d r e s s o f t h e sender 11 } 12 function GetSender ( const mail : OleVariant ) : WideString ; { 15 g e t s t h e r e c i p i e n t s o f a mail mail mail to g e t t h e r e c i p i e n t s from r e s u l t l i s t o f m a i l a d d r e s s e s o f t h e r e c i p i e n t s 18 } 19 function G e t R e c i p i e n t s ( const mail : OleVariant ) : TStrings ; { 22 g e t s a s t r i n g l i s t o f t h e c u r r e n t s e l e c t e d mails 24 } 25 function G e t S e l e c t e d M a i l s : T S t r i n g L i s t ; { 28 g e t s t h e user p r o p e r t y from t h e mail Mail mail to g e t t h e p r o p e r t y from Name name o f t h e u s e r p r o p e r t y to g e t p r o p e r t y c o n t e n t 32 } 33 function GetUserProperty ( const Mail : OleVariant ; Name: String ) : String ; { 36 s e t s a user p r o p e r t y to t h e mail Mail mail to s e t t h e p r o p e r t y to

50 7 INTEGRATION IN OUTLOOK EXPRESS 44 Name name o f t h e u s e r p r o p e r t y contant t h e c o n t e n t to s e t as p r o p e r t y 40 } 41 procedure SetUserProperty ( const Mail : OleVariant ; Name: String ; 42 Content : String ) ; /// g e t t e r f o r OnNewMailEvent 45 function GetOnNewMail : TPlugMailEvent ; 46 /// s e t t e r f o r OnNewMailEvent 47 procedure SetOnNewMail ( event : TPlugMailEvent ) ; 48 /// g e t t e r f o r OnSendMailEvent 49 function GetOnSendMail : TPlugMailEvent ; 50 /// s e t t e r f o r OnSenDMailEvent 51 procedure SetOnSendMail ( event : TPlugMailEvent ) ; { 54 r e t u r n s t h e o b j e c t r e p r e s e n t i n g t h e h o s t a p p l o c a t i o n. API connection o b j e c t 56 } 57 function GetApplication : IDispatch ; /// c a l l s GetApplication 60 property A p p l i c a t i o n : IDispatch read GetApplication ; /// Accesses t h e s e n t mail event o f t h e h o s t a p p l i c a t i o n. 64 property OnSendMail : TPlugMailEvent read GetOnSendMail 65 write SetOnSendMail ; /// Accesses t h e new mail event o f t h e h o s t a p p l i c a t i o n. 68 property OnNewMail : TPlugMailEvent read GetOnNewMail 69 write SetOnNewMail ; /// g e t t h e h o s t a p p l i c a t i o n t y p e 72 property HostApp : THostApplication read GetHostApp ; 73 end ; { 76 checks in a simple way i f a m a i l address i s v a l i d addr m a i l a d d r e s s to be checked r e s u l t t r u e i f address i s assumed to be v a l i d

51 7 INTEGRATION IN OUTLOOK EXPRESS } 80 function I s V a l i d A d d r e s s ( addr : WideString ) : boolean ; implementation function I s V a l i d A d d r e s s ( addr : WideString ) : boolean ; 85 begin 86 r e s u l t addr ) ) and (0<>Pos(., addr ) ) and (6<length ( addr ) ) ) ; 87 end ; 88 end. Listing 11: Die Schnittstelle des Plugin zu den Programmen Das Füllen der Methoden erwies sich zunächst durch die Benutzung von OEAPI als ungewohnt. Die folgenden Listings 12 und 13 dienen als typische Repräsentanten der Nutzungsweise von OEAPI. Im Listing 12 (Zeile 16) ist zu sehen, dass alle verwendeten Methoden von OEAPI nie einen erwarteten Rückgabewert besitzen. Die Methoden geben immer ein Handle 24 des Objektes zurück auf dem die Methoden aufgerufen werden. So sind alle erwünschten Rückgabewerte als out-variablen zu übergeben (in Zeile 16 der SubButton). Da viele Methoden untypisiert sein müssen, wird OleVariant 25 verwendet. Als Beispiel dient hier die Methode AddButton, die diesen Typ als Rückgabewert besitzt und so der Integer Wert des Pointers auf den Button zurück gegeben werden muss(siehe Listing 12 Zeile 20,27). 1 function TOEUtils. AddButton ( parent : OleVariant ; ClickEvent : TNotifyEvent ; 2 ButtonName, ButtonImageResourceName : String ; 3 s e p a r a t e A f t e r : boolean ) : OleVariant ; 4 var tmpbut, tmpsep : IOEButton ; 5 But, sep : TOEButton ; 6 bmp : TBitmap ; 7 t m p f i l e : TFilename ; 8 begin 9 bmp:=tbitmap. Create ; 10 try 11 t m p f i l e :=GetTempFilename ( JAMSA +IntToStr ( ftmpbmpfileindex)+. bmp ) ; 12 bmp. LoadFromResourceName ( HInstance, ButtonImageResourceName ) ; 13 bmp. SaveToFile ( t m p f i l e ) ; 24 Ein Handle ist ein Zeiger auf ein Windows Objekt 25 OleVariant ist ein Typ, der einen Zeiger in Form einer Integer Zahl enthält

52 7 INTEGRATION IN OUTLOOK EXPRESS ftmpbmplist. Add( t m p f i l e ) ; 15 try // t r y to c r e a t e b u t t o n as s u b b u t t o n 16 but :=TOEButton ( P o i n t e r ( I n t e g e r ( parent ) ) ) ; 17 but. CreateSubButton ( ButtonName, t m p f i l e,, tmpbut ) ; 18 But:= TOEButton. Create ( n i l ) ; 19 But. OnClick := ClickEvent ; 20 But. ConnectTo ( tmpbut ) ; 21 r e s u l t := I n t e g e r ( P o i n t e r ( But ) ) ; 22 f B u t t o n l i s t. Add( but ) ; 23 except // i f parent i s no b u t t o n c r e a t e as t o o l b a r b u t t o n 24 tmpbut := foetoolbar. CreateButton ( ButtonName, t m p f i l e, ) ; 25 But:= TOEButton. Create ( n i l ) ; 26 But. OnClick := ClickEvent ; 27 But. ConnectTo ( tmpbut ) ; 28 r e s u l t := I n t e g e r ( P o i n t e r ( But ) ) ; 29 f B u t t o n l i s t. Add( but ) ; 30 end ; // e x c e p t 31 f i n a l l y 32 FreeAndNil (bmp ) ; 33 Inc ( ftmpbmpfileindex ) ; 34 end ; // f i n a l l y 35 end ; Listing 12: Die Methode AddButton aus OutlookExpressUtils Weil es leider nicht zum Funktionsumfang von OEAPI gehört, Zugriff auf das Adressbuch von Outlook Express zu geben, ist NKTWAB zum Einsatz gekommen. NKTWAB ist ebenfalls eine DLL von Nektra [Nkt]. Diese erlaubt den Zugriff auf das Windows Adressbuch, welches von Outlook Express genutzt wird. Die Benutzung dieser DLL ist ähnlich der von OEAPI. Hier gibt es wiederum keine erwarteten Rückgabewerte, sondern die out-variablen, die als Parameter übergeben werden (siehe Listing 13 Zeile 9). 1 function TOEUtils. Get AddressesFromContacts : TStrings ; 2 var wab :TNKTWAB; 3 c o n t a c t : NKTWABContact ; 4 i, count : i n t e g e r ; 5 addr : String ; 6 begin 7 wab:=tnktwab. Create ( n i l ) ;

53 7 INTEGRATION IN OUTLOOK EXPRESS 47 8 r e s u l t := T S t r i n g L i s t. Create ; 9 wab. Count ( count ) ; 10 for i :=1 to count do begin 11 wab. GetItem ( i, c o n t a c t ) ; 12 addr:= ; 13 addr:= String ( c o n t a c t. 1Address ) ; 14 i f I s V a l i d A d d r e s s ( addr ) then r e s u l t. Add( addr ) ; 15 addr:= c o n t a c t. 2Address ; 16 i f I s V a l i d A d d r e s s ( addr ) then r e s u l t. Add( addr ) ; 17 addr:= c o n t a c t. 3Address ; 18 i f I s V a l i d A d d r e s s ( addr ) then r e s u l t. Add( addr ) ; 19 end ; 20 end ; Listing 13: Die Methode Get AddressesFromContacts aus OutlookExpressUtils

54 7 INTEGRATION IN OUTLOOK EXPRESS 48 Abbildung 9: Die Klassen im Überblick

Anti-Spam-Tools. Gliederung. Stefan Appenburg, René Marx, Michael Günther WS 2004/05

Anti-Spam-Tools. Gliederung. Stefan Appenburg, René Marx, Michael Günther WS 2004/05 Anti-Spam-Tools Stefan Appenburg, René Marx, Michael Günther WS 2004/05 1 Einleitung Anforderungen Spamcop Spampal Hidemail Outlook-Filter Gliederung 2 Einleitung Weltweit bieten mehr als 70 Hersteller

Mehr

p^db=`oj===pìééçêíáåñçêã~íáçå=

p^db=`oj===pìééçêíáåñçêã~íáçå= p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

(c) 2003 by Lars Witter

(c) 2003 by Lars Witter Filtern von Spam-Mails direkt auf dem Server Von Lars Witter (Vorstand Mabi) Marburg, den 18.08.2003 Seit etwa 3 Monaten betreiben wir auf den Mabi-Mail-Servern eine Spamerkennungssoftware, der eingehende

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

Version 0.3. Installation von MinGW und Eclipse CDT Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.

Mehr

Kurs-Dokumentation. Zentrum für Informatik ZFI AG. Anti-Spam mit SpamAssassin (LSAS-0412) -IT Ausbildung nach Mass

Kurs-Dokumentation. Zentrum für Informatik ZFI AG. Anti-Spam mit SpamAssassin (LSAS-0412) -IT Ausbildung nach Mass Zentrum für Informatik - Anti-Spam mit SpamAssassin (LSAS-0412) -IT... 1/6 Kurs-Dokumentation Zentrum für Informatik ZFI AG Anti-Spam mit SpamAssassin (LSAS-0412) -IT Ausbildung nach Mass http://www.zfi.ch/lsas-0412

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

PowerMover. Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende E-Mails schneller verwaltet werden. Vasquez Systemlösungen

PowerMover. Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende E-Mails schneller verwaltet werden. Vasquez Systemlösungen PowerMover Eine Zusatz-Anwendung für Outlook-PowerUser. Damit können eingehende E-Mails schneller verwaltet werden. PowerMover Seite 1/7 Inhaltsverzeichnis: 1 Beschreibung... 3 2 Funktionalität... 4 2.1

Mehr

telemail 2.5 Spamfilter Benutzerhandbuch Anwendung des telemed Spamschutzes Erstellt: 28.02.10/BOL Freigabe: 28.02.10/ASU Bestimmung: Kunde

telemail 2.5 Spamfilter Benutzerhandbuch Anwendung des telemed Spamschutzes Erstellt: 28.02.10/BOL Freigabe: 28.02.10/ASU Bestimmung: Kunde telemail 2.5 Spamfilter Anwendung des telemed Spamschutzes Benutzerhandbuch Rev.: 02 Seite 1 von 12 1) Prinzip des telemed-spamfilters... 3 2) Neue Funktionen im telemail... 4 Aktivieren des Spamfilters

Mehr

Im folgenden zeigen wir Ihnen in wenigen Schritten, wie dies funktioniert.

Im folgenden zeigen wir Ihnen in wenigen Schritten, wie dies funktioniert. OPTICOM WEB.MAIL Sehr geehrte Kunden, damit Sie mit opticom, Ihrem Internet Service Provider, auch weiterhin in den Punkten Benutzerfreundlichkeit, Aktualität und Sicherheit auf dem neusten Stand sind,

Mehr

Email Virus- und Spamfilter. Sebastian Marius Kirsch skirsch@moebius.inka.de

Email Virus- und Spamfilter. Sebastian Marius Kirsch skirsch@moebius.inka.de Email Virus- und Spamfilter Sebastian Marius Kirsch skirsch@moebius.inka.de Spam, lovely spam... Statistik am MPI ueber die letzten 2.75 Monate Von 178000 Emails wurden 37000 als Spam gewertet etwa 20%

Mehr

Installation Anleitung für JTheseus und MS SQL Server 2000

Installation Anleitung für JTheseus und MS SQL Server 2000 Installation Anleitung für JTheseus und MS SQL Server 2000 Inhaltsverzeichnis 1 Installation der Datenbank 3 1.1 Erstellen der Datenbank 3 1.2 Tabellen und Minimal Daten einlesen 4 1.3 Benutzer JTheseus

Mehr

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de

Webmail. Anleitung für Ihr online E-Mail-Postfach. http://webmail.willytel.de Webmail Anleitung für Ihr online E-Mail-Postfach http://webmail.willytel.de Inhalt: Inhalt:... 2 Übersicht:... 3 Menü:... 4 E-Mail:... 4 Funktionen:... 5 Auf neue Nachrichten überprüfen... 5 Neue Nachricht

Mehr

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates

RIWA NetUpdater Tool für automatische Daten- und Softwareupdates RIWA NetUpdater Tool für automatische Daten- und Softwareupdates Grundlegendes... 1 Ausführbare Dateien und Betriebsmodi... 2 netupdater.exe... 2 netstart.exe... 2 netconfig.exe... 2 nethash.exe... 2 Verzeichnisse...

Mehr

Spamfilter Einrichtung

Spamfilter Einrichtung Spamfilter Einrichtung Melden Sie sich in Ihrem Hosting Control Panel an. Klicken Sie in der Navigation links, im Menu "E-Mail", auf den Unterpunkt "Spam Filter". Bei dem Postfach, dessen Einstellungen

Mehr

Wenn Sie eine Mail haben die in Ihren Augen kein SPAM. asspnotspam@dachau.net

Wenn Sie eine Mail haben die in Ihren Augen kein SPAM. asspnotspam@dachau.net Wissenswertes über SPAM Unter dem Begriff Spam versteht man ungewünschte Werbenachrichten, die per E-Mail versendet werden. Leider ist es inzwischen so, dass auf eine gewünschte Nachricht, oft zehn oder

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

Anleitung. E-Mail Spam Filter mit Quarantäne Eine kurze Funktionsübersicht. Internet- & Netzwerk-Services

Anleitung. E-Mail Spam Filter mit Quarantäne Eine kurze Funktionsübersicht. Internet- & Netzwerk-Services Anleitung E-Mail Spam Filter mit Quarantäne Internet- & Netzwerk-Services 1. Anmeldung Die Anmeldung erfolgt über: http://mailadmin.tbits.net Jeder Benutzer meldet sich mit der E-Mail-Adresse als Benutzername

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

Effizienz im Vor-Ort-Service

Effizienz im Vor-Ort-Service Installation: Anleitung SatWork Integrierte Auftragsabwicklung & -Disposition Februar 2012 Disposition & Auftragsabwicklung Effizienz im Vor-Ort-Service Disclaimer Vertraulichkeit Der Inhalt dieses Dokuments

Mehr

Praktikum Internetprotokolle - POP3

Praktikum Internetprotokolle - POP3 Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik/Rechnernetze 19. Mai 2008 1 Aufgabenstellung Praktikum

Mehr

RZ Benutzerversammlung

RZ Benutzerversammlung Benutzerversammlung 29.April 2004 Der GSF Spamfilter Reinhard Streubel Rechenzentrum Übersicht Einleitung: SPAM was ist das? Rechtliche Probleme Vorstellung des Spamfilters der GSF Konfiguration des Spamfilters

Mehr

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

CRM114 als SpamAssassin-Plugin. Martin Schütte

CRM114 als SpamAssassin-Plugin. Martin Schütte CRM114 als SpamAssassin-Plugin Martin Schütte Inhalt CRM114 Installation Benutzung SpamAssassin-Plugin Einstellungen TODOs Amavis Und nochwas CRM114 Filtersprache zur Text-Klassifizierung verschiedene

Mehr

Handbuch zu AS Connect für Outlook

Handbuch zu AS Connect für Outlook Handbuch zu AS Connect für Outlook AS Connect für Outlook ist die schnelle, einfache Kommunikation zwischen Microsoft Outlook und der AS Datenbank LEISTUNG am BAU. AS Connect für Outlook Stand: 02.04.2013

Mehr

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 In diesem Dokument wird dargelegt, wie das SEPPmail Outlook Add-in funktioniert, und welche Einstellungen vorgenommen werden können. Seite 2 Inhalt

Mehr

Es gibt aber weitere Möglichkeiten, die den Zugriff auf die individuell wichtigsten Internetseiten

Es gibt aber weitere Möglichkeiten, die den Zugriff auf die individuell wichtigsten Internetseiten Thema: Favoriten nutzen Seite 8 3 INTERNET PRAXIS 3.1 Favoriten in der Taskleiste Es gibt aber weitere Möglichkeiten, die den Zugriff auf die individuell wichtigsten seiten beschleunigen. Links in der

Mehr

Einrichten eines IMAP Kontos unter Outlook Express

Einrichten eines IMAP Kontos unter Outlook Express Einrichten eines IMAP Kontos unter Outlook Express Klicken Sie auf Start->Programme->Outlook Express Wählen Sie oben in der Leiste den Menüpunkt Extras Klicken Sie dann bitte auf Konten. Nun erscheint

Mehr

Programmentwicklung ohne BlueJ

Programmentwicklung ohne BlueJ Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie

Mehr

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz

Whitepaper. Produkt: combit List & Label 16. List & Label Windows Azure. combit GmbH Untere Laube 30 78462 Konstanz combit GmbH Untere Laube 30 78462 Konstanz Whitepaper Produkt: combit List & Label 16 List & Label Windows Azure List & Label Windows Azure - 2 - Inhalt Softwarevoraussetzungen 3 Schritt 1: Neues Projekt

Mehr

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen

Outlook - CommuniGate Pro Schnittstelle installieren. Outlook - Elemente freigeben. Outlook - Freigegebene Elemente öffnen Microsoft Outlook 1 Nutzung der Groupware mit Microsoft Outlook 1.1 Outlook - CommuniGate Pro Schnittstelle installieren 4 1.2 Outlook - Elemente freigeben 11 1.3 Outlook - Freigegebene Elemente öffnen

Mehr

telemail 2.5 Benutzerhandbuch

telemail 2.5 Benutzerhandbuch telemail 2.5 Benutzerhandbuch Seite 1 von 26 1. telemail-navigation 1.1 Datei 1.1.1 Beenden telemail wird beendet. 1.2 Bearbeiten 1.2.1 Alles markieren Alle E-Mails in dem aktuellen Ordner werden markiert.

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Das Brennercom Webmail

Das Brennercom Webmail Das Brennercom Webmail Webmail-Zugang Das Webmail Brennercom ermöglicht Ihnen einen weltweiten Zugriff auf Ihre E-Mails. Um in Ihre Webmail einzusteigen, öffnen Sie bitte unsere Startseite www.brennercom.it

Mehr

Alice E-Mail & More Anleitung. E-Mail.

Alice E-Mail & More Anleitung. E-Mail. Alice E-Mail & More Anleitung. E-Mail. E-Mail & More E-Mail. Ihr persönliches Outlook im Web. Die neuen E-Mail & More Services von Alice machen Ihr Web-Erlebnis richtig komfortabel. Das gilt besonders

Mehr

Proxmox Mail Gateway Spam Quarantäne Benutzerhandbuch

Proxmox Mail Gateway Spam Quarantäne Benutzerhandbuch Proxmox Mail Gateway Spam Quarantäne Benutzerhandbuch 12/20/2007 SpamQuarantine_Benutzerhandbuch-V1.1.doc Proxmox Server Solutions GmbH reserves the right to make changes to this document and to the products

Mehr

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test

Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test Scripting Framework PowerShell Toolkit Quick-Install a Workplace for Packaging and Test Windows Client Management AG Alte Haslenstrasse 5 CH-9053 Teufen wincm.ch 1 Quick Install - Scripting Framework Workplace...3

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

Mehr

MGE Datenanbindung in GeoMedia

MGE Datenanbindung in GeoMedia TIPPS & TRICKS MGE Datenanbindung in GeoMedia 10. September 2002 / AHU INTERGRAPH (Schweiz) AG Neumattstrasse 24, CH 8953 Dietikon Tel: 043 322 46 46 Fax: 043 322 46 10 HOTLINE: Telefon: 043 322 46 00

Mehr

Handbuch organice Business Intelligence

Handbuch organice Business Intelligence Handbuch organice Business Intelligence Stand: Februar 2014, Version 1.1.0.1 2001-2014 organice Software GmbH Grunewaldstr. 22, 12165 Berlin Alle Rechte vorbehalten. Die Software und dieses Handbuch dürfen

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Virtualisierung mit Virtualbox

Virtualisierung mit Virtualbox Virtualisierung mit Virtualbox Dies ist kein Howto im herkömmlichen Sinne. Genaue Anleitungen für Virtualbox gibt es im Intenet genug. Zu empfehlen ist auch das jeweils aktuelle Handbuch von Virtualbox

Mehr

Einrichtung von Outlook 2000 und Import alter Emails

Einrichtung von Outlook 2000 und Import alter Emails Einrichtung von Outlook 2000 und Import alter Emails Voraussetzung: Sie haben vorher mit Outlook Express oder Outlook gearbeitet. Sie benutzen die Computer in den Computerpools der FH. Schritte: 1. Outlook

Mehr

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder

BS-Anzeigen 3. Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder BS-Anzeigen 3 Handbuch für das Zusatzmodul modazs Import von Anzeigen aus der Anzeigenschleuder Inhaltsverzeichnis Anwendungsbereich... 3 Betroffene Softwareversion... 3 Anzeigenschleuder.com... 3 Anmeldung...

Mehr

Autoresponder Unlimited 2.0

Autoresponder Unlimited 2.0 Autoresponder Unlimited 2.0 Anleitung zur Installation und Anwendung Copyright 2009 Wladimir Wendland www.wladimir-wendland.de Den Autoresponder Unlimited 2.0 installieren: 1) Software entpacken 2) Aktivierungsseite

Mehr

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr.

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr. Installation und Konfiguration Version 1.4 Stand 21.11.2013 TimeMachine Dokument: install.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor

Mehr

SMARTtill Server mit Manager

SMARTtill Server mit Manager SMARTtill Server mit Manager Benutzerhandbuch 2014 Das Handbuch bezieht sich auf die Standardeinstellungen bei einer Pilotinstallation. Bei neuen Partnernprojekten sind Anpassungen zwingend notwendig und

Mehr

TAFS_SEPA = class(tcomponent)

TAFS_SEPA = class(tcomponent) TAFS_SEPA = class(tcomponent) Funktionsumfang: - SEPA Überweisungen - SEPA Lastschriften (B2C) - SEPA Firmenlastschriften (B2B) erzeugen - IBAN Berechnungen aus Blz und Kontonummern (Länderübergreifend)

Mehr

Employment and Salary Verification in the Internet (PA-PA-US)

Employment and Salary Verification in the Internet (PA-PA-US) Employment and Salary Verification in the Internet (PA-PA-US) HELP.PYUS Release 4.6C Employment and Salary Verification in the Internet (PA-PA-US SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten.

Mehr

Was müssen Sie tun und beachten um unsere emails zu erhalten?

Was müssen Sie tun und beachten um unsere emails zu erhalten? Was müssen Sie tun und beachten um unsere emails zu erhalten? Punkt A - Eintragung / Anmeldung 1. Achten Sie darauf wenn Sie sich eintragen, daß Sie eine gültige E-mail Adresse verwenden. 2. Rufen Sie

Mehr

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2

ReadMe zur Installation der BRICKware for Windows, Version 6.1.2. ReadMe on Installing BRICKware for Windows, Version 6.1.2 ReadMe zur Installation der BRICKware for Windows, Version 6.1.2 Seiten 2-4 ReadMe on Installing BRICKware for Windows, Version 6.1.2 Pages 5/6 BRICKware for Windows ReadMe 1 1 BRICKware for Windows, Version

Mehr

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office 1. WINGAEB UND LINUX... 2 1.1. Systemvoraussetzungen... 2 1.2. Anmerkungen... 2 2. DIE INSTALLATION VON WINGAEB... 3 2.1.

Mehr

Service & Support. Wie ist der User Mode Process Dumper für Diagnosezwecke bei WinCC und PCS7 einzurichten? User Mode Process Dumper.

Service & Support. Wie ist der User Mode Process Dumper für Diagnosezwecke bei WinCC und PCS7 einzurichten? User Mode Process Dumper. Deckblatt Wie ist der User Mode Process Dumper für Diagnosezwecke bei WinCC und PCS7 einzurichten? User Mode Process Dumper FAQ April 2011 Service & Support Answers for industry. Fragestellung Dieser Beitrag

Mehr

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL?

Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Delphi DLL Tutorial Wie exportiere ich Komponenten aus einer DLL? Von Padmalcom (20.03.2009) www.jofre.de Nach dem Tutorial 1 von Leonardo M. Ramé 1 Ja, es geht wirklich! Im Internet sind tausende Forenbeinträge

Mehr

MySQL Queries on "Nmap Results"

MySQL Queries on Nmap Results MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar

Mehr

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2 Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2

Mehr

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs

SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs SmarTeam MS Outlook Integration Version 3.1 Beschreibung des Funktionsumfangs Der Aufbau der MS Outlook Integration orientiert sich stark an den SmarTeam Integrationen zu den MS Office Produkten, wobei

Mehr

Bedienungsanleitung Net4You NoSpam

Bedienungsanleitung Net4You NoSpam Bedienungsanleitungen für verschiedene Net4You Produkte Bedienungsanleitung Net4You NoSpam Aufgrund unserer langjährigen Erfahrung, wissen wir um viele Kundenprobleme in der Bedienung von IKT-Produkten.

Mehr

Beuth Hochschule JDK und TextPad WS14/15, S. 1

Beuth Hochschule JDK und TextPad WS14/15, S. 1 Beuth Hochschule JDK und TextPad WS14/15, S. 1 JDK und TextPad Der TextPad ist ein ziemlich ausgereifter Text-Editor, den man auch als einfache ("noch durchschaubare") Entwicklungsumgebung z.b. für Java-Programme

Mehr

Arbeiten mit Outlook Web Access und Outlook 2003

Arbeiten mit Outlook Web Access und Outlook 2003 Konfigurationsanleitung inode Hosted Exchange Arbeiten mit Outlook Web Access und Outlook 2003 Inhaltsverzeichnis 1. Grundlegendes...3 2. Online Administration...4 2.1 Mail Administration Einrichten des

Mehr

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3

ekey TOCAhome pc Software Inhaltsverzeichnis 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 Inhaltsverzeichnis Software ekey TOCAhome pc 1. ZWECK DIESES DOKUMENTS... 3 2. VERWENDUNGSHINWEIS ZUR SOFTWARE... 3 3. MONTAGE, INSTALLATION UND ERSTINBETRIEBNAHME... 3 4. VERSION... 3 Version 1.5 5. BENUTZEROBERFLÄCHE...

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI

Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI Whitepaper 428-01 VCI - Virtual CAN Interface Einbindung in LabWindows/CVI The expert for industrial and automotive communication IXXAT Hauptsitz Geschäftsbereich USA IXXAT Automation GmbH IXXAT Inc. Leibnizstr.

Mehr

:: Anleitung Migration Outlook 2010 ::

:: Anleitung Migration Outlook 2010 :: :: one source ag :: Technopark Luzern :: D4 Platz 4 :: CH-6039 Root-Längenbold LU :: :: Fon +41 41 451 01 11 :: Fax +41 41 451 01 09 :: info@one-source.ch :: www.one-source.ch :: :: Anleitung Migration

Mehr

Version/Datum: 1.5 13-Dezember-2006

Version/Datum: 1.5 13-Dezember-2006 TIC Antispam: Limitierung SMTP Inbound Kunde/Projekt: TIC The Internet Company AG Version/Datum: 1.5 13-Dezember-2006 Autor/Autoren: Aldo Britschgi aldo.britschgi@tic.ch i:\products\antispam antivirus\smtp

Mehr

PostgreSQL unter Debian Linux

PostgreSQL unter Debian Linux Einführung für PostgreSQL 7.4 unter Debian Linux (Stand 30.04.2008) von Moczon T. und Schönfeld A. Inhalt 1. Installation... 2 2. Anmelden als Benutzer postgres... 2 2.1 Anlegen eines neuen Benutzers...

Mehr

Apps-Entwicklung mit Eclipse

Apps-Entwicklung mit Eclipse JDroid mit Eclipse Seite 1 Apps-Entwicklung mit Eclipse Version 1.1, 30. April 2013 Vorbereitungen: 1. JDK installieren JDK SE neuste Version (64 oder 32 Bit) herunterladen und installieren (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

E-Mails zuordnen. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de

E-Mails zuordnen. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April 2015 www.cobra.de E-Mails zuordnen Copyright 2015 cobra computer s brainware GmbH cobra Adress PLUS, cobra CRM PLUS, cobra CRM PRO und cobra CRM BI sind eingetragene Warenzeichen der cobra computer s brainware GmbH. Andere

Mehr

B4 Viper Connector Service Installationsanleitung Stand: 2013-07- 16

B4 Viper Connector Service Installationsanleitung Stand: 2013-07- 16 B4 Viper Connector Service Installationsanleitung Stand: 2013-07- 16 Inhalt 1 ALLGEMEINES... 2 2 INSTALLATION DES VIPER CONNECTOR SERVICE... 3 3 EINRICHTUNG DES TEILNEHMERACCOUNTS... 5 4 INSTALLATION DES

Mehr

Installation WWS-LITE2-LAGER.EXE / WWS-LITE2-INVENTUR.EXE

Installation WWS-LITE2-LAGER.EXE / WWS-LITE2-INVENTUR.EXE Installation WWS-LITE2-LAGER.EXE / WWS-LITE2-INVENTUR.EXE Schritt für Schritt Anleitung! Tipp: Drucken Sie sich das Dokument aus und befolgen Sie jeden einzelnen Schritt. Dann wird es funktionieren! Inhaltsverzeichnis

Mehr

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API

Mehr

Dokumentation: MediaWizard Installationsanleitung

Dokumentation: MediaWizard Installationsanleitung Dokumentation: MediaWizard Installationsanleitung Inhaltsverzeichnis 1 Aufbau von MediaWizard... 2 2 Installation... 2 2.1 Bestehende Installation und Daten... 2 3 Übersicht, wo wird was installiert...

Mehr

So bringst du Prolog zum Laufen...

So bringst du Prolog zum Laufen... Diese Anleitung soll dir dabei helfen den freien Prolog-Interpreter SWI-Prolog zu installieren einen geeigneten Texteditor auszuwählen, mit dem du Prolog-Programme schreiben kannst das erste kleine Programm

Mehr

SPAM- und Junkmail-Behandlung an der KUG

SPAM- und Junkmail-Behandlung an der KUG SPAM- und Junkmail-Behandlung an der KUG 1. SPAM-Behandlung Erkannte SPAM-E-Mails werden nicht in Ihre Mailbox zugestellt. Sie erhalten anstatt dessen 1x täglich (gegen 7:00 Uhr) eine sogenannte Digest-E-Mail

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

E-Mail Zugang - kanu-meissen.de

E-Mail Zugang - kanu-meissen.de E-Mail Zugang - kanu-meissen.de Webmail: webmail.kanu-meissen.de Benutzername = E-Mail-Adresse Posteingangs-Server (*) IMAP: mail.kanu-meissen.de ; Port 993; Sicherheit SSL/TLS IMAP: mail.kanu-meissen.de

Mehr

KONFIGURATION DES MOZILLA E-MAIL CLIENT

KONFIGURATION DES MOZILLA E-MAIL CLIENT KONFIGURATION DES MOZILLA E-MAIL CLIENT Copyright 2004 by 2 ways - media & design, Inh. Lars Plessmann, Paulinenstr. 12, D-70178 Stuttgart. http://www.2-ways.de Lars.Plessmann@2-ways.de Der Mozilla Email

Mehr

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps: Copyright 2006 crm-now Versionsgeschichte Version 02 08.09.2006 Release Version Version 01 16.06.2005 crm-now c/o

Mehr

Ingenics Project Portal

Ingenics Project Portal Version: 00; Status: E Seite: 1/6 This document is drawn to show the functions of the project portal developed by Ingenics AG. To use the portal enter the following URL in your Browser: https://projectportal.ingenics.de

Mehr

Herzlich Willkommen zum. 8. Treffen. der LUG Datteln. Linux User Group Datteln. Spam Filter

Herzlich Willkommen zum. 8. Treffen. der LUG Datteln. Linux User Group Datteln. Spam Filter Herzlich Willkommen zum 8. Treffen der LUG Datteln 1 Heutiges Vortragsthema: Spam Filter 2 Was ist Spam? Spam bezeichnet E Mail Nachrichten, die unverlangt und massenhaft versendet werden Der Begriff Spam

Mehr

Erkennung & Behandlung von unerwünschter E Mail < SpamAssassin >

Erkennung & Behandlung von unerwünschter E Mail < SpamAssassin > Erkennung & Behandlung von unerwünschter E < > Torsten Gerdes gerdes @ tgi.de 24.03.2007 1 SPAM ist in vieler Munde. Doch wer weiß, + wo es herkommt? + wie es schmeckt? 24.03.2007 2 SPAM ist in vieler

Mehr

Outlook-Umstellung. Inhalt. Änderungen an diesem Dokument

Outlook-Umstellung. Inhalt. Änderungen an diesem Dokument Outlook-Umstellung (im Rahmen der Exchange-Server-Umstellung am 15.-17.04.2005) Inhalt Outlook-Umstellung... 1 Inhalt... 1 Änderungen an diesem Dokument... 1 Einleitung... 2 Hilfe... 2 Automatische Umstellung...

Mehr

Covum Mailsignatur für Microsoft Outlook

Covum Mailsignatur für Microsoft Outlook Benutzerdokumentation: Covum Mailsignatur für Microsoft Outlook Inhaltsverzeichnis 1. Was macht das Programm? Allgemeine Beschreibung... 2 1.1. Welche Voraussetzungen müssen erfüllt sein?... 2 1.2. Welche

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

7 Plugins einbinden. 7.1 Beispiel»Die Taschenlampe«

7 Plugins einbinden. 7.1 Beispiel»Die Taschenlampe« 201 PhoneGap bringt einen standardisierten Hardwarezugriff für Smartphones mit. Aber was passiert, wenn Sie mehr wollen: Wenn Sie eine Hardware per Bluetooth ansprechen wollen oder Features der jeweiligen

Mehr

Themenabend 24.09.2012

Themenabend 24.09.2012 Themenabend 24.09.2012 SPAM ist ursprünglich ein Markenname für Dosenfleisch, bereits 1936 entstanden aus SPiced ham, fälschlich auch Spiced Pork And Meat/hAModer Specially Prepared Assorted Meatgenannt.

Mehr

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de

SWN-NetT Webmail. Benutzerhandbuch für SWN-NetT Webmail. SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de SWN-NetT Webmail Benutzerhandbuch für SWN-NetT Webmail SWN-NetT Webmail finden Sie unter: http://webmail.swn-nett.de Übersicht Einstieg... 2 Menü... 2 E-Mail... 3 Funktionen... 4 Auf eine neue Nachricht

Mehr

Emailprogramm HOWTO. zum Einrichten von Emailkonten in Outlook Express, Netscape Messenger, Eudora Email und Pegasus Mail

Emailprogramm HOWTO. zum Einrichten von Emailkonten in Outlook Express, Netscape Messenger, Eudora Email und Pegasus Mail Emailprogramm HOWTO zum Einrichten von Emailkonten in Outlook Express, Netscape Messenger, Eudora Email und Pegasus Mail Copyright 2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnung

Mehr

Beschreibung Mobile Office

Beschreibung Mobile Office Beschreibung Mobile Office 1. Internet / Netz Zugriff Für die Benutzung von Mobile Office ist lediglich eine Internet oder Corporate Netz Verbindung erforderlich. Nach der Verbindungsherstellung kann über

Mehr

HiOPC Hirschmann Netzmanagement. Anforderungsformular für eine Lizenz. Order form for a license

HiOPC Hirschmann Netzmanagement. Anforderungsformular für eine Lizenz. Order form for a license HiOPC Hirschmann Netzmanagement Anforderungsformular für eine Lizenz Order form for a license Anforderungsformular für eine Lizenz Vielen Dank für Ihr Interesse an HiOPC, dem SNMP/OPC Gateway von Hirschmann

Mehr

Mit KI gegen SPAM. Proseminar Künstliche Intelligenz

Mit KI gegen SPAM. Proseminar Künstliche Intelligenz Mit KI gegen SPAM Proseminar Künstliche Intelligenz SS 2006 Florian Laib Ausblick Was ist SPAM? Warum SPAM-Filter? Naive Bayes-Verfahren Fallbasiertes Schließen Fallbasierte Filter TiMBL Vergleich der

Mehr

Kontakte mit MS-Outlook als Mail versenden Inhalt

Kontakte mit MS-Outlook als Mail versenden Inhalt Kontakte mit MS-Outlook als Mail versenden Inhalt 1 Einleitung...1 2 Einzelne Kontakte und Verteilerlisten exportieren und importieren...1 2.1 Zwischen Outlook-Anwender...1 2.1.1 Senden - Exportieren...1

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr