IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Problème d'envoi de message dans un boucle tantque


Sujet :

WinDev

  1. #1
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Problème d'envoi de message dans un boucle tantque
    Bonjour. Je developpe une application permettant d'envoyer le meme message aux clients avec des pieces jointes différentes.

    Pour cela j'arrive à envoyer individuellent les mes messages aux clients grace à ce code:

    Password est une chaîne = "mokondji"
    NomUser est une chaîne="Administrateur"
    SI EmailOuvreSessionSMTP(NomUser, Password, "............" , 255) = Vrai ALORS
    Info("Connexion etabli")
    // initialisation des mails
    Email.AdresseExpéditeur="Service d'envoi automatique de relévé de compte"
    Email.Expéditeur = "releveddtbcc@bcc...."
    Email.Destinataire= SAI_destinataire
    Email.NbDestinataire= 1
    Email.Sujet=SAI_objet
    Email.Message= SAI_message
    Email.NbAttache=1
    Email.Attache= "S:\Extraits\Encours\windevmobilemail.pdf"
    EmailEnvoieMessage(NomUser)
    SINON
    // aie, y'a erreur afficher...
    Erreur("Il y a une erreur")
    // Envoie l'email
    SI EmailEnvoieMessage(NomUser) = Faux ALORS
    Erreur("L'envoi du message a échoué")
    FIN
    EmailFermeSession(NomUser)
    FIN



    Maintenant je veux envoyer ce message à plusieurs clients. Je recupère leurs adresse mail dans un base de données oracle via l'accès natifs et une chaine de caractère permettant de construire de façon dynamique le chemin d'accès au fichier joint au message dans un boucle tantque

    Les valeurs sont bien transmises mails les mails n'arrive pas à destination et pas de message d'erreur
    voici le code du boucle tantque:

    bIniReq est un booléen= HExécuteRequête(REQ1, hRequêteDéfaut, 5)
    //recupération du resultat de la reqête
    ResultatReq = HExécuteRequêteSQL(REQ1, MaConnexion, hRequêteSansCorrection, "SELECT COMP, EMAIL FROM RELTAB")
    HLitPremier(REQ1)
    TANTQUE PAS HEnDehors(REQ1)
    Cpt= REQ1.COMP
    Em= REQ1.EMAIL
    Chemin est une chaîne=Caract(34)+ChaîneConstruit("C:\MAIL_ENCOURS\ %1", Cpt)+".PDF"+Caract(34)
    Password est une chaîne = "........."
    NomUser est une chaîne="Administrateur"
    SI EmailOuvreSessionSMTP(NomUser, Password, "..............." , 255) = Vrai ALORS
    // initialisation des mails
    Email.AdresseExpéditeur="Service d'envoi automatique de relévé de compte"
    Email.Expéditeur = "releoùui_èbc.com"
    Email.Destinataire= Em
    Email.NbDestinataire= 1
    Email.Sujet= gsVsujet
    Email.Message= gsVmessag
    Email.NbAttache=1
    Email.Attache=Chemin
    EmailEnvoieMessage(NomUser)
    SINON
    // aie, y'a erreur afficher...
    Erreur("Il y a une erreur")
    // Envoie l'email
    SI EmailEnvoieMessage(NomUser) = Faux ALORS
    Erreur("L'envoi du message a échoué")
    FIN
    FIN
    EmailFermeSession(NomUser)
    DélaiAvantFermeture(1000)
    Info("Objet "+SAI_Objet+"Message "+SAI_Message+ "destinataire "+Em+"Chemin "+Chemin)
    HLitSuivant(REQ1)
    FIN
    DélaiAvantFermeture(1000)
    Info("Procédure terminée avec succès")
    DélaiAvantFermeture(1000)


    Quelqu'un peut m'aider?
    Merci d'avance!!!

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Il faut tester le retour de EmailEnvoieMessage(), et en cas d'erreur voir ce que retourne ErreurInfo().
    Tu sauras peut-être pourquoi les mails ne partent pas.

    Tatayo.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut La valeur de retour de ErreurInfo()
    Merci pour votre aide!!!
    ErreurInfo() retourne : La pièce jointe "C:\MAIL_ENCOURS\37100000101.PDF" n'existe pas. Le message ne peut être envoyé.

    Je crois que je dois revoir la construction dynamique du chemin de recupération du fichier attaché au message

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Bonjour,

    J'ai pas lu l'intégralité de l'algo mais :

    -> déclarer les variables au milieu d'une boucle.... no comment...
    -> Chemin est une chaîne=Caract(34)+ChaîneConstruit("C:\MAIL_ENCOURS\ %1", Cpt)+".PDF"+Caract(34) => il y a un espace en trop dans avant %1, il me semble
    -> pourquoi ouvrir une session SMTP à chaque envoi au lieu d'en ouvrir une pour envoyer tout ?
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Problème de session invalide lors de l'utilisation EmailEnvoieMessage()
    Merci Tatayo pour votre aide precieuse, en revoyant la dont le chemin du fichier attaché est construit le message d'erreur ne s'affiche plus.

    Maintenant un autre problème surgit et j'ai le message d'erreur ci-dessous:
    "Vous avez appelé la fonction EmailEnvoieMessage.
    La session de messagerie "relevecptbcc@bcc-bank.com" n'est pas une session valide."

    La session de messagerie ici. Je ne sais pas si c'est la session windows du serveur ou l'adresse de messagerie du compte relevcptbcc@bcc-bank.com

    Si quelqu'un a une idée, n'hésite pas de m'aider!!!
    Merci d'avance

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    bonjour,

    tu as 2 fois EmailEnvoiMessage donc la 2e fois, ce ne sera pas valide.

    Enlève cette partie du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    bIniReq est un booléen= HExécuteRequête(REQ1, hRequêteDéfaut, 5)
     //recupération du resultat de la reqête
     ResultatReq = HExécuteRequêteSQL(REQ1, MaConnexion, hRequêteSansCorrection, "SELECT COMP, EMAIL FROM RELTAB")
     HLitPremier(REQ1)
     TANTQUE PAS HEnDehors(REQ1)
     Cpt= REQ1.COMP
     Em= REQ1.EMAIL
     Chemin est une chaîne=Caract(34)+ChaîneConstruit("C:\MAIL_ENCOURS\ %1", Cpt)+".PDF"+Caract(34)
     Password est une chaîne = "Bcc@2013"
     NomUser est une chaîne="Administrateur"
     SI EmailOuvreSessionSMTP(NomUser, Password, "192.168.10.21" , 255) = Vrai ALORS
     // initialisation des mails
     Email.AdresseExpéditeur="Service d'envoi automatique de relévé de compte"
     Email.Expéditeur = "relevecptbcc@bcc-bank.com" 
     Email.Destinataire= Em 
     Email.NbDestinataire= 1
     Email.Sujet= gsVsujet
     Email.Message= gsVmessag
     Email.NbAttache=1
     Email.Attache=Chemin
     <s>EmailEnvoieMessage(NomUser)</s>
     SINON
     // aie, y'a erreur afficher...
     Erreur("Il y a une erreur")
     // Envoie l'email
     SI EmailEnvoieMessage(NomUser) = Faux ALORS
     Erreur("L'envoi du message a échoué")
     FIN 
     FIN
     EmailFermeSession(NomUser)
     DélaiAvantFermeture(1000)
     Info("Objet "+SAI_Objet+"Message "+SAI_Message+ "destinataire "+Em+"Chemin "+Chemin)
     HLitSuivant(REQ1)
     FIN
     DélaiAvantFermeture(1000)
     Info("Procédure terminée avec succès")
     DélaiAvantFermeture(1000)

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    En indentant le code on voit qu'il y a un soucis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    bIniReq est un booléen= HExécuteRequête(REQ1, hRequêteDéfaut, 5)
    //recupération du resultat de la reqête
    ResultatReq = HExécuteRequêteSQL(REQ1, MaConnexion, hRequêteSansCorrection, "SELECT COMP, EMAIL FROM RELTAB")
    HLitPremier(REQ1)
    TANTQUE PAS HEnDehors(REQ1)
    	Cpt= REQ1.COMP
    	Em= REQ1.EMAIL
    	Chemin est une chaîne=Caract(34)+ChaîneConstruit("C:\MAIL_ENCOURS\ %1", Cpt)+".PDF"+Caract(34)
    	Password est une chaîne = "Bcc@2013"
    	NomUser est une chaîne="Administrateur"
    	SI EmailOuvreSessionSMTP(NomUser, Password, "192.168.10.21" , 255) = Vrai ALORS
    		// initialisation des mails
    		Email.AdresseExpéditeur="Service d'envoi automatique de relévé de compte"
    		Email.Expéditeur = "relevecptbcc@bcc-bank.com" 
    		Email.Destinataire= Em 
    		Email.NbDestinataire= 1
    		Email.Sujet= gsVsujet
    		Email.Message= gsVmessag
    		Email.NbAttache=1
    		Email.Attache=Chemin
    		EmailEnvoieMessage(NomUser)
    	SINON
    		// aie, y'a erreur afficher...
    		Erreur("Il y a une erreur")
    		// Envoie l'email
    		SI EmailEnvoieMessage(NomUser) = Faux ALORS
    			Erreur("L'envoi du message a échoué")
    		FIN 	FIN
    	EmailFermeSession(NomUser)
    	DélaiAvantFermeture(1000)
    	Info("Objet "+SAI_Objet+"Message "+SAI_Message+ "destinataire "+Em+"Chemin "+Chemin)
    	HLitSuivant(REQ1)
    FIN
    DélaiAvantFermeture(1000)
    Info("Procédure terminée avec succès")
    DelaiAvantFermeture(1000)
    Si l'ouverture de session ne se fait pas, le mail est tout de même envoyé... ça ne risque pas de fonctionner. Il faut donc:
    Supprimer le deuxième envoi
    Tester le retour de EmailEnvoieMessage() (à la ligne 21)
    Et surtout afficher autre chose que "L'envoi du message a échoué" ou "Il y a une erreur". ErreurInfo() permet de savoir ce qui ne fonctionne pas.

    Tatayo.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tchad

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Merci à Tatayo
    Bonjour. Merci pour votre aide si précieuse. J'ai resolu le problème en ecrivant une procédure qui se charge de l'envoi d'email dont voici le code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    PROCEDURE EnvoieMail1(VEmail,Vchemin, Vdchemin, VNomUser sont des chaînes)
    Email.AdresseExpéditeur="Service d'envoi automatique de relevé de compte"
    Email.Expéditeur = "relevecptbcc@bcc-bank.com" 
    Email.Destinataire= VEmail
    Email.NbDestinataire= 1
    Email.Sujet= SAI_Objet
    Email.Message= SAI_Message
    Email.NbAttache=1
    Email.Attache=Vchemin
    EmailEnvoieMessage(VNomUser) 
    SI EmailEnvoieMessage(VNomUser)= Faux ALORS
    DélaiAvantFermeture(1000)
    Erreur("L'envoi du message a échoué" + ErreurInfo(errMessage))
    SINON
     fDéplaceFichier(Vchemin, Vdchemin)
    FIN
    Elle m'a aidé à commettre moins d'erreur

    Merci!!!!

  9. #9
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Factorisation is the answer, factorisation is the way...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/06/2008, 23h47
  2. [Thread]Problème d'envoie de message
    Par homeostasie dans le forum MFC
    Réponses: 4
    Dernier message: 15/02/2007, 09h26
  3. Problème d'envoie de variables dans une url
    Par xenos dans le forum Langage
    Réponses: 9
    Dernier message: 28/11/2006, 23h48
  4. [Outlook 2003] Problème d'envoie de message.
    Par bilb0t dans le forum Outlook
    Réponses: 12
    Dernier message: 18/05/2006, 11h45
  5. Envoi de message dans windows
    Par Chrissrare dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 19/04/2006, 22h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo