Hinweis

Dieses Dokument ist nicht mehr aktuell. Es sind einige Veränderungen am Quellcode durchgeführt worden, die ich noch nicht berücksichtigt habe. Ich werde eine neue Version planen, sobald die Entwicklung der Forensoftware wieder weitergeht, da zum korrekten Betrieb unter Linux einige Änderungen notwendig sind. Für den nächsten Entwurf plane ich außerdem noch, Installationshinweis auch für FreeBSD mit einzubinden, so dass dieses Dokument als generelle Installationsanleitung zu betrachten ist. Wer sich trotzdem schon jetzt an diesem Forum versuchen will, der sollte mich mal kurz E-Mail anschreiben, dann kann ich der/demjenigen einige Tipps geben.

Was die Entwicklung des Forums betrifft mögen sich alle Interessierten bitte an E-Mail Christian Kruse wenden, der die Software geschrieben hat. Unter deutschsprachige Seite http://cforum.teamone.de/ sind weitere Informationen verfügbar.

Dieses Dokument ist im Moment nicht Teil von SELFHTML. Es ist ein Entwurf für ein Dokument, das es eventuell später mal werden kann.

Ich habe außerdem noch einen Patch für die Einbindung von Links und Hinweisen auf die FAQ neben das Postingformular geschrieben. Diesen kann man deutschsprachige Seite hier finden.

SELFHTML

SELFHTML Forum
Doku: Download, Installation und Konfiguration unter Debian 3.0

Informationsseite

Vorraussetzungen für die Installation:

weiter unten Vorraussetzungen für die Installation
weiter unten Perl-Module
weiter unten C-Bibliotheken
weiter unten Benötigte Compilertools

Download & Compilation:

weiter unten Download & Compilation
weiter unten Download über CVS
weiter unten Autoconf
weiter unten Compilieren

Installation:

weiter unten Installation
weiter unten Erstellen der Verzeichnisse, Kopieren der Dateien
weiter unten Erstellen des locales

Konfiguration:

weiter unten Konfiguration
weiter unten fo_default.conf
weiter unten fo_arcview.conf
weiter unten fo_post.conf
weiter unten fo_userconf.conf
weiter unten fo_view.conf
weiter unten Benutzerauthentifizierung einrichten

nach unten 

Vorraussetzungen für die Installation

nach obennach unten 

Benötigte Perl-Module

Standard-Perl-Bibliotheken
CGI, Storable, POSIX und File::Path müssten ausreichen. Jeder Mensch mit einer gesunden Perl-Installation braucht sich darum natürlich nicht zu sorgen.
Unicode::String
Unter Debian findet sich das unter dem Paketnamen libunicode-string-perl, unter SuSE heißt das Paket perl-Unicode-String. Zum Herunterladen: englischsprachige Seite http://search.cpan.org/dist/Unicode-String/.
Unicode::Map
Unter Debian findet sich das unter dem Paketnamen libunicode-map-perl, unter Redhat (vmtl. auch SuSE) heißt es perl-Unicode-Map. Zum Herunterladen: englischsprachige Seite http://search.cpan.org/dist/Unicode-Map/.
Unicode::Map8
Unter Debian heißt das Paket libunicode-map8-perl. Zum Herunterladen: englischsprachige Seite http://search.cpan.org/dist/Unicode-Map8/.
JCode
Es gibt AFAIK keine Pakete dafür, jedoch kann man sich das unter englischsprachige Seite http://openlab.ring.gr.jp/Jcode/ herunterladen und installieren. (Kenntnisse der manuellen Installation von Perl-Modulen vorrausgesetzt)
Unicode::MapUTF8
Das findet sich unter englischsprachige Seite http://www.nihongo.org/snowhare/utilities/modules/unicode-maputf8/ und muss auch manuell installiert werden.
HTML::Entities
Das gibt's wieder als Debian-Paket, und zwar libhtml-parser-perl. Zum Herunterladen: englischsprachige Seite http://search.cpan.org/author/GAAS/HTML-Parser-3.26/.
HTML::Libtemplate
Eine Template-Bibliothek von Christian Kruse, der auch das Forum hier programmiert hat. Diese gibt's unter englischsprachige Seite http://sourceforge.net/projects/libtemplate/. Bitte zuerst die C-Bibliothek installieren, aber nur mit Version 1.6 der C-Bibliothek funktioniert das Perl-Modul richtig.
Hinweis: Beim Perl-Modul muss das Makefile nicht über perl Makefile.PL sondern über perl Makefile.PL PREFIX=/usr/local erzeugt werden, sofern man die libtemplate nach /usr/local installiert hat. Wenn man sie ganz woanders hin hat, dann muss man PREFIX noch anpassen.
DBI, DBD::irgendeine_Datenbank
Das Standarddatenbankinterface von Perl. Zusätzlich sollte auch noch der DBD-Treiber der Datenbank, die man für die HTTP-Authentifizerung der registrierten User verwenden will, vorhanden sein.
XML::LibXML
Dieses Modul wird von dem GDOME-Modul benötigt. Unter Debian steckt das im Paket libxml-libxml-perl. Zum Herunterladen: englischsprachige Seite http://search.cpan.org/author/PHISH/XML-LibXML-1.54_3/.
XML::GDOME
Dieses Modul stellt den eigentlichen XML-Parser dar, der verwendet wird. Er benötigt zusätzlich die GDOME-Bibliothek. (s.u.) Das Modul gibt es unter englischsprachige Seite http://tjmather.com/xml-gdome/
nach obennach unten 

