#! /usr/bin/tclsh # gibt nachrichten anhand des trace levels aus # param level: trace level, bei welchem die nachricht erscheinen soll # param msg: nachricht proc message {level msg} { global state if {$level <= $state(-trace)} { puts stderr $msg } } # oeffnet den Socket # wenn kein Erfolg => exit 1 und raus proc openSocket {} { global state # versucht socket zu oeffnen, sonst fehlermeldung und exit if {[catch { socket $state(-server) $state(-port) } state(socket)]} { message 1 "Es konnte keine Verbindung hergestellt werden :-(" exit 1 } message 2 "Verbindung mit $state(-server):$state(-port) hergestellt" return } # schliesst den Socket zum Mailserver proc closeSocket {} { global state message 2 "Schliesse Verbindung zum Server" close $state(socket) } # sendet ein Kommando an den Socket # parameter: cmd - Zusendendes Kommando proc sendSocket cmd { global state puts $state(socket) "$cmd" flush $state(socket) message 3 "> $cmd" } # liest eine Zeile vom Socket und gibt diese zurueck proc readSocket {} { global state gets $state(socket) srvmsg message 3 "< $srvmsg " return $srvmsg } ## Konfiguration array set state { -trace 3 -server "lena" -port 25 } ######################################################## # Hier beginnt der von euch zu implementierende Teil # Denkt an das Auswerten der Serverrueckmeldungen ######################################################## ######################################################## # Hilfe: # Datum: Eine Datumsangabe ist wie folgt aufgebaut: # "Date: Sun, 19 Jun 2005 15:33:06 +0200" # Es kann mit dem bash 'date' Kommando # generiert werden, siehe "man date" :-) ####################################################### exit 0