|
Ce module contient des fonctions permettant l'envoi et la relève du courrier.
EnvoieCourrier consiste en une boucle qui va lire Fai.ini, section [SMTP], pour trouver le bon couple FAI-Serveur SMTP. Si ce couple est trouvé la fonction envoie le courrier, sinon la boucle recommence avec une autre ligne SMTP.
RecoieCourrier fonctionne de façon quasiment identique sauf qu'elle ne recherche pas de couple et traite toutes les lignes de Fai.ini, section [POP].
Chaque ligne correspond à un compte mail distant (une boite aux lettres).
Pratiquement toutes les lignes de ce module sont commentées, ce qui facilite la compréhension mais pas la lecture.
Une version non commentée est disponible ici
##################################################################### # Module : Mail.hsm # Description : Fonctions de traitement du courrier # Auteur : Olivier Zolli <ozolli@online.fr> # Version : 03/02/01 ##################################################################### # Procédure d'initialisation du module # Attention : La ligne qui suit n'est pas un commentaire ! #!initialize debug( 255, "<<< module 'Mail.hsm' >>>" ) Return(0) ##################################################################### # EnvoieCourrier : Envoie le courrier en instance avec le serveur # SMTP du FAI connecté. Le choix se fait grâce à la # section [SMTP] de Fai.ini # [Entrée] : Aucune # [Sortie] : Aucune ##################################################################### # Début de la fonction sub EnvoieCourrier # Déclaration et initialisation des variables var($Smtp,$NomFai,$Serveur,$Port) varset($I,0) # Début de la boucle do ... loop do # Incrémentation du compteur inc($I) # Lecture du fichier Fai.ini, section [SMTP], ligne SMTP<valeur du # compteur> et écriture du résultat dans $Smtp $Smtp=iniread(Hampath+"Fai.ini","SMTP","SMTP"+$I,0) # Sortie de la boucle s'il n'y a plus de ligne SMTP break($Smtp=0) # Découpage de $Smtp en 3 variables : $NomFai, $Serveur et $Port # Le découpage se fait au niveau des virgules grâce à une expression # régulière (regex) RE_Split($Smtp,", *",$NomFai,$Serveur,$Port) # Si la connexion active = $NomFai alors exécute les lignes suivantes if(RasGetConnection=$NomFai) # Envoi du courrier suivant les paramètres de Fai.ini HamSendMail($Serveur,$Port) # Sortie de la boucle break # Fin de la condition if endif # Fin de la boucle, retour au début (do) loop # Fin de la fonction endsub ##################################################################### # RecoitCourrier : Reçoit le courrier de tous les serveurs présents # Dans Fai.ini section [POP] # [Entrée] : Aucune # [Sortie] : Aucune ##################################################################### # Début de la fonction sub RecoitCourrier # Déclaration et initialisation des variables var($Pop,$Serveur,$Port,$Util,$Pass,$compte,$Filtre) varset($I,0) # Début de la boucle do ... loop do # Incrémentation du compteur inc($I) # Lecture du fichier Fai.ini, section [POP], ligne POP<valeur du # compteur> et écriture du résultat dans $Pop $Pop=iniread(Hampath+"Fai.ini","POP","POP"+$I,0) # Sortie de la boucle s'il n'y a plus de ligne POP break($Pop=0) # Découpage de $Pop en 6 variables : $Serveur, $Port, $Util, $Pass, # $compte et $Filtre. # Le découpage se fait au niveau des virgules grâce à une expression # régulière (regex) RE_Split($Pop,", *",$Serveur,$Port,$Util,$Pass,$compte,$Filtre) # Réception du courrier suivant les paramètres de Fai.ini HamFetchMail($Serveur,$Port,$Util,$Pass,$compte,$Filtre) # Fin de la boucle, retour au début (do) loop # Fin de la fonction endsub