Benötigte C-Bibliotheken

Hinweis: Da sich neue Bibliotheken (korrekterweise) nach /usr/local/lib installieren, muss man sicherstellen, dass /usr/local/lib in der /etc/ld.so.conf drinnensteht. Dann erspart man sich einige Probleme.

gdome2
Ich empfehle, die Bibliothek von englischsprachige Seite http://gdome2.cs.unibo.it/#downloads runterzuladen, damit man auch wirklich eine Bibliothek hat, die zum Perl-Modul passt. Vorher eventuelle Pakete aus dem System entfernen.
cgi-lib
Unter englischsprachige Seite http://www.geocities.com/SiliconValley/Vista/6493/projects/cgi-lib.html kann man diese Bibliothek herunterladen. Dann einfach mit make und make install kompilieren. Daraufhin sollte man aber die Datei cgi-lib.a, die in /usr/local/lib steckt, nach libcgi.a umbenennen.
iconv
Diese Bibliothek wird auch noch gebraucht, jedoch ist diese anscheinend seltsamerweise schon in die libc6 unter Debian 3.0 integriert. Unter anderen Distributionen wird diese eventuell benötigt.
pthread
Das Forum braucht die POSIX-Thread-Unterstützung. Diese dürfte bei jeder neueren (älter als 4 Jahre) Linux-Distribution dabei sein.
nach obennach unten 

Benötigte Compilertools

BSD pmake
In früheren Versionen des Forums war pmake erforderlich, jedoch funktioniert die aktuelle Version auch mit GNU make.
GCC, LD, Binutils
Wenn man die ganzen Vorraussetzungen kompilieren konnte, dann stellt das Forum kein Problem dar.

Es kann sein, dass hier noch einige Abhängigkeiten fehlen. In dem Fall: Bitte melden.

nach obennach unten 

Download & Compilation

Den Sourcecode holt man sich am besten aus dem CVS, zumal die Version 1.1 inzwischen schon wieder etwas veraltet ist. Die Version 1.1 gibt's unter http://cforum.teamone.de/download/cforum-1.1.tgz.
Achtung: Obwohl die Version 1.1 des SELFForums schon mit autoconf ausgeliefert wird, funktioniert sie nicht mit Linux, da einige Anpassungen noch fehlen. Der aktuelle CVS-Code oder eine eventuell später erscheinende Version 1.2 wird dringendst empfohlen.

nach obennach unten 

Download über CVS

Als CVSROOT muss man :pserver:anonymous@cvs.teamone.de:/home/users/cvs angeben. Passwort ist leer und das Projekt heißt selfforum.

christian@midnight:~ $ export CVSROOT=:pserver:anonymous@cvs.teamone.de:/home/users/cvs
christian@midnight:~ $ cvs login
Logging in to :pserver:anonymous@cvs.teamone.de:2401/home/users/cvs CVS password: christian@midnight:~ $ cvs co selfforum

Daraufhin ist das Projekt ausgecheckt.

nach obennach unten 

Autoconf

