1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
PROCÉDURE Mails_Envoi_Mails(tabEmails,bValide = Faux )
// -- récupère les identifiants smtp et connecte une nouvelle session --
sUser, sPassword, sServeur, sExpediteur sont des chaînes
nPort,nTypeSecurite est un entier
bWininet est un booléen
// Valeurs des préférences
sUser = val_preference("Mail_user")
sPassword = val_preference("Mail_password")
sServeur = val_preference("Mail_smtp")
nPort = val_preference("Mail_Port_smtp")
nTypeSecurite = val_preference("Mail_SMTP_Type_Securite")
bWininet = val_preference("Mail_SMTP_Mode_Connexion")
sExpediteur = val_preference("Mail_email")
// valider les valeurs
SI sUser = "" OU sServeur = "" ALORS
Erreur("Vous devez renseigner les options du serveur smtp !")
RENVOYER 0
FIN
SI sExpediteur= "" ALORS
Erreur("Vous devez renseigner l'adresse e-mail dans les préférences !! "+ RC + "(onglet Internet)")
RENVOYER 0
FIN
SI nPort = 0 ALORS nPort = 25 // port par defaut
SI bWininet = Faux ALORS
EmailParamètre(emailParamètreMode, 1)
SINON
EmailParamètre(emailParamètreMode, 0)
FIN
// test de connexion
MaSessionSMTP est un emailSessionSMTP
MaSessionSMTP.AdresseServeur= sServeur
MaSessionSMTP.Nom = sUser
MaSessionSMTP.MotDePasse = sPassword
SELON nTypeSecurite
CAS 1:
MaSessionSMTP.Option = emailOptionDéfaut
CAS 2 :
MaSessionSMTP.Option = optionSSL
CAS 3 :
MaSessionSMTP.Option = emailOptionSécuriséTLS
AUTRE CAS
MaSessionSMTP.Option = emailOptionDéfaut
FIN
MaSessionSMTP.Port = nPort
EmailChangeTimeOut(10) //
SI PAS EmailOuvreSession(MaSessionSMTP) ALORS
Erreur("Impossible d'établir la connexion", ErreurInfo(errComplet))
RENVOYER 0
FIN
// -- fin de connexion au smtp --
// preparation de la jauge
// nombre de mails a envoyer
nNbremail,nPas est un entier
nNbremail = TableauInfo(tabEmails,tiNombreTotal)
SI nNbremail = 0 ALORS nNbremail = 1
nPas = 100 / nNbremail
OuvreFille(FEN_Jauge)
FEN_Jauge.JAUGE_Jauge = 0
nCptmail, nCpteur est un entier
POUR TOUT mail DE tabEmails
// -- gérer les deconnexions / reconnexion tous les x mails --
nCpteur++ // incremente le compteur
// -- deconnexion smtp tous les x mails --
SI modulo(nCpteur,10) = 0 ALORS
EmailFermeSession(MaSessionSMTP)
FEN_Jauge.LIB_Jauge..Libellé = "Déconnexion SMTP ....."
Multitâche(100)
SI PAS EmailOuvreSession(MaSessionSMTP) ALORS
Erreur("Impossible d'établir la connexion", ErreurInfo(errComplet))
RENVOYER 0
FIN
FIN
// supprimer les LF uniques
mail..Message = LineFeedSeulsEnRC(mail..Message)
SI PAS EmailEnvoieMessage(MaSessionSMTP,mail,emailOptionEncodeEntête) ALORS
Erreur(ErreurInfo(errComplet))
SINON
FEN_Jauge.JAUGE_Jauge+= nPas
FEN_Jauge.LIB_Jauge..Libellé = "Envoi email " + FEN_Jauge.JAUGE_Jauge + " %"
nCptmail++
Multitâche(10)
FIN
FIN
// fermer la jauge
Ferme(FEN_Jauge)
// deconnecter le smtp
EmailFermeSession(MaSessionSMTP)
// renvoie le nombre de mails envoyés
RENVOYER nCptmail |
Partager