Pour ceux qui font des envois de mailing, la commande Modulo() est votre amis.
En effet, pour les sites comme FREEDEV qui ne bénéficie pas d`un contrat professionnel auprès de leur FAI, l`envoi de XXX emails est souvent considéré comme du SPAM.
Pour contourner cette limitation, la technique consiste donc a ce déconnecter du compte SMTP tous les XXX emails envoyés puis a ce reconnecter.
Voici un exemple de code :
//Ouverture de la session SMTP
//On fixe le délai de timeout, on le fixe à 20 secondes
EmailChangeTimeOut(20)
//Init des paramètres de l`email
Email.NbDestinataire = 1
Email.Expéditeur = "webmaster@freedev.eu"
Email.AdresseExpéditeur = "webmaster@freedev.eu"
Email.Sujet = "FreeDev : test envoi email"
Email.essage = "FreeDev : test envoi email"
//Ouverture sessions SMTP
SI PAS EmailOuvreSessionSMTP("SessionSMTP", "smtp.free.fr") ALORS
Erreur("Erreur : Impossibled`établir la connexion" + RC + EmailMsgErreur(Email.Erreur))
RETOUR
FIN
//***** ENVOI MAILING A 100 CONTACTS *****//
i est un entier = 1
POUR i = 1 A 100
//Je me déconnecte et reconnecte tous les 10 messages.
SI modulo(i, 10)=0 ALORS
EmailFermeSession("SessionSMTP")
Multitâche(100)
SI PAS EmailOuvreSessionSMTP("SessionSMTP","smtp.free.fr") ALORS
Erreur("Erreur : Impossible d`établir la connexion" + RC + EmailMsgErreur(Email.Erreur))
RETOUR
FIN
FIN
//On affecte le destinataire avec l`adresse contenue dans le tableau
Email.Destinataire[1] = TabAdresseEmail[i]
// Envoie du eMail
SI PAS EmailEnvoieMessage("SessionSMTP") ALORS
ErreurInfo(errMessage))
FIN
Jauge(i,nbAdressesEmail)
FIN
Source: Freedev