ToDo: Kontrolle

Hamsterskripte: Eingebaute Funktionen (Server)

Allgemeine Hamster-Steuerung
Hamster-Status-Abfragen
Pfade und Verzeichnisse
Remote-Access-Steuerung
Senden und Empfangen von E-Mails
Senden und Empfangen von News-Artikeln
Liste der Newsjobs bearbeiten
Newsgruppen verwalten
News-Artikel verwalten
Scoring

Allgemeine Hamster-Steuerung

HamChangePassword(<AccountName>, <OldPW> , <NewPW> )

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.

HamReloadPassword

Liest die Password-Datei neu ein.

HamMessage( <msg>, <parameter> )
HamMessage( <msg> )

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> = 3–5, 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, 15–17: 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

HamShutdown( <delay> )

Den Hamster beenden. Die Zeit bis Programmende <delay> muss in Millisekunden angegeben werden.

Entspricht „ HamMessage(1,<x>)“.

HamStopAllTasks

Stoppt alle Aufträge. Entspricht „ HamMessage(8)“.

HamResetCounters( <x> )

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>)“.

HamNNTPServer( <x> )
HamSMTPServer( <x> )
HamPOP3Server( <x> )
HamIMAPServer( <x> )
HamReCoServer( <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>)“.

HamMainWindow ( <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.

HamTrayIcon ( <x> )

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

HamReloadConfig ( <x> )

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>)“.

HamReloadIPAccess

Lädt die Datei „IPAccess.hst“ erneut.

Entspricht „ HamMessage(10)“.

HamDialogEditDirs( <x> )

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>)“.

HamDialogScripts( <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>)“.

HamDialogAddPull ( <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>)“.

HamDialogKillFileLog ( <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>)“.

HamDialogMailKillFileLog ( <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>)“.

HamFlush

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

HamPurge( <option>, <group> )
HamPurge( <option> )

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

HamCheckPurge

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.

HamRebuildGlobalLists

Startet das Erzeugen der globalen Listen.

Rückgabewert: 0 = OK/gestartet, <>0 = nicht gestartet.

Beispiel:

HamWaitIdle
HamRebuildGlobalLists
HamWaitIdle

HamRebuildHistory

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

Hamster-Status-Abfragen

HamVersion( <info> )
HamVersion

Ü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 )

HamGetStatus( <status>, <parameter> )

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))

HamMainFQDN

Liefert den allgemeinen FQDN des Hamsters zurück.

HamMIDFQDN

Liefert den FQDN für Message-ID des Hamsters zurück.

HamEnvelopeFrom

Liefert den vom Hamster verwendeten „Envelope-From:“-Header zurück.

HamPostmaster

Liefert den vom Hamster verwendeten Postmaster-Account zurück.

HamUsenetAcc

Liefert den vom Hamster verwendeten Newsmaster-Account zurück.

Pfade und Verzeichnisse

HamPath
HamHscPath
HamHsmPath
HamLogsPath
HamServerPath
HamGroupsPath
HamMailPath
HamMailsOutPath
HamNewsOutPath
HamRCPath

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

Remote-Access-Steuerung

HamSetLogin( <identifier>, <user>, <pass> )

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", "" )

HamRasDial( <name>, <user>, <pass> )
HamRasDial( <name>, <user> )
HamRasDial( <name> )

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

HamRasHangup

Schließt die aktuelle, mit „ HamRasDial“ geöffnete, DFÜ-Netzwerkverbindung.

Rückgabewert: 0=OK/Verbindung abgebaut; >0=Fehler-Code; -1=DFÜ-Netzwerk nicht installiert.

HamIsIdle

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

HamWaitIdle( <timeout> )
HamWaitIdle

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).

HamThreadCount

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.

Senden und Empfangen von Emails

HamMailExchange( <server-list>, <mode>)
HamMailExchange

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" )

HamFetchMail( <server> [ , <port>, <user>, <pass>, <destuser>, <filter>, <LeaveOnServer>, <SSLMode>, <SSLVerify>, <SSLCaFile> ] )

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" )

HamSendMail( <server> [ , <port>, <from-select>, <to-select>, <SSLMode>, <SSLVerify>, <SSLCaFile> ] )

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" )

HamSendMailAuth( <server> [ , <port>, <user>, <pass>, <from-select>, <to-select>, <SSLMode>, <SSLVerify>, <SSLCaFile> ] )

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@" )

HamNewMail ( <EnvelopeFrom>, <EnvelopeTo>, <Mailtext> )

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)

Senden und Empfangen von News-Artikeln

HamNewsJobsClear

Löscht die gesamte Jobliste.

