PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Mail en mode thread?
Mail en mode thread?
Iniciado por MrSamForm, 13,abr. 2015 18:11 - 2 respuestas
Miembro registrado
20 mensajes
Publicado el 13,abril 2015 - 18:11
Bonjour à tous.

Suite à une obligation d'utiliser un environnement où le serveur mail est légèrement lent, quand j’envoie un mail via l'application que j'ai créé, cela freeze et naturellement on est obligé d'attendre que les mails s'envoient avant de reprendre la main sur l'application. (les mails sont bien envoyés mais lentement!)
(je précise que quand j'utilise mon application dans MON environnement, les mails partent illico)

J'ai donc pensé à un thread secondaire sur l'application qui va donc executer ma procédure en arrière plan et me libérer mon application entre temps...

J'ai regardé par tous les moyens possible mais chaque fois ça plante et je compte sur vous pour me dire (ou me guider) d'où est ce que j'ai foiré la ligne.

Merci beaucoup d'avance.

Dans le code du bouton qui me permet de valider mon opération il y a ce code la :

ThreadExecute("Notification Nouvelle inscription formation NTC",threadNormal,Envoimail)


Qui appel donc la procédure locale suivante :

Procedure Envoimail()

MonMessage est un Email
sDestinataire est une chaîne = ""

HLitRecherche(User,NotificationFormationNTC,Vrai,hIdentique)
TANTQUE HTrouve(User)
sDestinataire = User.Mail
Ajoute(MonMessage..Destinataire, sDestinataire)
HLitSuivant(User)
FIN


MonMessage..Sujet = "Nouvelle Formation"

MonMessage..Message = "Bonjour " +RC + RC + RC + gsNomPrenomLogin + " viens d'enregistrer une nouvelle formation " + RC + RC + RC + "Notifications service" + RC + RC + RC + "Veuillez ne pas répondre à ce mail automatique. " + RC + RC + "Aucunes réponses ne sera faites! Bonne journée"

MaSession est une EmailSessionSMTP

MaSession..Nom = gsMailLoginNotification
MonMessage..Expediteur = gsMailLoginNotification
MaSession..AdresseServeur = gsMailServeurNotification
MaSession..MotDePasse = gsMailPasswordNotification
MaSession..Port = gnMailNumPortNotification

SI PAS EmailOuvreSession(MaSession) ALORS RETOUR

EmailEnvoieMessage(MaSession,MonMessage)

EmailFermeSession(MaSession)

ThreadArrête("Notification Nouvelle inscription formation NTC")


Et cela ne marche pas... dans le sens où les mails partent... mais cela freeze toujours...
En résumé, rien ne se passe en arrière plan...

Où ai-je fait faux ? :'(

Je précise aussi que j'ai essayé avec :

ThreadExecute("Notification Nouvelle inscription formation NTC",threadContexteGlobal,Envoimail)


Merciiiiiiiiiiiiiiiiiiiiiiiiiiiii beaucoup d'avance !

--
Allez un petit coup de pouce et on y arrive :)
Miembro registrado
18 mensajes
Publicado el 14,abril 2015 - 14:45
Bonjour,

A tu essayer avec comme paramètre :

threadCopieComplèteContexteHFSQL
ou
threadCopieLégèreContexteHFSQL

Sinon essaye avec les nouvelles fonctions TâcheParallèle

d est une Description de TâcheParallèle
d.Procédure = Envoimail
d.Option = tpoCopieLégèreContexteHFSQL
TâcheParallèleExécute(d)

Cordialement
Publicado el 05,diciembre 2019 - 10:26
Bonjour,

J'ai moi-même pu constater un "plantage" aélatoire d emailouvression, inclus dans un thread secondaire.

Je suis sur windows mobile, en environnement android

Comment le problème a-t-il été résolu ?

Cordialement
Laurent