Am 15.01.2019 um 07:16 schrieb Franz Rachbauer:
> Hallo Alfred,
> inzwischen sind es nur mehr 2 POs, früher waren es 6.
>
> Am 14.01.2019 um 18:20 schrieb Alfred Peters:
>> Es schrieb einmal Franz Rachbauer:
>>
>>> Die Benutzer, die er anmeckert, sind jene, die im Hamster unter $1 bis
>>> $5 eingetragen sind (es ist nicht nur office).
>>
>> Wie sieht das Skript aus, mit dem der Mailabruf erfolgt?
>
> #!load hamster.hsm
> #Zuerst eine endlosschleife. Einmal aufgerufen, kann es nur noch über
> #das Skript-menu in Hamster beendet werden
Sorry, aber dafür gibt es eine viel elegantere Lösung. Du solltest dich
unbedingt mal in der Hilfe über den Befehl um AtExecute informieren.
> HamFetchMail ("
pop.1und1.de","pop3","$1","","office")
> #HamFetchMail ("
pop.1und1.de","pop3","$2","","alfred")
> #HamFetchMail ("
pop.1und1.de","pop3","$3","","sonja")
> #HamFetchMail ("
pop.1und1.de","pop3","$4","","hilde")
> HamFetchMail ("
pop.1und1.de","pop3","$5","","stefan")
> #HamFetchMail ("
pop.1und1.de","pop3","$6","","pulver")
>
> HamWaitIdle(20000)
Hmm; das sind maximal 20 Sekunden (oder weniger, wenn alle Tasks früher
fertig sind). Ich halte es zwar für eher unwahrscheinlich, dass sich die
Schleife zu schnell wiederholt, und sich so eventuell noch nicht
abgearbeitete Tasks langsam aufstapeln, aber setz doch mal vorübergehend
folgende Zeilen in die Schleife:
| print("ThreadCount = ", HamThreadCount, "; Tasks (Active/Wait/Run) =
", GetTasksActive, " / ", GetTasksWait, " / ", GetTasksRun)
und beobachte mal, ob einer der Zähler hoch läuft; v. a. in dem
Zeitraum, in dem (bzw. kurz bevor) der Fehler erstmalig auftritt.
> #Danach alle Emails verschicken, wegen POP-bevore-SMTP
> addlog("Starting Mailsend",4,false)
> HamSendMailAuth("
smtp.1und1.de", "smtp", "$1", "", "")
Und auch das ist so eigentlich Unsinn. *Entweder* du gibst /alle/
relevanten Daten im Skript an, *oder* (wesentlich besser) du gibst alle
Daten bei der Serverkonfiguration ein. Aber /so/ (Port hier,
Zugangsdaten dort, SSL-Einstellungen noch wo anders, nämlich aus der
Konfiguration) ist das völlig undurchsichtig und fehleranfällig (wobei
ich nicht davon aus gehe, dass das jetzt mit deinem aktuellen Problem zu
tun hat).
> #Jetzt ein wenige Tuning am Delay. Zwischen 18 und 6 Uhr bekommt man
> #üblicherweise nicht so viele Mails, da reicht es alle 40min
Siehe AtAdd.
> #ansonsten alle 5min
> else {
> addlog("Finished all Tasks, sleeping 5mins",4,false)
> sleep (5 *60*1000)
> }
> endif
Das betrifft aber nur das Skript selbst; die in HamFetchMail,
HamSendMailAuth usw. angestoßenen Tasks laufen aber asynchron. Du hast
keine Kontrolle, dass die nach diesen 5 Minuten (oder, um genau zu sein,
5 Minuten 40 Sekunden; man HamWaitIdle) auch wirklich abgearbeitet sind
(s. o.).
Wolfgang