Rückgabewert: 0

HamNewsJobsStart( <server-list> )
HamNewsJobsStart

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" )

HamNewsJobsPullDef( <server-list> )
HamNewsJobsPullDef

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" )

HamNewsJobsPull( <server>, <group-select> )
HamNewsJobsPull( <server> )

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)" )

HamNewsPull( <server-list> )
HamNewsPull

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

HamNewsJobsPostDef( <server-list> )
HamNewsJobsPostDef

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

HamNewsJobsPost( <server>, <group-select>, <header-select> )
HamNewsJobsPost( <server>, <group-select> )
HamNewsJobsPost( <server> )

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" )

HamNewsPost( <server-list> )
HamNewsPost

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

HamNewsJobsFeed( <server>, <group-select> )
HamNewsJobsFeed( <server> )

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\." )

Liste der Newsjobs bearbeiten

HamNewsJobsGetCounter

Liefert die Anzahl in der Auftragsliste vorhandenen Einträge.

Rückgabewert: Integer.

Siehe Beispiel unter „HamNewsJobsSetPriority“.

HamNewsJobsGetServer( <index> )

Liefert den Servernamen eines Eintrages der Auftragsliste.

Rückgabewert: String.

Siehe Beispiel unter „HamNewsJobsSetPriority“.

HamNewsJobsGetParam( <index> )

Liefert den Parameter eines Eintrages Auftragsliste. Der Parameter ist vom Typ des Eintrages abhängig.

Rückgabewert: String.

Siehe Beispiel unter „HamNewsJobsSetPriority“.

HamNewsJobsGetType( <index> )

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“.

HamNewsJobsGetPriority( <index> )

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“.

HamNewsJobsSetPriority( <index> , <new_priority> )

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

HamNewsJobsAdd ( <server > , <type> , <parameter>, <priority> )

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)

HamNewsJobsDelete( <index> )

Löscht einen einzelnen Job an der Position <index> aus der Auftragsliste.

Rückgabewert: 0

HamNewsJobsCheckActive( <server-list> )
HamNewsJobsCheckActive

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.

Newsgruppen verwalten

HamGroupCount

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“.

HamGroupIndex( <groupname> )

Liefert den Index der in <groupname> angegebenen Newsgruppe oder -1 für eine unbekannte Newsgruppe.

Rückgabewert: >=0: OK/Index-Nummer, -1: unbekannte Gruppe.

HamGroupName( <index> )

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

HamAddGroup ( <groupname> [ , <description>, <grouptype>, <maintainer>, <postserver> ] )

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.

HamDelGroup ( <groupname> )

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.

HamAddPull ( <server> , <groupname> )

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.

HamDelPull ( <server> , <groupname> )

Löscht einen Ladeauftrag für die Gruppe <groupname> vom Newsserver <server>.

Rückgabewert: 0 = OK/gelöscht, -1 = nicht gelöscht.

HamGroupOpen( <groupname> )

Ö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.

HamGroupClose( <grphdl> )

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 )

HamGroupNameByHandle( <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.

HamgroupDescriptionByHandle( <grphdl> )

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 )

News-Artikel verwalten

HamArtCount( <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“.

HamArtNoMin( <grphdl> )

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“.

HamArtNoMax( <grphdl> )

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“.

HamArtText( <grphdl>, <artno> )

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

HamArtTextExport( <grphdl>, <artno> )

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 )

HamArtImport( <article> [ , <goverride>, <ignorehist>, <marknoarch> ] )

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" )

HamArtLocateMid( <msgid>, <groupname>, <artno> )
HamArtLocateMid( <msgid> )

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

HamArtLocateMidInGroup( <msgid>, <grpname>, <artno> )

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.

HamArtDeleteMid( <message-id>)

Löscht den Artikel mit der angegebenen Message-ID.

Rückgabewert: =0: gelöscht, <>0: Message-ID nicht gefunden/nicht gelöscht.

HamArtDeleteNrInGroup ( <artno> , <grpname> )

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.

Scoring

HamScoreList( <grpname> )

Liefert die Scoreliste für eine Gruppe zurück.

Rückgabewert: Zeichenkette.

Beispiel:

ListSetText( $ScoreList,HamScoreList( "hamster.de.talk" ) )

HamScoreTest( <grpname>, <article>, <matchlog>, <scope> )
HamScoreTest( <grpname>, <article> )

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 )

Testmailfilterline( <filterline>)

Testet die Syntax einer Filterzeile auf Richtigkeit und zeigt Informationen zur Interpretation im Log an.

HamMailScoreList( <filtersection> )

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 )