Früher war ein Linux-Patch notwendig, um das SELFForum unter Linux zum Laufen zu bringen. Dies ist jetzt nicht mehr der Fall, da die neue Version des Forums mit autoconf arbeitet.

Das Forum selbst verwendet eigene dynamische Bibliotheken. Damit diese auch gefunden werden können, muss der Zielort dieser dynamischen Bibliotheken schon jetzt bekannt sein. Daher sollte man sich ein Verzeichnis anlegen, wo die dynamischen Bibliotheken reinkommen sollen. Es wird ausdrücklich nicht empfohlen /usr/local/lib zu verwenden. Als Beispiel wird hier /var/web/cforum/dev/cgi-shared/lib verwendet.

Das autoconf-Script muss jetzt die Systemkonfiguration prüfen und die Makefile erstellen:

christian@midnight:~/selfforum $ ./configure --libdir=/var/web/cforum/dev/cgi-shared/lib/

Wenn es Fehler während der Ausführung gibt, dann sind bestimmte Anhängigkeiten nicht erfüllt.

nach obennach unten 

Compilieren

Beim Kompilieren werden die Bibliotheken automatisch in das richtige Zielverzeichnis gelinkt, daher muss der Benutzer, der das ausführt, Schreibrechte auf das Verzeichnis, das man als libdir angegeben hat, besitzen. Mit einem

christian@midnight:~/selfforum $ make

wird das gesamte Projekt inklusive Bibliotheken kompiliert.

nach obennach unten 

Installation

nach obennach unten 

Erstellen der Verzeichnisse, Kopieren der Dateien

Als erstes muss man die Dateien fo_arcview, fo_post, fo_server, fo_userconf und fo_view in ein gültiges CGI-Verzeichnis (d.h. in einem Verzeichins, das CGI-Ausführung erlaubt) kopieren. Alle fo_*-Dateien müssen für den Webserver ausführbar sein, die Datei base dagegen nicht. Im CGI-Verzeichnis legt man jetzt noch ein Verzeichnis user an und linkt alle fo_*-Dateien vom Elternverzeichnis auf dieses Kindverzeichnis. (ln -s ../fo_* .)

Jetzt braucht man ein Verzeichnis, das die ganzen Konfigurationsdateien und Templates enthält. Hier wird auch cgi-shared dafür verwendet. Dies sollte außerhalb des DocumentRoots und jeglichen Script-Verzeichnisses stehen. Dort kopiert man den kompletten Inhalt vom cgi-shared-Unterverzeichnis rein. (Ausnahme: Die CVS-Verzeichnisse) Alle Verzeichnisse sollten mindestens die Rechtemaske 755 erhalten, alle normalen Dateien 644 und alle Dateien in folgenden Unterverzeichnissen auch wieder 755: lib (sofern man die Bibliotheken dorthin kopiert hat), modules, config/ctemplates.

Jetzt muss man noch dort, wohin man das Forum im DocumentRoot installiert haben will eine .htaccess-Datei anlegen, die folgenden Inhalt besitzt:

DirectoryIndex /cgi-bin/fo_view

In das /my/-Verzeichnis muss man auch eine .htaccess mit folgendem Inhalt stellen:

DirectoryIndex /cgi-bin/user/fo_view

Anstelle von /cgi-bin muss man das CGI-Verzeichnis nehmen, worein man die fo_*-Dateien kopiert hat. (Achtung: Diese Angabe ist vom Web-Stammbaum aus gesehen)

Man braucht jetzt nur noch ein Verzeichnis, das die ganzen Nachrichten enthalten wird. (Ich habe es fo_data genannt) Dieses sollte auch außerhalb des Dokumentstammbaums liegen. Dort erstellt man 2 Verzeichnisse, messages und archive. Diese sollten beide unter dem Benutzer, unter dem man fo_server auszuführen gedenkt, beschreibbar sein, und sonst für alle lesbar. Dorthinein kommt eine Datei forum.xml mit folgendem Inhalt:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Forum SYSTEM "http://selfforum.teamone.de/forum.dtd">
<Forum lastMessage="0" lastThread="0"/>

Damit hat man erst einmal alle Dateien, die man braucht, an die richtige Stelle kopiert.

nach obennach unten 

Erstellen des locales

