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 :

probleme d'envoi d'email


Sujet :

WinDev

  1. #1
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut probleme d'envoi d'email
    bonjours

    j'ai un probleme d'envoi d'email dans mon application et j'ai pas pu connaitre la cause!

    j'ai une fenetre qui contient les champs de saisi pour les parametres du message a envoier (objet, contenu , piece jointe , destinataire,..)
    en cliquant sur le bouton envoyer qui a pour 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
    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
     
    // à faire : insérer votre code ici
    // Variables locales
    i 					est un entier
    bOK 				est un booléen
    sMsg 				est une chaîne
    bAuMoinsUnClient	est un booléen = Faux
    imax est un entier = TableOccurrence(TableClient)
     
    // On vérifie qu'il y a au moins un client sélectionné
    POUR i=1 A  imax
    	// si le client fait partie des destinataires
    	SI TableClient.ColInter[i] ALORS
    		bAuMoinsUnClient = Vrai
    	FIN
    FIN
     
    SI bAuMoinsUnClient=Faux ALORS
    	Info("Aucun client sélectionné")
    	RETOUR
    FIN
     
    Sablier()
     
    // Mémorise le message-type
    INIEcrit("EMAIL","Objet",SAI_Objet,fRepEnCours()+"\Mailing.ini")
    nIdFic est un entier = fOuvre("Message.txt", foCréation+foEcriture)
    fEcrit(nIdFic, SaisieTexte)
    fFerme(nIdFic)
    INIEcrit("EMAIL","PJ",SaisiePJ,fRepEnCours()+"\Mailing.ini")
     
     
    // initialisation de la table
    POUR i=1 A imax
    	TableClient.ColEtat[i] = ""
    FIN
     
    // pour chaque ligne de la table
    POUR i=1 A imax
    	// si le client fait partie des destinataires
    	SI TableClient.ColInter[i] ALORS
    		TableSelectPlus(TableClient,i)
    		ColEtat[i]="En cours"
    		Message(ChaîneConstruit("Envoi du mail à ",ColMail[i])) ; MultitâcheRepeint()
    		// Personnalisation du message
    		sMsg=sPrepareMessage(SaisieTexte,i)
    		// Envoi du message
    		bOK=bEnvoyerMessage(ColMail[i],SAI_Objet,sMsg,SaisiePJ)
    		SI PAS bOK ALORS
    			SI PAS gbSessionOuverte ALORS
    				ColEtat[i]="Abandon"
    				SORTIR
    			SINON
    				ColEtat[i]="Echec"
    			FIN
    		SINON
    			ColInter[i]=Faux
    			ColEtat[i]="Envoyé" ; MultitâcheRepeint()
    		FIN
    	FIN
    FIN
     
    Sablier(Faux)
    Message()
     
    SI bOK ALORS Info("Envoi des eMails terminé.")
    procedure local sPrepareMessage:
    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
     
    FONCTION sPrepareMessage(sMessageType,nLigne)
     
    // On remplace les balises spécifiques par leur valeur dans le fichier
     
    HLitRecherche(Client,NumClient,TableClient.ColID[nLigne])
    sContenu est une chaîne = sMessageType
    sContenu = Remplace(sContenu, "[%CIV%]",Client.Civilite)
    sContenu = Remplace(sContenu, "[%NOM%]",Client.NomClient)
    sContenu = Remplace(sContenu, "[%PRENOM%]",Client.Prénom)
    sContenu = Remplace(sContenu, "[%ADR1%]",Client.Adresse)
    //sContenu = Remplace(sContenu, "[%ADR2%]",CLIENT.Adresse2)
    sContenu = Remplace(sContenu, "[%CP%]",Client.CodePostal)
    sContenu = Remplace(sContenu, "[%VILLE%]",Client.Ville)
    RENVOYER sContenu
    la procedure local bEnvoyerMessage


    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
     
    FONCTION bEnvoyerMessage(sAdresse,sObjet,sContenu,sPJ="")
     
    // Envoi d'un mail
     
    // Connexion à la messagerie si pas de session en cours
    SI PAS gbSessionOuverte ALORS
    	SI PAS Ouvre(Fen_Connexion) ALORS RENVOYER Faux
    FIN
     
    // Remise à zéro de la structure du mail
    EmailRAZ()
     
    // Préparation du message
    Email.Expéditeur = gsExpéditeur      		// L'expéditeur
    Email.Destinataire[1] = sAdresse	        // Le destinataire
    Email.NbDestinataire = 1                    // Le nombre de destinataires
    Email.Sujet = sObjet                        // Le sujet
    Email.Message = sContenu                    // Le corps du message
    // Pièces jointes
    sListePJ est une chaîne = sPJ+";"
    sFichier est une chaîne
    i est un entier
    Email.NbAttache = 0 
    BOUCLE
    	i++
    	sFichier=SansEspace(ExtraitChaîne(sListePJ,i,";"))
    	SI sFichier = EOT ALORS SORTIR
    	SI fFichierExiste(sFichier) = Vrai ALORS
    		Email.NbAttache++
    		Email.Attache[Email.NbAttache]=sFichier
    	FIN
    FIN
     
    // Envoi du mail
    RENVOYER EmailEnvoieMessage(gsUser)

    une fenetre parametre email s'ouvre avec des champs de saisi pour les parametre de connexion au serveur de messagerie et un bouton OK pour envoyer l'email apres le saisi des parametres:
    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
     
    gsUser=USER
    gsPwd=PWD
    gsPOP3=POP3
    gsSMTP=SMTP
    gsExpéditeur=EXPEDITEUR
     
    // Mémorise les paramètres
    INIEcrit("CONNEXION","User",gsUser,ComplèteRep(fRepExe())+"Mailing.ini")	// Compte de messagerie
    INIEcrit("CONNEXION","Pwd",gsPwd,ComplèteRep(fRepExe())+"Mailing.ini")		// Mot de passe
    INIEcrit("CONNEXION","POP3",gsPOP3,ComplèteRep(fRepExe())+"Mailing.ini")	// Adresse du serveur POP3
    INIEcrit("CONNEXION","SMTP",gsSMTP,ComplèteRep(fRepExe())+"Mailing.ini")	// Adresse du serveur SMTP
    INIEcrit("CONNEXION","eMail",gsExpéditeur,ComplèteRep(fRepExe())+"Mailing.ini")	// eMail de l'expéditeur pour réponse
     
    // Connexion à la messagerie
    Message("Connexion en cours ....."); Sablier(Vrai)
    gbSessionOuverte=EmailOuvreSession(gsUser, gsPwd, gsPOP3, gsSMTP)
    SI PAS gbSessionOuverte ALORS
    	Message("La connexion a échouée."); Sablier(Faux)
    	Erreur("Pb de connexion",EmailMsgErreur(Email.Erreur))
    	RETOUR
    FIN
     
    Sablier(Faux)
    Ferme("",Vrai)
    le problem c'est que en testant tout ca, le teste se bloque et rien ne s'envoi!!
    est-ce que vous-pouvez jetter un coup d'oeil sur le code et me dire s'il y a quelque chose qui cloche?


    merci beaucoup

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Dans la plupart des cas, si l'envoi d'email ne fonctionne pas avec un code correct, c'est un problème de FAI.
    Il faut envoyer les emails avec le compte SMTP du FAI auquel on est connecté (ton propre compte si tu envoies via ta connexion)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Juste une précision comme le dit Guardian, c'est le SMTP de ton FAI que tu dois tester pas celui de ton hebergeur de mail, si ton FAI est orange par exemple alors tu dois mettre pop.orange.fr même si ton mail est hébergé chez yahoo.
    A+

  4. #4
    Débutant   Avatar de t.n.b.g
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    merci beaucoup les amis ca marche tres bien
    et encore désoler pour le derangement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme d'envoie d'email
    Par mat.net dans le forum Langage
    Réponses: 10
    Dernier message: 07/10/2010, 17h30
  2. probleme d'envois d'emails
    Par warubi dans le forum VB.NET
    Réponses: 6
    Dernier message: 28/06/2007, 18h25
  3. [CruiseControl] Probleme d'envoi email.
    Par mohamed dans le forum Intégration Continue
    Réponses: 1
    Dernier message: 16/02/2007, 17h58
  4. Réponses: 2
    Dernier message: 22/12/2006, 13h38
  5. Problème d'envoi email sous Mandriva
    Par wxcvbn123456 dans le forum Réseau
    Réponses: 5
    Dernier message: 26/05/2006, 16h22

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