#!hs2
#####################################################################
# Script : OZPlan.hsm
# Description : Envoi et réception planifiés du courrier et des news
# La sélection Des FAIs se fait d'après une liste
# préférientielle.
# Configuration : Les FAIs et les serveurs SMTP ET POP3 sont indiqués
# dans le fichier Fai.ini.
# Ne pas oublier de configurer aussi Hamster !
# Nécessite :
# - Fai.ini
# - Fai.hsm
# - News.hsm (BStrings.hsm, BMsgHeader.hsm, BFichierTexte.hsm)
# - Mail.hsm
#
# Auteur : Olivier Zolli <ozolli@online.fr>
# Version : 15/02/01
#####################################################################
# Chargement des modules nécessaires.
#!load Fai.hsm
#!load News.hsm
#!load Mail.hsm
# Remise à zéro des compteurs et de l'écran log
HamMessage(2,0)
# Remise à zéro des entrées de planification
AtClear
# Lancement du planificateur
# Appel de la fonction Traitement de 8:00 h, à 19:00 h,
# du lundi au vendredi, toutes les 60 minutes
AtAdd(Traitement,"08:00","19:00","1111100",60)
# Appel de la fonction Traitement à midi, samedi et dimanche
AtAdd(Traitement,"12:00","","0000011")
# Ecrit un message dans l'écran log
print( "Script OZPlan activé" )
# Attend qu'une des 2 entrées de planification se déclenche et
# exécute la fonction qui lui est associée (Traitement)
AtExecute
# Fin du script. Ne devrait jamais être lu puisque la
# planification est sensée être infinie
quit
# Connexion, envoi, réception et déconnexion : Traitement
sub Traitement
print("SCRIPT EN COURS DE TRAITEMENT")
# Déclaration et initialisation des variables
VarSet($CxHamster,True)
# Préparation des articles
# News Jobs
EnteteNews
HamNewsJobsClear
HamNewsJobsPostDef
HamNewsJobsPullDef
HamWaitIdle
# Teste si un FAI est déja connecté
if(RasIsConnected)
$CxHamster=False
print("Déja connecté à "+RasGetConnection)
# Sinon
else
# Répète les instructions qui suivent (jusqu'à until)
repeat
# Connexion au 1er FAI de la liste (Fai.ini) qui répond
cxmulti
# Si connexion établie
if(RasIsConnected)
print("Connecté à "+RasGetConnection)
# Sinon
else
# Ecrit un message d'avertissement dans le log
Warning("Le script OZPlan n'a pas pu se connecter, _
reconnection dans 25 minutes.")
# Attente de 25 minutes
sleep(1500000)
# Fin de condition Si connexion établie
endif
# Jusqu'à établissement d'une connexion
until(RasIsConnected)
Fin de condition Si un FAI est déja connecté
endif
# Connexion au(x) serveur(s) de news.
HamNewsJobsStart
# Envoi du courrier en instance.
EnvoieCourrier
# Réception du courrier.
RecoitCourrier
# Déconnexion du FAI si c'est OZPlan qui s'est connecté
if($CxHamster)
# Attente de fin des tâches en cours puis déconnexion
HamWaitIdle
HamRasHangup
endif
HamWaitIdle
print("Traitement du courrier et des news effectué.")
# Fin de la fonction, retour au planificateur
Endsub
|