// On va parcourir tous les transferts enregistrés afin de les effectuer.
NbTransfert est un entier TranfertEnCours est un entier
NbMessage est un entier MessageEnCours est un entier
sFichierTemp est une chaîne = fFichierTemp() sFichierLOG est une chaîne = ComplèteRep(fRepExe())+FIC_LOG
sUtilisateurSMTP est une chaîne
Sablier(Vrai) GROUPE_ENCOURS..Etat = Grisé
TraceDébut(trFichier, sFichierLOG)
Trace("-------------------------------------------------------------------------------------") Trace("-------------------------------------------------------------------------------------") Trace("WD TRANSFERT MAIL "+DateVersChaîne(DateSys())+" - " +HeureVersChaîne(HeureSys())) Trace(" ")
POUR TOUT TRANSFERT_MAIL SUR ADRESSE_ORIGINE TranfertEnCours++ Jauge(TranfertEnCours, NbTransfert, TranfertEnCours+"/"+NbTransfert)
// Ouverture de la session POP3 pour lire les messages de transfert en cours SI EmailOuvreSessionPOP3(TRANSFERT_MAIL.POP_UTILISATEUR,TRANSFERT_MAIL.POP_PASSE,TRANSFERT_MAIL.POP_ADRESSE,TRANSFERT_MAIL.POP_PORT) ALORS // On ouvre la session SMTP qui permettra d'envoyer les messages redirigés... sUtilisateurSMTP = SessionSMTP() SI sUtilisateurSMTP <> "" ALORS
// Récupération du nombre de message pour affichage du suivi NbMessage = EmailNbMessage(TRANSFERT_MAIL.POP_UTILISATEUR) MessageEnCours = 0 // Session POP3 et SMTP sont ouvertes, on peut faire le transfert... EmailLitPremier(TRANSFERT_MAIL.POP_UTILISATEUR) TANTQUE PAS Email.EnDehors
MessageEnCours++ Trace(TRANSFERT_MAIL.ADRESSE_ORIGINE+ " ("+MessageEnCours+"/"+NbMessage+")") Trace(" >> "+Email.expediteur) Trace(" >> "+Email.DateRéception) Trace(" >> "+Email.sujet) // Transfert vers l'adresse email qui va recevoir la redirection // Le source du message va être mis à jour avec cette nouvelle adresse // tout en concervant le contenu précédent Email.NbDestinataire = 1 Email.destinataire[1] = TRANSFERT_MAIL.ADRESSE_TRANSFERT // Sauvegarde du nouveau message fSauveTexte(sFichierTemp, Email.source) SI EmailEnvoie(sUtilisateurSMTP, sFichierTemp) ALORS Trace(" >> OK Redirection vers "+TRANSFERT_MAIL.ADRESSE_TRANSFERT) SINON Trace(" >> ERREUR Redirection vers "+TRANSFERT_MAIL.ADRESSE_TRANSFERT) Trace(EmailMsgErreur(Email.erreur)) FIN // Passage au message suivant EmailLitSuivant(TRANSFERT_MAIL.POP_UTILISATEUR) FIN EmailFermeSession(TRANSFERT_MAIL.POP_UTILISATEUR) EmailFermeSession(sUtilisateurSMTP) SINON Trace("Erreur d'ouverture de session SMTP pour "+TRANSFERT_MAIL.ADRESSE_ORIGINE) Trace(EmailMsgErreur(Email.erreur)) FIN SINON Trace("Erreur d'ouverture de session POP3 pour "+TRANSFERT_MAIL.ADRESSE_ORIGINE) Trace(EmailMsgErreur(Email.erreur)) FIN FIN
// Suppression du fichier temporaire ... fSupprime(sFichierTemp)
// Terminaison de la trace et mise à jour du fichier de suivi TraceFin()
// Mise à jour de l'interface pour rendre la main à l'utilisateur ExécuteTraitement(IMAGE_LOG, trtInit) GROUPE_ENCOURS..Etat = Actif Jauge() Sablier(Faux) |