[Résolu] Thread pour mail | Sujet: [Résolu] Thread pour mail par toco sur 12/7/2006 9:33:56
Bonjour, Je souhaite faire envoyé un mail en tache de fond via GPRS. l'envoi en mode normal fonctionne bien, mais lorsque j'utilise ThreadExecute(), cela ne foncttionne plus! Le motif de cette utilisation est que pendant l'envoi du mail, l'application est bloquée.
FONCTION bEnvoyerMessage1()
// Variables locales
i est un entier
bOK est un booléen
sMsg est une chaîne
bAuMoinsUnContact est un booléen = Faux
sSujet est une chaîne = MaFenêtre..Titre
sContenu est une chaîne = "Ci-joint, message du PC " + ESP +...
Fiche_Intervention_Renseignements_Intervention_Renseignements.nom_pc
// Envoi d'un mail
sSMTP est une chaîne=INILit("SMTP","SMTP","", fRepEnCours() +"\Mail.ini")
// Connexion à la messagerie si pas de session en cours
// Ouverture de la session
EmailOuvreSessionSMTP(gsUser,sSMTP);Multitâche(-10)
SI ErreurDétectée ALORS
Erreur("Impossible d'établir la connexion", ErreurInfo(errRésumé))
FIN
// Insérer votre traitement ici
// Remise à zéro de la structure du mail
EmailRAZ()
// On vérifie qu'il y a au moins un client sélectionné
POUR i=1 A TableOccurrence(Table_Contacts)
// si le client fait partie des destinataires
SI Table_Contacts.inter[i] ALORS
bAuMoinsUnContact = Vrai
FIN
FIN
SI bAuMoinsUnContact=Faux ALORS
Info("Aucun contact sélectionné")
FIN
// Mémorise le message-type
Email.Expéditeur = gsExpéditeur // L'expéditeur
Email.NbDestinataire = 1 // Le nombre de destinataires
Email.Sujet = sSujet // Le sujet
Email.Message = sContenu // Le corps du message
Email.Attache = fRepEnCours()+"\Mess.pdf"
Email.NbAttache = 1
// initialisation de la table
POUR i=1 A TableOccurrence(Table_Contacts)
Table_Contacts.Col_etat[i] = ""
FIN
// pour chaque ligne de la table
POUR i=1 A TableOccurrence(Table_Contacts)
// si le client fait partie des destinataires
SI Table_Contacts.inter[i] ALORS
TableSelectPlus(Table_Contacts,i)
Col_etat[i]="En cours" ; Multitâche(-10)
// Personnalisation du message
// Envoi du message
// Préparation du message
Email.Destinataire[1] = Table_Contacts.mail_contact[i] // Le destinataire
bOK=EmailEnvoieMessage(gsUser)
SI PAS bOK ALORS
SI PAS gbSessionOuverte ALORS
Col_etat[i]="Abandon"
SORTIR
SINON
Col_etat[i]="Echec"
FIN
SINON
Col_etat[i]="Envoyé" ; MultitâcheRepeint();Multitâche()
FIN
FIN
FIN
SI bOK ALORS
// ferme la fiche
Ferme(Fiche_Renseignements_Intervention)
FIN
Appel du thraed:
ThreadMode(threadAuto)
ThreadExécute("envoi",threadUtiliseHyperFile,"bEnvoyerMessage1")
Merci de votre aide!
|
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|