|
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