Ersetzt für einen lokalen Benutzer <Accountname> das alte Passwort <OldPW> durch das neue <NewPW>.
Rückgabewerte: 0 = Fehler im alten Passwort, 1 = Passwort geändert, 2 = Fehler beim Ändern.
Liest die Password-Datei neu ein.
Löst verschiedene Ereignisse im Hamster aus, die alternativ auch per Menü steuerbar sind.
Für jede Message-Option <msg> gibt es auch eine eigene sprechende Funktion siehe dazu die nachfolgend aufgeführten Funktionen.
| <msg> | <parameter> | Wirkung | |
| 1 | Zeit in ms bis Programmende | Hamster beenden | |
| 2 | 0 = Zähler+Log, 1 = Zähler, 2 = Log, 3 = Fehlerliste |
Setzt Zähler und Log-Anzeige zurück | |
| 3 | 0 = Stop, 1 = Start, 2 = Neustart, 3 = Status |
Start/Stop lokaler NNTP-Server (siehe Anmerkung 1) | |
| 4 | 0 = Stop, 1 = Start, 2 = Neustart, 3 = Status |
Start/Stop lokaler POP3-Server (siehe Anmerkung 1) | |
| 5 | 0 = Stop, 1 = Start, 2 = Neustart, 3 = Status |
Start/Stop lokaler SMTP-Server (siehe Anmerkung 1) | |
| 6 | 0 = Verstecken, 1= Anzeigen, 2 = Status |
Anzeigen/Verstecken des Hauptfensters | |
| 7 | 0 = Verstecken, 1= Anzeigen, 2 = Status |
Anzeigen/Verstecken des Tray-Icons | |
| 8 | (ignoriert) | Menü: Online/Alle Aufträge beenden | |
| 9 | 0 = Test, 1 = Laden | Konfiguration erneut laden (siehe Anmerkung 2) | |
| 10 | (ignoriert) | IPAccess.hst erneut laden | |
| 11 | 0 = Stop, 1 = Start, 2 = Neustart, 3 = Status |
Start/Stop lokaler Remote-Control-Server (siehe Anmerkung 1) | |
| 12 | 1 = Öffnen, 0 = Schließen, 2 = Status |
Öffnet, schließt oder liefert den Status des Browsers für die News-/Mailverzeichnisse (siehe Anmerkung 3) | |
| 13 | 1 = Öffnen, 0 = Schließen, 2 = Status |
Öffnet, schließt oder liefert den Status des Skriptdialogs (siehe Anmerkung 3) | |
| 14 | 0 = Stop, 1 = Start, 2 = Neustart, 3 = Status |
Start/Stop lokaler IMAP-Server (siehe Anmerkung 1) | |
| 15 | 1 = Öffnen, 0 = Schließen, 2 = Status |
Öffnet, schließt oder liefert den Status des News-Killfilelog-Dialogs (siehe Anmerkung 3) | |
| 16 | 1 = Öffnen, 0 = Schließen, 2 = Status |
Öffnet, schließt oder liefert den Status des Ladeauftragsdialogs (siehe Anmerkung 3) | |
| 17 | 1 = Öffnen, 0 = Schließen, 2 = Status |
Öffnet, schließt oder liefert den Status des Mail-Killfilelog-Dialogs (siehe Anmerkung 3) | |
Anmerkung 1 zu <msg> = 35, 11, 14: Die Rückgabewerte für den Parameter 3 sind 0 = aus und 1 = an.
Anmerkung 2 zu <msg> = 9: Der Parameter 1 führt nur dann zum Laden der Konfiguration, wenn alle Konfigurationsfenster geschlossen sind (Rückgabewert der Funktion 1 = True). Andernfalls wird nichts ausgeführt (Rückgabewert 0 = False). Beim Parameter 0 (Test) wird grundsätzlich nichts ausgeführt, sondern nur die entsprechenden Rückgabewerte ermittelt. Damit kann getestet werden, ob das Laden gegebenenfalls möglich ist (d. h. die Konfiguration geschlossen ist).
Anmerkung 3 zu <msg> = 12, 13, 1517: Der Parameter 2 ermöglicht die Abfrage, ob das jeweilige Fenster offen (Rückgabewert 1 = True) oder geschlossen ist (Rückgabewert 0 = False).
Übrige Rückgabewerte:
0 = OK; Befehl ausgeführt.
1 = Error; Befehl fehlerhaft.
2 = Unbekannter Parameter
3 = GPF,
Fließkommafehler
Beispiele:
HamMessage( 2, 0 ) # Alle Zähler zurücksetzen
# Anzeigeproblem mit dem Tray-Icon unter Windows XP beheben: HamMessage( 7, 0 ) # Verbergen Sleep( 500 ) HamMessage( 7, 1 ) # Anzeigen
Den Hamster beenden. Die Zeit bis Programmende <delay> muss in Millisekunden angegeben werden.
Entspricht HamMessage(1,<x>).
Stoppt alle Aufträge. Entspricht HamMessage(8).
Setzt die Zähler/Protokolle zurück: <x> = 0 für Protokolle und Zähler, <x> = 1 nur Zähler, <x> = 2 nur Protokolle, <x> = 3 nur Fehler/Warnungs-Protokoll, bei Weglassen des Parameters gilt <x> = 0.
Entspricht HamMessage(2,<x>).
Steuert einen lokalen Server: <x> = 0 stoppt den Server, <x> = 1 startet den Server, <x> = 2 startet den Server neu, <x> = 3 erlaubt die Abfrage, ob der Server läuft ( Rückgabewert 0 = aus, 1 = an).
Vgl. HamMessage([3/4/5/11/14],<x>).
Schließt mit <x> = 0 und öffnet mit <x> = 1 das Hauptfenster. <x> = 2 liefert den Status des Hauptfensters zurück.
Entspricht HamMessage(6,<x>).
Rückgabewert: Integer, 1 = sichtbar, 0 = unsichtbar.
Verbirgt mit <x> = 0 das Tray-Icon und zeigt es mit <x> = 1 an. <x> =2 liefert den Status des Tray-Icons zurück.
Entspricht HamMessage(7,<x>).
Rückgabewert: Integer, 1 = sichtbar, 0 = unsichtbar.
Beispiel:
# Anzeigeproblem mit dem Tray-Icon unter Windows XP beheben: HamTrayIcon ( 0 ) # Verbergen Sleep( 500 ) HamTrayIcon ( 1 ) # Anzeigen
Mit <x> = 1 werden die Einstellungen neu geladen, sofern kein Einstellungsdialog offen ist. Mit <x> = 0 kann überprüft werden, ob ein Einstellungsdialog offen ist ( Rückgabewert: 1 = ja, 0 = nein).
Entspricht HamMessage(9,<x>).
Lädt die Datei IPAccess.hst erneut.
Entspricht HamMessage(10).
Bezieht sich auf den Browser für die News-/Mailverzeichnisse. <x> = 1 zum Öffnen, <x> = 0 zum Schließen, <x> = 2 zur Statusabfrage ( Rückgabewert: 1 = offen, 0 = geschlossen).
Entspricht HamMessage(12,<x>).
Bezieht sich auf den Dialog zum Verwalten/Ändern von Skripten und Modulen. <x> = 1 zum Öffnen, <x> = 0 zum Schließen, <x> = 2 zur Statusabfrage ( Rückgabewert: 1 = offen, 0 = geschlossen).
Entspricht HamMessage(13,<x>).
Bezieht sich auf den Dialog zum Erstellen von Ladeaufträgen. <x> = 1 zum Öffnen, <x> = 0 zum Schließen, <x> = 2 zur Statusabfrage ( Rückgabewert: 1 = offen, 0 = geschlossen).
Entspricht HamMessage(16,<x>).
Bezieht sich auf den Dialog zum Bearbeiten des News-Killfile-Logs. <x> = 1 zum Öffnen, <x> = 0 zum Schließen, <x> = 2 zur Statusabfrage ( Rückgabewert: 1 = offen, 0 = geschlossen).
Entspricht HamMessage(15,<x>).
Bezieht sich auf den Dialog zum Bearbeiten des E-Mail-Killfile-Logs. <x> = 1 zum Öffnen, <x> = 0 zum Schließen, <x> = 2 zur Statusabfrage ( Rückgabewert: 1 = offen, 0 = geschlossen).
Entspricht HamMessage(17,<x>).
Schreibcache entleeren speichert alle noch ungesicherten Daten (z. B. History) auf die Festplatte. Dieses ist insbesondere nach dem Import von Artikeln zu empfehlen.
Rückgabewert: 0
Startet einen Auftrag zum Aufräumen von Hamsterdaten. Der Parameter <option> legt fest, was aufgeräumt werden soll. Er ist bitorientiert und kann durch logisches UND gebildet werden. (Bit0 = 1 = Artikel, Bit1 = 2 = History-Einträge, Bit2 = 4 = Killfile-Log, Bit3 = 8 = Mail-History-Einträge). Bei der Option 0x01 (HAM_PURGEOPT_DONEWS) kann mit dem Parameter <group> das Aufräumen auf eine einzelne Gruppe beschränkt werden.
Wenn Sie das Modul hamster.hsm in Ihr Skript einbinden, können Sie die dort vordefinierten Konstanten verwenden.
Rückgabewert: 0 = OK/gestartet, <>0 = nicht gestartet.
Beispiel:
HamWaitIdle HamPurge( 4 ) HamPurge (1,"hamster.de.newuser") HamWaitIdle
Ermittelt, ob der Hamster im Moment die Daten aufräumt.
Rückgabewert: 0 = Daten werden im Moment nicht aufgeräumt, <>0 = Hamster putzt im Moment die Datenbank.
Startet das Erzeugen der globalen Listen.
Rückgabewert: 0 = OK/gestartet, <>0 = nicht gestartet.
Beispiel:
HamWaitIdle HamRebuildGlobalLists HamWaitIdle
Startet das Erzeugen der History Dateien (.\Groups\Hist*.dat) auf Basis des aktuellen Artikelbestandes. Diese Funktion sollte nur benutzt werden, wenn der Hamster idle ist (siehe Funktion HamWaitIdle).
Rückgabewert: 0 = OK/gestartet, <>0 = nicht gestartet.
Beispiel:
HamWaitIdle HamRebuildHistory HamWaitIdle
Übermittelt die Versionsnummer des Hamsters, wenn der Parameter <info> 0 ist oder fehlt. Bei den folgenden Werten für den Parameter <info> wird folgendes Ergebnis zurückgeliefert:
1 = Produktname,
2 = Maintainer inklusive E-Mail-Adresse,
3
= Homepage des jeweiligen Hamsters,
4 = Status der Version
(beta oder stable).
Rückgabewert: Zeichenkette (z. B. 1.3.17.0).
Beispiel:
print( "Hamster Version " + HamVersion )
Liefert Auskünfte über den momentanen Zustand des Hamsters.
HamGetStatus(1,n) meldet ob lokaler Server gestartet ist
Für n gilt:
1 = Lokaler NNTP-Server,
2 = Lokaler POP3-Server,
3
= Lokaler SMTP-Server,
4 = Lokaler IMAP-Server,
5 =
Lokaler ReCo-Server.
Rückgabewert: 1, wenn der Server aktiv ist, andernfalls 0.
HamGetStatus(2,n) meldet die Anzahl der am lokalen Server offenen Verbindungen.
Für n gilt:
1 = Lokaler NNTP-Server,
2 = Lokaler POP3-Server,
3
= Lokaler SMTP-Server,
4 = Lokaler IMAP-Server,
5 =
Lokaler ReCo-Server.
Rückgabewert: Anzahl der am lokalen Server offenen Verbindungen.
HamGetStatus(3,n) gibt Auskunft über angekommene/wartende News & Mails.
Für n gilt:
1 = Neue Artikel,
2 = Geladene Artikel,
3 = Bekannte
(History-gefilterte) Artikel,
4 = Gelöschte Artikel,
5
= Zu versendende Artikel,
6 = Neue E-Mails,
7 = Zu
versendende E-Mails,
8 = Per Message-ID nachgeladene Artikel,
9 = Anzahl der Fehlerzeilen im Log,
10 = Anzahl der
Warnungszeilen im Log.
HamGetStatus(4,n) gibt Auskunft über die momentan aktiven Loglevel.
Für n gilt:
1 = Loglevel für Anzeige,
2 = Loglevel für
Speichern in Log-Datei.
Rückgabewert: Integer
Beispiel:
Warning(HamGetStatus(3,1))
Liefert den allgemeinen FQDN des Hamsters zurück.
Liefert den FQDN für Message-ID des Hamsters zurück.
Liefert den vom Hamster verwendeten Envelope-From:-Header zurück.
Liefert den vom Hamster verwendeten Postmaster-Account zurück.
Liefert den vom Hamster verwendeten Newsmaster-Account zurück.
Liefert interne Hamsterpfade zurück. Konkret geht es um das Hauptverzeichnis, den Suchpfad für Skripte (hsc), den Suchpfad für Module (hsm), das Verzeichnis für Protokolldateien (Logs), das Serververzeichnis, das Newsgruppenverzeichnis, das Mailverzeichnis, das Verzeichnis für ausgehende Postings, das Verzeichnis für ausgehende Mails und das Skript-Verzeichnis für den lokalen ReCo-Server (RC).
Rückgabewert: Zeichenkette mit dem vollständigen Pfadnamen und anschließendem Backslash (\).
Beispiel:
if( FileExists(HamPath + "Hamster.exe" ) )
# weitere Anweisungen
endif
Setzt temporär den Namen und das Passwort für eine DFÜ-Netzwerkverbindung. Der Name <identifier> muss exakt (inkl. Groß-/Kleinschreibung) mit dem Namen im DFÜ-Netzwerk übereinstimmen. Wird für das Passwort <pass> ein Fragezeichen verwendet, fragt der Hamster das Passwort erst bei Bedarf ab. Außerdem können für Benutzernamen <user> und Passwort auch im Menü Einstellungen → Benutzerverwaltung & Passworte → Passworte definierte Variablen verwendet werden, das Passwort bleibt dann leer (vgl. Beispiel 3: Variable ist $42).
Rückgabewert: 0 = OK, <>0 = Fehler.
Beispiele:
HamSetLogin( "MyProvider", "MyUsername", "MyPassword" )
HamSetLogin( "MyProvider", "MyUsername", "?" )
HamSetLogin( "MyProvider", "$42", "" )
Funktion, welche die mit <name> bezeichnete DFÜ-Verbindung aus dem Telefonbuch des DFÜ-Netzwerkes für die Einwahl verwendet und die Anmeldung am Server mit Benutzernamen <user> und Passwort <pass> versucht. Falls <user> und/oder <pass> fehlen oder leer sind (""), werden die per HamSetLogin eingestellten Angaben genutzt oder auf die im Hamster gespeicherten Werte zum Aufbau der Verbindung zugegriffen. Außerdem können für Benutzernamen <user> und Passwort auch im Menü Einstellungen → Benutzerverwaltung & Passworte → Passworte definierte Variablen verwendet werden (im Beispiel $42). Siehe auch den Befehl RasDial.
Hinweis: Wenn HamRasDial verwendet wird, sollte die Verbindung mit HamRasHangup beendet werden.
Rückgabewert: 0: OK/Verbindung aufgebaut, >0: Fehler-Code; -1: DFÜ-Netzwerk nicht installiert.
Beispiel:
$try = 1
while(HamRasDial( "MyProvider","$42" ) != 0 )
if( $try >= 3 )
( "Dialing failed!" )
endif
inc( $try )
sleep( 10000 )
endwhile
Schließt die aktuelle, mit HamRasDial geöffnete, DFÜ-Netzwerkverbindung.
Rückgabewert: 0=OK/Verbindung abgebaut; >0=Fehler-Code; -1=DFÜ-Netzwerk nicht installiert.
Gibt TRUE (1) zurück, falls momentan keine aktiven Prozesse wie Purgen, Newsabruf, Mailversand etc. laufen.
Hinweis: Verbindungen von (Mail-/News-)Clients zum lokalen Server zählen nicht als aktive Tasks.
Rückgabewert: Integer.
Beispiel:
if( HamIsIdle )
# weitere Anweisungen
endif
Wartet, bis das Timeout erreicht ist oder keine Aufträge mehr im Hamster aktiv sind. Wird HAM_WAITIDLE_INFINITE, -1 oder kein Parameter für das Timeout verwendet, kehrt die Funktion nur dann zurück, wenn keine Aufträge mehr aktiv sind.
Hinweis: Die Aufträge/Tasks für die lokalen Server werden hierbei nicht berücksichtigt.
Rückgabewert: 0 = OK, 1 = Timeout, 2 = Interrupted (unterbrochen).
Liefert die Anzahl der momentan aktiven Tasks/Aufträge zurück.
Hinweis: Verbindungen von (Mail-/News-)Clients zum lokalen Server zählen nicht als aktive Tasks.
Rückgabewert: Integer.
Mit dieser Funktion werden zuerst neue Mails vom Mailserver abgerufen und danach Mails (falls vorhanden) versendet. Wird die Serverauswahl <server-list> übergangen oder leer gelassen (""), werden alle im Hamster definierten POP3- und SMTP-Server verwendet. Andernfalls ist der Transfer auf die eingetragenen Server eingeschränkt, die Server müssen in <server-list> dann in der Form Servername1,Port1;Servername2,Port2; angegeben werden. Mit dem zusätzlichen Parameter <mode> kann der Server-Typ eingeschränkt werden:
0: Es werden die POP3- und SMTP-Server verwendet (Standard),
1:
Es werden nur die POP3-Server verwendet,
2: Es werden nur die
SMTP-Server verwendet.
Anmerkung: Sinnvoller war lange Zeit die Verwendung von HamFetchMail und HamSendMail, da mit diesen Befehlen auch die Mailaccounts und Mailfilter vom Hamster einbezogen werden können. Im Falle von HamMailExchange wird inzwischen allerdings auf die Einstellungen der POP3-Server im Hamster zugegriffen, so dass der Befehl in der Mehrzahl der Fälle ausreicht.
Rückgabewert: 0: OK/gestartet, <>0: nicht gestartet.
Beispiele:
HamMailExchange
HamMailExchange( "mailserver1.example.com,smtp;mailserver2.example.com,pop3" )
Startet einen Auftrag zum Abholen der E-Mails bei einem POP3-Server <server>. Der Port muss in <port> nur angegeben werden, wenn er vom Standardport 110 bzw. pop3 abweicht (vgl. die Beispiele). Für den Benutzernamen <user> und das Passwort <pass> kann auch eine im Menü Einstellungen → Benutzerverwaltung & Passworte → Passworte definierte Variable verwendet werden, dass Passwort bleibt dann leer (in den Beispielen: $7 und $42). Für <destuser> kann ein lokaler Benutzer angegeben werden, welcher die E-Mail erhalten soll. Bleibt der Parameter leer, wird der im Menü Einstellungen konfigurierte Benutzer verwendet. Zusätzlich zum lokalen Benutzer kann mit <filter> auch ein Abschnitt in der Mailfilter-Datei Mailfilt.hst angegeben werden; bleibt er leer, wird auch hier wieder auf das Menü Einstellungen zugegriffen. Falls der Parameter <LeaveOnServer> = 1 oder true ist, werden die Mails auf dem Server belassen, bei <LeaveOnServer> = 0 oder false werden sie vom Server gelöscht; bei jedem anderen Wert gelten die Einstellungen des Servers bzw. die Standardeinstellung.
Achtung! Um SSL in Verbindung mit dem Hamster nutzen zu können, werden zwei zusätzliche DLL-Dateien benötigt; mehr dazu siehe in der SSL-FAQ.
Der Parameter <SSLMode> ist ein Integer und gibt an, ob und wie SSL/TLS verwendet wird:
0 = SSL/TLS abgeschaltet,
1 = SSL/TLS auf separatem Port
(sPOP3/POP3s),
2 = SSL/TLS auf Standardport, wenn
möglich,
3 = SSL/TLS auf Standardport wird erzwungen.
Der Parameter <SSLVerify> ist ebenfalls Integer und regelt die Überprüfung der fremden Server-Zertifikate:
0 = Zertifikatsüberprüfung abgeschaltet,
1 =
Zertifikatsüberprüfung, falls Zertifikat vorgelegt,
2
= Zertifikatsüberprüfung immer,
3 =
Zertifikatsüberprüfung immer und Vergleich des
Serverzertifikats mit lokaler Kopie.
Mit <SSLCaFile> (String) kann eine Datei zur Zertifikatsüberprüfung angegeben werden. Dabei wird der Standard-Wert (Menü Grundeinstellungen → SSL → Datei mit Zertifikaten zwecks Überprüfung) überschrieben.
Rückgabewert: 0: OK/gestartet, <>0: nicht gestartet.
Beispiele:
HamFetchMail( "pop3-server.example.com", )
HamFetchMail( "pop3-server.example.com", "pop3", "john.doe", "secret", "john", "" )
HamFetchMail( "pop3-server.example.com", "10110", "$7", "", "jane", "" )
HamFetchMail( "pop3-server.example.com", "", "$42", "", "admin", "myfilters" )
Startet einen Auftrag zum Senden der E-Mails zu einem SMTP-Server <server>. Der Port muss in <port> nur angegeben werden, wenn er vom Standardport 25 bzw. smtp abweicht (vgl. die Beispiele). Ist der Parameter <from-select> oder <to-select> nicht leer, werden nur E-Mails versendet, deren Envelope-From bzw. Rcpt-To dem Regulären Ausdruck in diesem Parameter entspricht (siehe auch die FAQ Hamster und Reguläre Ausdrücke).
Achtung! Um SSL in Verbindung mit dem Hamster nutzen zu können, werden zwei zusätzliche DLL-Dateien benötigt; mehr dazu siehe in der SSL-FAQ.
Der Parameter <SSLMode> ist ein Integer und gibt an, ob und wie SSL/TLS verwendet wird:
0 = SSL/TLS abgeschaltet,
1 = SSL/TLS auf separatem Port
(sSMTP/SMTPs),
2 = SSL/TLS auf Standardport, wenn
möglich,
3 = SSL/TLS auf Standardport wird erzwungen.
Der Parameter <SSLVerify> ist ebenfalls Integer und regelt die Überprüfung der fremden Server-Zertifikate:
0 = Zertifikatsüberprüfung abgeschaltet,
1 =
Zertifikatsüberprüfung, falls Zertifikat vorgelegt,
2
= Zertifikatsüberprüfung immer,
3 =
Zertifikatsüberprüfung immer und Vergleich des
Serverzertifikats mit lokaler Kopie.
Mit <SSLCaFile> (String) kann eine Datei zur Zertifikatsüberprüfung angegeben werden. Dabei wird der Standard-Wert (Menü Grundeinstellungen → SSL → Datei mit Zertifikaten zwecks Überprüfung) überschrieben.
Rückgabewert: 0: OK/gestartet, <>0: nicht gestartet.
Beispiele:
HamSendMail( "smtp1.example.com", "smtp", "john\.doe@example\.com" )
HamSendMail( "smtp2.example.com" )
Startet einen Auftrag zum Senden der E-Mails zu einem SMTP-Server <server> unter Benutzung des SMTP-Auth-Verfahrens. Der Port muss in <port> nur angegeben werden, wenn er vom Standardport 25 bzw. smtp abweicht (vgl. die Beispiele). Für den Benutzernamen <user> und das Passwort <pass> kann auch eine im Menü Einstellungen → Benutzerverwaltung & Passworte → Passworte definierte Variable verwendet werden, dass Passwort bleibt dann leer (in den Beispielen: $7 und $42). Ist der Parameter <from-select> oder <to-select> nicht leer, werden nur E-Mails versendet, deren Envelope-From bzw. Rcpt-To dem Regulären Ausdruck in diesem Parameter entspricht (siehe auch die FAQ Hamster und Reguläre Ausdrücke).
Achtung! Um SSL in Verbindung mit dem Hamster nutzen zu können, werden zwei zusätzliche DLL-Dateien benötigt; mehr dazu siehe in der SSL-FAQ.
Der Parameter <SSLMode> ist ein Integer und gibt an, ob und wie SSL/TLS verwendet wird:
0 = SSL/TLS abgeschaltet,
1 = SSL/TLS auf separatem Port
(sSMTP/SMTPs),
2 = SSL/TLS auf Standardport, wenn
möglich,
3 = SSL/TLS auf Standardport wird erzwungen.
Der Parameter <SSLVerify> ist ebenfalls Integer und regelt die Überprüfung der fremden Server-Zertifikate:
0 = Zertifikatsüberprüfung abgeschaltet,
1 =
Zertifikatsüberprüfung, falls Zertifikat vorgelegt,
2
= Zertifikatsüberprüfung immer,
3 =
Zertifikatsüberprüfung immer und Vergleich des
Serverzertifikats mit lokaler Kopie.
Mit <SSLCaFile> (String) kann eine Datei zur Zertifikatsüberprüfung angegeben werden. Dabei wird der Standard-Wert (Menü Grundeinstellungen → SSL → Datei mit Zertifikaten zwecks Überprüfung) überschrieben.
Rückgabewert: 0: OK/gestartet, <>0: nicht gestartet.
Beispiele:
HamSendMailAuth( "smtp3.example.com", "587", "username", "passwort", "@mail\.example\." )
HamSendMailAuth( "smtp3.example.com", "", "$42", "", "john\.doe@example\.com", "jane\.doe@" )
Mit dieser Funktion wird eine neue E-Mail erstellt. Als <EnvelopeFrom> muss die E-Mail-Adresse des Absenders bzw. der Name des Accounts angegeben werden. <EnvelopeTo> muss die E-Mail-Adresse bzw. den Accountnamen des Empfängers enthalten, es können mehrere Empfänger angegeben werden, jeder mit Semikolon (;) getrennt. <Mailtext> muss die komplette E-Mail, also mit Mailheadern und Body entsprechend RFC2881/RFC2882 in einer Variablen enthalten.
Achtung! Wer diesen Befehl nutzt, sollte sein Skript gründlich lokal austesten, bevor er eine E-Mail ins Internet versendet.
Rückgabewert: 0, wenn die E-Mail ordnungsgemäß gespeichert werden konnte, andernfalls 1.
Beispiele:
# Beispiel für einen Empfänger:
varset( $crlf, chr(13) + chr(10) )
var( $Header, $Body )
$Header = "FROM: name@mail.example.org" + $crlf + _
"TO: another_name@mail.example.org" + $crlf + _
"Subject: HamNewMail" + $crlf + $crlf
$Body = "Hallo," + $crlf + _
"dieses Beispielskript koennte/sollte man noch" + $crlf + _
"gegebenenfalls mit dem Date:-Header erweitern," + $crlf + _
"denn der gehoert laut RFC auch dazu."
HamNewMail("name@mail.example.org", "another_name@example.org", $Header + $Body)
# Beispiel für mehrere Empfänger (einer davon als Blindkopie):
varset( $crlf, chr(13) + chr(10) )
var( $Header_and_Body )
$Header_and_Body = _
"From: absender@example.org" + $crlf + _
"To: you@example.com" + $crlf + _
"Subject: Schwierige Frage" + $crlf + _
"Mime-Version: 1.0"" + $crlf + _
"Content-Type: text/plain; charset=ISO-8859-1" + $crlf + _
"Content-Transfer-Encoding: 8bit" + $crlf + $crlf + _
"Hallo Du da!" + $crlf + _
"Mich quält schon länger eine Frage:" + $crlf _
"Wer bin ich und, wenn ja, wie viele?"
HamNewMail ("absender@example.org", "you@example.com;me@example.net", $Header_and_Body)
Löscht die gesamte Jobliste.
Rückgabewert: 0
Startet die Abarbeitung der Jobliste für die in der Auswahl <server-list> angegebenen Server. Ist die Auswahl leer oder fehlt, werden alle im Hamster definierten Newsserver verwendet, ansonsten müssen die Server in der Form Servername1,Port1;Servername2,Port2; angegeben werden.
Rückgabewert: <0: Fehler, >=0: Anzahl der gestarteten Aufträge.
Beispiel:
HamNewsJobsStart( "newsserver1.example.com,nntp;newsserver2.example.org,119" )
Fügt die Ladeaufträge für Artikel automatisch der Jobliste zu, welche mit den in der Auswahl <server-list> angegebenen Servern ausgeführt werden können. Ist die Auswahl leer oder fehlt, werden alle im Hamster definierten Newsserver verwendet, ansonsten müssen die Server in der Form Servername1,Port1;Servername2,Port2; angegeben werden.
Rückgabewert: <0: Fehler, >=0: Anzahl der hinzugefügten Newsjobs.
Beispiel:
HamNewsJobsPullDef( "news1.example.net,nntp;news2.example.com,nntp" )
Fügt einzelne Ladeaufträge für Artikel der Jobliste zu, welche mit dem Server <server> (ohne Angabe des Ports) und den in der Gruppenselektion angegebenen Gruppen realisierbar sind. Ist die Gruppenselektion leer, werden alle verfügbaren Gruppen verwendet, andernfalls nur solche, die zum Regulären Ausdruck in <group-select> passen (siehe auch die FAQ Hamster und Reguläre Ausdrücke).
Rückgabewert: <0: Fehler, >=0: Anzahl der hinzugefügten Newsjobs.
Beispiele:
HamNewsJobsPull( "news.one.example.com" )
HamNewsJobsPull( "news.two.example.net", "^hamster\.((de|en)\.|admin\b)" )
Damit wird der Abruf neuer Artikel vom Newsserver begonnen. Ist die Auswahl <server-list> leer oder fehlt, werden alle im Hamster definierten Newsserver verwendet, ansonsten müssen die Server in der Form Servername1,Port1;Servername2,Port2; angegeben werden.
Achtung: Dieser Befehl ist nur noch aus Gründen der Kompatibilität vorhanden und sollte nicht mehr verwendet werden.
Rückgabewert: 0=OK/gestartet, <>0=nicht gestartet.
Beispiele:
HamNewsPull( "news1.example.com,nntp;news2.example.net,119" )
HamNewsPull
# Ersatz für HamNewsPost und HamNewsPull: HamNewsJobsClear HamNewsJobsPostDef HamNewsJobsPullDef HamNewsJobsStart
Fügt die Sendeaufträge für die Artikel in News.out automatisch der Jobliste zu. Ist die Auswahl <server-list> leer oder fehlt, werden alle im Hamster definierten Newsserver verwendet, ansonsten müssen die Server in der Form Servername1,Port1;Servername2,Port2; angegeben werden.
Rückgabewert: <0: Fehler, >=0: Anzahl der hinzugefügten Newsjobs.
Beispiele:
HamNewsJobsPostDef( "newsserver1.example.org,119;newsserver2.example.com,nntp" )
HamNewsJobsPostDef
Fügt einzelne Sendeaufträge für Artikel der Jobliste zu, welche mit dem in <server> angegebenen Server und den zum Regulären Ausdruck <group-select> passenden Gruppen realisierbar sind. Ist die Gruppenselektion leer, werden alle verfügbaren Gruppen verwendet. Der Reguläre Ausdruck <header-select> (siehe auch die FAQ Hamster und Reguläre Ausdrücke) kann zur erweiterten Auswahl genutzt werden: Nur zu dieser Bedingung passende Artikel werden dann versandt.
Hinweis: Der Hamster sendet nur Artikel an Server, die auch Ladeaufträge (Newspulls) für die entsprechende Gruppe haben, in welche der Artikel gesendet werden soll.
Rückgabewert: <0: Fehler, >=0: Anzahl der hinzugefügten Newsjobs.
Beispiele:
HamNewsJobsPost( "news.example.com", ".*", "^X-Post-To: news.example.com" )
HamNewsJobsPost( "news.example.com", "^alt\." )
HamNewsJobsPost( "news.example.com" )
Startet einen Auftrag, der neue Artikel (falls vorhanden) postet. Ist die Auswahl <server-list> leer oder fehlt, werden alle im Hamster definierten Newsserver verwendet, ansonsten müssen die Server in der Form Servername1,Port1;Servername2,Port2; angegeben werden.
Achtung: Dieser Befehl ist nur noch aus Gründen der Kompatibilität vorhanden und sollte nicht mehr verwendet werden.
Rückgabewert: 0: OK/gestartet, <>0: nicht gestartet.
Beispiele:
HamNewsPost( "news1.example.net,nntp;news2.example.org,119" )
HamNewsPost
# Ersatz für HamNewsPost und HamNewsPull: HamNewsJobsClear HamNewsJobsPostDef HamNewsJobsPullDef HamNewsJobsStart
Fügt einzelne Aufträge zum Austausch von Artikeln mit anderen Server der Jobliste zu, welche mit dem Server <server> und der Gruppenselektion angegebenen Gruppen realisierbar sind. Ist die Gruppenselektion leer, werden alle verfügbaren Gruppen verwendet, andernfalls nur solche, die zum Regulären Ausdruck in <group-select> passen (siehe auch die FAQ Hamster und Reguläre Ausdrücke).
Achtung! Diese Funktion ist nur für den Artikelaustausch von Servern untereinander bestimmt und nicht für den gewöhnlichen Artikelaustausch mit den Providern geeignet. Es wird bei diesem Befehl die Funktionalität des IHAVE-Kommandos nach RFC977 verwendet.
Rückgabewert: <0: Fehler, >=0: Anzahl der hinzugefügten Newsjobs.
Beispiele:
HamNewsJobsFeed( "news.example.com,nntp" )
HamNewsJobsFeed( "news.example.com,nntp", "^alt\." )
Liefert die Anzahl in der Auftragsliste vorhandenen Einträge.
Rückgabewert: Integer.
Siehe Beispiel unter HamNewsJobsSetPriority.
Liefert den Servernamen eines Eintrages der Auftragsliste.
Rückgabewert: String.
Siehe Beispiel unter HamNewsJobsSetPriority.
Liefert den Parameter eines Eintrages Auftragsliste. Der Parameter ist vom Typ des Eintrages abhängig.
Rückgabewert: String.
Siehe Beispiel unter HamNewsJobsSetPriority.
Liefert den Typ eines Eintrages der Auftragsliste.
Rückgabewert: Jobtyp Integer:
JOBTYPE_INVALID = 0
JOBTYPE_SRVINFOS = 1
JOBTYPE_NEWSPOST
= 2
JOBTYPE_GETBYMID = 3
JOBTYPE_NEWSPULL = 4
JOBTYPE_NEWSFEED
= 5
Siehe Beispiel unter HamNewsJobsSetPriority.
Liefert die Priorität eines Eintrages der Auftragsliste zurück.
Rückgabewert: Integer.
Standard für die jeweiligen Typen (vgl. HamNewsGetType) ist:
JOBPRIO_SRVINFOS: MaxInt-1 (2147483646)
JOBPRIO_NEWSPOST:
MaxInt-2 (2147483645)
JOBPRIO_GETBYMID: MaxInt-3 (2147483644)
JOBTYPE_NEWSPULL: Priorität entspricht der Anzahl der
Artikel in der Gruppe
JOBPRIO_NEWSFEED: MaxInt-4 (2147483643)
Siehe Beispiel unter HamNewsJobsSetPriority.
Setzt die Priorität <new_priority> für einen Eintrag in der der Auftragsliste.
Wenn Sie das Modul hwindows.hsm in Ihr Skript einbinden, können Sie für <new_priority> auch die dort vordefinierten Konstanten verwenden.
Rückgabewert: Integer.
Beispiel:
warning("Es wurden: ",HamNewsJobsGetCounter," NewsJobs nicht ausgeführt")
for ($i,0, HamNewsJobsGetCounter-1)
warning("Index: "+Str($i)+_
" Server: "+HamNewsJobsGetServer($i)+_
" Parameter: "+HamNewsJobsGetParam($i)+_
" Type: "+HamNewsJobsGetType($i)+_
" Priorität ."+HamNewsJobsGetPriority($i))
HamNewsJobssetPriority($i,10*$i)
endfor
for ($i,0, HamNewsJobsGetCounter-1)
warning("Index: "+Str($i)+_
" Server: "+HamNewsJobsGetServer($i)+_
" Parameter: "+HamNewsJobsGetParam($i)+_
" Type: "+HamNewsJobsGetType($i)+_
" Priorität ."+HamNewsJobsGetPriority($i))
endfor
HamNewsJobsStart
Fügt der Auftragsliste einen Eintrag hinzu. Server <server> und Parameter <parameter> müssen Zeichenketten sein, Typ <type> und Priorität <priority> dagegen numerische Werte.
Wenn Sie das Modul hamster.hsm in Ihr Skript einbinden, können Sie für <type> und <priority> die dort vordefinierten Konstanten verwenden.
Rückgabewert: Integer.
Beispiel:
NewsJobsAdd("news.wuff.de.example.org",4,"hamster.test",10000)
Löscht einen einzelnen Job an der Position <index> aus der Auftragsliste.
Rückgabewert: 0
Stellt einen Job zum Abholen der Serverinfos (active) in die NewsJobsqueue ein. Mit dem Parameter <server-list> kann gezielt ein einzelner Server ausgewählt werden.
Rückgabewert: Anzahl der in die NewsJobsqueue eingetragenen Jobs. Im Fehlerfall wird eine 0 zurück geliefert.
Liefert die Anzahl der im Hamster verfügbaren Newsgruppen (inkl. lokale Gruppen) zurück.
Rückgabewert: >=0: OK/Anzahl der Gruppen, <0: Fehler.
Siehe Beispiel unter HamGroupName.
Liefert den Index der in <groupname> angegebenen Newsgruppe oder -1 für eine unbekannte Newsgruppe.
Rückgabewert: >=0: OK/Index-Nummer, -1: unbekannte Gruppe.
Liefert den Namen einer Newsgruppe zu ihrem Index. Achtung, die Zählung der Indizes beginnt bei Null und geht bis HamGroupCount-1!
Rückgabewert: Zeichenkette.
Beispiel:
var( $grpidx )
$grpidx = 0
while( $grpidx < HamGroupCount )
( HamGroupName( $grpidx ) )
inc( $grpidx )
endwhile
Legt eine neue lokale Gruppe mit dem Namen <groupname> an. Optional können die Parameter <description> für eine Kurzbeschreibung (Tagline), <grouptype>, <maintainer> und <postserver> angegeben werden; alle sind Zeichenketten.
Mögliche Werte für <grouptype>:
"y" = Lese-/Schreibzugriff (Standard)
"n"
= kein Schreibzugriff (nur Lesen erlaubt)
"m" =
moderierte Gruppe
"g" = News-to-Mail-Gateway
Bei moderierten Gruppen und News-to-Mail-Gateways ist in <maintainer> die E-Mail-Adresse des Moderators bzw. der Mailingliste anzugeben.
Rückgabewert: 0 = OK/angelegt, -1 = nicht angelegt.
Löscht eine Gruppe mit dem Namen <groupname> und alle möglicherweise vorhandenen Pulls für diese Gruppe.
Rückgabewert: 0 = OK/gelöscht, -1 = nicht gelöscht.
Legt einen neuen Ladeauftrag für die Gruppe <groupname> vom Newsserver <server> an. Falls die Gruppe vorher lokal noch nicht existierte, wird sie automatisch angelegt.
Rückgabewert: 0 = OK/angelegt, -1 = nicht angelegt.
Löscht einen Ladeauftrag für die Gruppe <groupname> vom Newsserver <server>.
Rückgabewert: 0 = OK/gelöscht, -1 = nicht gelöscht.
Öffnet die Newsgruppe <groupname> und liefert ein Handle zurück, welches für die weiteren Zugriffe benötigt wird. Trat ein Fehler beim Öffnen der Newsgruppe auf, wird ein negativer Wert zurückgeliefert.
Achtung: Newsgruppen müssen im Skript immer explizit geschlossen werden (mit HamGroupClose), ein Ende des Skriptes bzw. das Schließen des Hamsterobjektes schließt das Handle nicht automatisch!
Rückgabewert: >=0: OK/Gruppen-Handle, <0: Fehler.
Schließt die zu dem Handle <grphdl> gehörige Newsgruppe. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: 0
Beispiel:
$grphdl = HamGroupOpen( "internal.misc" ) # weitere Anweisungen
HamGroupClose( $grphdl )
Liefert den Namen einer geöffneten Newsgruppe zu dem Handle <grphdl> zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: Zeichenkette.
Liefert die Gruppenbeschreibung der zu dem Handle <grphdl> gehörenden Newsgruppe zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: Zeichenkette.
Beispiel:
var( $grphdl ) $grphdl = HamGroupOpen( "hamster.de.misc" ) print( HamgroupDescriptionByHandle( $grphdl ) ) HamGroupClose( $grphdl )
Liefert die Anzahl der Artikel der zum Handle <grphdl> gehörenden Newsgruppe zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: >=0: OK/Anzahl der Artikel, <0: Fehler.
Siehe Beispiel unter HamArtText.
Liefert die kleinste vorhandene Artikelnummer in der zum Handle <grphdl> gehörenden Newsgruppe zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: >=0: OK/Artikelnummer, <0: Fehler.
Siehe Beispiel unter HamArtText.
Liefert die größte vorhandene Artikelnummer in der zum Handle <grphdl> gehörenden Newsgruppe zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: >=0: OK/Artikelnummer, <0: Fehler.
Siehe Beispiel unter HamArtText.
Liefert den Artikeltext inklusive Header zu dem Artikel mit der Nummer <artno> in der zum Handle <grphdl> gehörenden Newsgruppe zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete.
Rückgabewert: Zeichenkette (Artikeltext oder Leerstring "", falls der Artikel nicht vorhanden ist).
Beispiel:
var( $grpnam, $grphdl, $artmin, $artmax, $artno, $arttxt )
$grpnam = "internal.misc"
$grphdl = HamGroupOpen( $grpnam )
if( $grphdl >= 0 )
print( "Group ", $grpnam, ": ", HamArtCount($grphdl), " articles" )
$artmin = HamArtNoMin( $grphdl )
$artmax = HamArtNoMax( $grphdl )
$artno = $artmin
while( $artno <= $artmax )
$arttxt = HamArtText( $grphdl, $artno )
if( $arttxt <> "" )
print( "Article ", $artno, ": ", len($arttxt), " byte" )
endif
inc( $artno )
endwhile
HamGroupClose( $grphdl )
endif
Liefert den Artikeltext inklusive Header im Exportformat zu dem Artikel mit der Nummer <artno> in der zum Handle <grphdl> gehörenden Newsgruppe zurück. Dieses Handle ist das zuvor durch HamGroupOpen geöffnete. Das Exportformat unterscheidet sich im wesentlichen nur durch eine Zusatzzeile im Mbox-Format vor dem eigentlichen Posting.
Rückgabewert: Zeichenkette (Artikeltext oder Leerstring "", falls der Artikel nicht vorhanden ist).
Beispiel:
$arttxt = HamArtTextExport( $grphdl, $artno )
Importiert den in einer String-Variablen <article> enthaltenen Artikel in die Datenbank des Hamsters und liefert im Erfolgsfall TRUE zurück. Der Artikeltext muss aus einem Headerblock, einer Leerzeile und dem Textbody bestehen. Im Headerblock müssen mindestens der Date-, der From- und der Subject-Header enthalten sein. Der Newsgroups-Header ist dann nötig, wenn der Parameter <goverride> leer ist, der das Speichern des Artikels in einer Gruppe unabhängig vom Newsgroups-Header erlaubt. Ist die Gruppe unbekannt, wird der Artikel in der entsprechenden internen Gruppe gespeichert (Standard internal.misc). Ist der Parameter <ignorehist> TRUE, wird der Artikel auch dann noch angenommen, wenn er bereits in der History bekannt ist. Ist der Parameter <marknoarch> TRUE, wird der Artikel im Header X-Hamster-Info mit NoArchive=1 gekennzeichnet.
Rückgabewert: True (1): OK, False (0): Fehler.
Beispiel:
$article_text = ListGetText( $list) HamArtImport( $article_text, "internal.misc" )
Liefert 0 zurück, wenn ein Artikel mit der angegebenen Message-ID <msgid> in der History vorhanden ist und schreibt den Gruppennamen und die Artikelnummer innerhalb der Gruppe in die Variablen <groupname> und <artno>.
Rückgabewert: =0: OK/gefunden, <>0: Message-ID nicht gefunden.
Beispiel:
if( HamArtLocateMid( "<12345-67890@abc.def.invalid>", $groupname, $artno ) )
# weitere Anweisungen
endif
Liefert in <artno> die Artikelnummer des Artikels mit der Message-ID <msgid> innerhalb der Gruppe <grpname> zurück.
Rückgabewert: =0: OK/gefunden, -1: Message-ID nicht gefunden.
Löscht den Artikel mit der angegebenen Message-ID.
Rückgabewert: =0: gelöscht, <>0: Message-ID nicht gefunden/nicht gelöscht.
Löscht den Artikel mit der Artikelnummer <artno> in der Gruppe <grpname>. Die History bleibt dabei unberücksichtigt.
Rückgabewert: =0: gelöscht, -1: Funktion nicht ausführbar, -2: Artikel existiert nicht.
Liefert die Scoreliste für eine Gruppe zurück.
Rückgabewert: Zeichenkette.
Beispiel:
ListSetText( $ScoreList,HamScoreList( "hamster.de.talk" ) )
Liefert den Scorewert zurück, den der Artikel <article> in der Gruppe <grpname> erhalten würde, wobei die Variable <matchlog> anschließend alle relevanten Scorezeilen enthält. Die Variable <scope> legt fest, ob mit 1 nur der Overview-Score-Wert oder mit 2 der After-Load-Score-Wert oder die Summe aus beidem mit 0 zurückgeliefert wird.
Rückgabewert: Integer (Score-Wert).
Beispiel:
$ScoreValue = HamScoreTest( "hamster.de.talk", $Article, $MatchLog )
Testet die Syntax einer Filterzeile auf Richtigkeit und zeigt Informationen zur Interpretation im Log an.
Liefert alle Filterzeilen aus der Mailfilt.hst, die auf die ausgewählte Sektion <filtersection> in der Datei zutreffen.
Rückgabewert: Zeichenkette.
Beispiel:
varset( $ScoreList, ListAlloc())
ListSetText( $ScoreList,HamMailScoreList( "test" ) ) # auch möglich:HamMailScoreList( "[test]" )
varset( $i, 0 )
while( $i < ListCount( $ScoreList ) )
print( $i, " : ", ListGet( $ScoreList, $i ) )
inc( $i )
endwhile
ListFree( $ScoreList )