Meist muss das richtige Locale für die Datumsanzeige noch erstellt werden. (sonst wird kein Datum angezeigt) Unter Debian geht das wie folgt:

midnight:~# cd /usr/share/i18n
midnight:/usr/share/i18n# localedef -f charmaps/ISO-8859-1 -i de_DE de_DE.ISO-8859-1
midnight:/usr/share/i18n#

Das locale heißt jetzt de_DE.ISO-8859-1.

nach obennach unten 

Konfiguration

Als allererstes muss in den Verzeichnissen cgi-bin und cgi-bin/user noch eine Datei base erzeugt werden, die nichts anderes als den relativen Pfad auf das cgi-shared/config-Verzeichnis enthält.

Die Konfiguration des Projekts wird im cgi-shared/config-Verzeichnis durchgeführt. Hier wird jede einzelne Konfigurationsdatei durchgegangen:

Wenn Pfade für Templatedateien anzugeben sind, dann muss anstelle der html4 oder xhtml10 Unterverzeichnisse %s%s angegeben werden.

Hinweis: Alle Pfade, die hier angegeben werden müssen, sind absolut. Wenn hier als Beisielpfad ein relativer Pfad angegeben wird, dann liegt das nur daran, dass dieser auf jeder Installation so unterschiedlich sein kann, dass es unmöglich ist, ihn vorherzusagen.

nach obennach unten 

fo_default.conf

Diese Datei enthält die generelle Konfiguration. Hier eine Liste der Konfigurationeinstellungen:

Sektion General

TemplateMode
Welche Templates Standardmäßig verwendet werden sollen. Im Moment mögliche Werte: html4 und xhtml10.
MessagePath
Der Pfad zu den Nachrichten. Dieser sollte auf das fo_data/messages-Unterverzeichnis zeigen.
ArchivePath
Der Pfad zum Archiv. Dieser sollte auf das fo_data/archive-Unterverzeichnis zeigen.
SocketName
Die UNIX-Domain-Socket zur Kommunikation mit dem Server. Wichtig: Der Server muss im Stande sein, diese zu erstellen und auf ihr zu horchen.
BaseURL
Die Basis-URL das Forums, vom Web-Stammbaum aus gesehen. (dort, wo die erste index.shtml liegt) Wichtig: Der abschließende Slash (/) darf nicht fehlen.
UBaseURL
Die Basis-URL für die User-Spezifische Ansicht, also BaseURL + my/
UseCache
Sollen interne Zwischenspeicheralgorithmen verwendet werden, um die Anzeige der Hauptdatei zu beschleunigen? Es kann aber dazu führen, dass die Hauptdatei für einige Sekunden nicht ganz aktuell ist. Bei geringer Last wird dieses Feature nicht gebraucht, bei höherer Last ist es dagegen sinnvoll.
SortThreads
Wie die Threads sortiert werden sollen. Mögliche Werte: 1 = neueste zuletzt, 2 = neueste zuerst.
SortMessages
Wie die Nachrichten sortiert werden sollen. Mögliche Werte: 1 = neueste zuletzt, 2 = neueste zuerst.
ErrorTemplate
Der Pfad zur Fehlertemplate, dieser sollte auf cgi-shared/config/ctemplates/%s%s/errortpl.so zeigen.
ErrorMessages
Der Pfad zur Datei mit der Liste der Fehlermeldungen. Dieser sollte auf cgi-shared/config/errormessages.txt zeigen.
PostScript
Die URL zur Datei fo_post, gesehen vom Web-Stammbaum. (z.B. /cgi-bin/fo_post)
UPostScript
Die URL zur Datei fo_post im User-Spezifischen Modus. (z.B. /cgi-bin/user/fo_post)
UserConfig
Die URL zum Benutzereinstellungsscript. (z.B. /cgi-bin/user/fo_userconf)
UserRegister
Die URL zum Benutzerregistrationsscript. (z.B. /cgi-bin/fo_userconf)
RunArchiver
Die Anzahl an Sekunden, bis der Archivierer laufen soll. Vorher wird nichts auf die Platte geschrieben, d.h. alle Nachrichten zwischen dem letzten Archiviererlauf und dem Serverabsturz gehen verloren.
ErrorLog
Die Datei für das Protokoll der Fehler von fo_server.
StdLog
Die Datei für das Protokoll der Aktionen von fo_server.

Sektion DateConfig

DateLocale
Das Locale für das Datum. Das Locale wurde oben erzeugt und heißt de_DE.ISO-8859-1.

Sektion Categories

Diese Sektion enthält alle Kategorien des Forums.

Sektion Archiving

ArchiveOnVote
Dieses Feature ist noch nicht implementiert.
MainFileMaxBytes
Wie groß darf die Hauptdatei sein, bevor der Archivierer alte Threads rausschmeisst? (Bytes)
MainFileMaxPostings
Wie viele Postings dürfen in der Hauptdatei sein, bevor der Archivierer alte Threads rausschmeisst?
MainFileMaxThreads
Wie viele Threads dürfen in der Hauptdatei sein, bevor der Archivierer alte Threads rausschmeisst?
ThreadsMaxOld
Wie alt darf ein Thread maximal werden? Dies ist jedoch noch nicht implementiert.

Sektion Users

ConfigDirectory
Wo sollen die Benutzereinstellungen abgespeichert werden? Achtung: fo_userconf muss Schreibzugriff auf das Verzeichnis haben!
InactivityDelete
Wie lange darf ein User Inaktiv sein, bevor er gelöscht wird? (Tage)
SendMailBeforeDelete
Soll eine Mail gesendet werden, bevor der Benutzer gelöscht wird?
nach obennach unten 

fo_arcview.conf

Diese Konfigurationsdatei enthält alle Infos für den Archiv-Betrachter. Die Sektion Filters enthält alle Plugins, die geladen werden sollen. Da sind eigentlich nur die Pfade anzupassen. Die Sektion General enthält das Datumsformat, das zur Anzeige benutzt wird (wird an strftime weitergegeben) und die Sektion Templates enthält die Templates, die benutzt werden sollen. (Hier also auch Pfade anpassen)

Nachdem der Archivbetrachter noch nicht ausgereift ist, kann diese Konfigurationsdatei im Moment vernachlässigt werden.

nach obennach unten 

fo_post.conf

Diese Konfigurationsdatei enthält alle Optionen für das Script fo_post.

Sektion General

PostingURL
Darf mehrmals vorkommen, alle URLs, die als Posting angesehen werden und automatisch in eine Form verwandelt werden, so dass sie für alle Benutzer gelten.
FieldConfig
Welche Felder gibt es, wie groß dürfen sie maximal sein und wie groß müssen sie mindestens ein?
FieldNeeded
Welcher Felder müssen mit angegeben werden?
AddModule
Das Posting-Script besitzt auch diverse Plugins, die mit dieser Direktive eingebunden werden können.
PostingAssistantMustValidate
Müssen die Nachrichten, die der Posting-Assisten herausfiltert, mit einer Fehlermeldung quittiert werden oder darf nach erneutem Abschicken die Nachricht akzeptiert werden?
BadWords
Welche Wörter sind "böse"?
BadwordsAllowed
Wie viele "böse" Wörter dürfen vorhanden sein?
FormateDeficitesAllowed
Wie viele Probleme lassen eine Nachricht noch zu?
QuotingPercent
Wie viel Prozent des Postings darf ein Zitat maximal ausmachen, bevor es als Problem gewertet wird?

Sektion Images

Image
Gibt eine Message-Graphik an. Als ersten Parameter etwartet es den Text nach [msg: und vor ], als zweiten die URL zum Bild und als Dritten den alternativen Text.

Sektion Templates

Hier werden wieder die Templates angegeben, also müssen wieder die Pfade angepasst werden.

nach obennach unten 

fo_userconf.conf

Hiermit wird das Registrations und Einstellungsscript konfiguriert.

Sektion Form

NecessaryField
Welche Felder sind notwendig für die Eingabe?
MinLength
Mindestlänge eines Feldes
MaxLength
Maximallänge eines Feldes
MinVal
Mindestwert eines Feldes
MaxVal
Maximalwert eines Feldes

Sektion General

SQLUser
Mit welchen Benutzernamen soll auf die SQL-Datenbank zugegriffen werden?
SQLPass
Welches Passwort?
SQLDatabase
Welche Datenbank soll verwendet werden?
SQLHost
Auf welchem Rechner liegt diese Datenbank?
SQLPort
Auf welchem Port liegt diese Datenbank (PostgreSQL meist 3360, MySQL meist 3306)
SQLDriver
Welcher Datenbanktreiber soll verwendet werden. (z.B. Pg, MySQL)
ModuleConfig
Wo liegt die Konfigurationsdatei für die Module. (z.B. cgi-shared/config/modconf/modules.xml) Der Pfad sollte jedoch absolut sein.

Sektion DateConfig

FromUntilFormat
Das beschreibt das Datumsformat für den Datumsfilter. (Threads anzeigen ab/bis zu einem bestimmten Datum)

Sektion Templates

Die Pfade zu den Templates, die verwendet werden. Also wieder Pfade anpassen.

nach obennach unten 

fo_view.conf

Diese Datei konfiguriert die Anzeige des Forums.

Sektion Filters

Welche Filter sollen verwendet werden? (Pfade anpassen)

Sektion ForumBehaviour

ThreadsOpenByDefault
Sollen alle Threads standardmäßig offen sein?
DoQuote
Soll standardmäßig das vorige Postig zitiert werden?
QoutingChars
Was sind die Standard-Zitierzeichen?
ShowThread
Wie soll der Thread in einer Nachricht angezeigt werden? (partial = nur Antworten, full = alles, none = gar nicht)
VIPList
Welche User sollen immer hervorgehoben werden, unabhängig von den Benutzereinstellungen?
VIPColors
Farben für die VIP-Liste in der nicht-userspezifischen Ansicht. Die erste Farbe ist die Vordergrundfarbe, die zweite die Hintergrundfarbe.
ShowForumAsFameset
Soll das Standardforum als Frameset angezeigt werden?
ReadMode
In welcher Form soll das Forum angezeigt werden? (Später soll man zwischen Forum, Board und einer Mischung davon umschalten können; im Moment ist nur normal möglich.)
SendLastModified
Soll der Last-Modified-Header gesendet werden?
SendExpires
Soll der Expires-Header gesendet werden?
HandleLastModifiedSince
Soll der If-Last-Modified-Since-Header interpretiert werden?
GeneratePreview
Soll eine standardmäßig Vorschau erzeugt werden?

Sektion Templates

Die Pfade zu den Templates, die nur darauf warten, angepasst zu werden...

Sektion DateConfig

DateFormatLoadTime
Welches Format soll das Datum des Ladezeitpunkts (im Kopf der Hauptdatei) haben?
DateFormatThreadList
Welches Format soll das Datum bei der Thread-List haben?
DateFormatThreadView
Welches Format soll das Datum bei der Nachrichtenanzeige haben?
nach obennach unten 

Benutzerauthentifizierung einrichten

Jetzt muss nur noch die Benutzerauthentifizerung eingerichtet werden. Das macht man am besten über .htaccess. Wenn man eine MySQL-Datenbank verwendet, dann kann man mod_auth_mysql verwenden, ansonsten ein entsprechend anderes Modul. Zu beachten ist, dass die MySQL-Authentifizerungsdaten und die Direktive zum Laden des Moduls auf jeden Fall in die httpd.conf reinmüssen. Die Daten für das Modul müssen mit denen, die in der fo_userconf.conf angegeben wurden, übereinstimmen.

AuthName "SELFHTML Forum"
AuthType basic

Auth_MySQL_DB forum_users
Auth_MySQL_Password_Table auth
Auth_MySQL_Group_Table groups

Auth_MySQL_Username_Field username
Auth_MySQL_Password_Field passwd
Auth_MySQL_Group_Field grp
Auth_MySQL_Empty_Passwords off

Auth_MySQL_Encryption_Types Plaintext
Auth_MySQL_Encrypted_Passwords off
Auth_MySQL_Scrambled_Passwords off

Auth_MySQL_Authoritative off
Auth_MySQL_Non_Persistent off
Auth_MYSQL On


require valid-user

Diese .htaccess muss zweimal vorhanden sein: Einmal im cgi-bin/user-Verzeichnis und ein anderes Mal im benutzerspezifischen /my/-Verzeichnis. Welche Struktur die Tabellen haben müssen und welche Direktiven es gibt, kann man in der Dokumentation von mod_auth_mysql nachlesen.

nach oben

© 2000/2001 E-Mail selfhtml@teamone.de / version 1.0 by E-Mail Christian Kruse / this document by E-Mail Christian Seiler