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 :

EmailEnvoieMessage, session SMTP ok mais erreur d'expéditeur [WD17]


Sujet :

WinDev

  1. #1
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut EmailEnvoieMessage, session SMTP ok mais erreur d'expéditeur
    Bonjour,

    je développe une petit module gmao qui doit prévenir des techniciens affectés selon le domaine de compétence nécessaire. Ces techniciens sont alertés par mail.

    Je me suis appuyé sur l'aide mais l'envoi de mail plante à un endroit qui n'est pas logique: la session SMTP est ok, mais il me lève une erreur sur l'adresse expéditeur, qui est pourtant bien définie.

    Voici mon 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
    PROCEDURE EnvoyerMail(destinataire est une chaîne, sujet est une chaîne, corps est une chaîne)
     
    // Session SMTP 
    gSessionSMTP est une EmailSessionSMTP
    gSessionSMTP..AdresseServeur = "smtp.orange.fr"
    gSessionSMTP..Nom = "xxxxxxx@orange.fr"
    gSessionSMTP..MotDePasse = "xxxxxxxxxxx"
    gSessionSMTP..Port = 587
    gSessionSMTP..Option = emailOptionDéfaut
     
    // Contenu de l'email    
    UnCourriel est un objet Email
    UnCourriel..AdresseExpéditeur = "xxxxxxx@orange.fr"
    UnCourriel..Destinataire[1] = destinataire
    UnCourriel..Sujet = sujet
    UnCourriel..Message = corps
     
    // Envoi de l'email
    SI EmailOuvreSession(gSessionSMTP) = Vrai ALORS
    	Info("ok " +  UnCourriel..AdresseExpéditeur)
     
    	SI EmailEnvoieMessage(gSessionSMTP, UnCourriel) = Faux ALORS
    		Erreur("L'envoi de l'email a échoué.", ErreurInfo(errMessage))
    	FIN
    SINON
    	Erreur("Impossible d'établir la connexion", ErreurInfo(errMessage))
    FIN
    A l'exécution, j'ai bien la fenêtre d'info OK et mon mail d'expéditeur, preuve que la session SMTP est ouverte ?

    Et tout de suite après, j'ai l'erreur suivante :

    Erreur à la ligne 38 du traitement Procédure globale EnvoyerMail.
    Vous avez appelé la fonction EmailEnvoieMessage.
    L'envoi d'un message sans préciser l'expéditeur n'est pas autorisé.
    Quelqu'un pourrait me souffler la réponse svp ? Merci d'avance

  2. #2
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Alors je me réponds

    Voici ce qui fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    // Contenu de l'email    
    UnCourriel est un objet Email
    UnCourriel..Expediteur = "<xxxxxxxx@orange.fr>"
    //UnCourriel..AdresseExpéditeur = "saperlipopette"
    UnCourriel..Destinataire[1] = destinataire
    UnCourriel..Sujet = sujet
    UnCourriel..Message = corps
    UnCourriel..HTML = UnCourriel..Message
    à noter que si j'omets la ligne qui définit AdresseExpéditeur (celle qui j'ai mis en commentaire) ça n'a aucun impact, le mail part bien. Et dans les deux cas, avec ou sans, je ne peux pas définir d'alias pour l'adresse, comme on peut parfois le faire avec certaines API, exemple en vb.net je crois : myMail.From = "GMAO ALERTE <alerte_gmao@orange.fr>"

    De la même façon je voudrais bien que mes techniciens reçoivent le mail avec le nom de l'expéditeur (GMAO ALERTE), et pas seulement une adresse. Mais je n'y parviens pas. Enfin il y a déjà du mieux, les mails partent bien !

  3. #3
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    et pour terminer, la solution, apportée par Pierre sur le forum pcsoft (http://forum.pcsoft.fr/fr-FR/pcsoft....champ/read.awp)

    il faut construire le champs expéditeur pour qu'il respecte la rfc et soit reconnu par tous les serveurs de mail. Comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    sNomExp est une chaîne = [
    "%1"<%2>
    ]
     
    UnCourriel est un objet Email
    UnCourriel..Expediteur = ChaîneConstruit(sNomExp,"Jean-Claude DUSSE","jcdusse@orange.fr")
    UnCourriel..Destinataire[1] = destinataire
    UnCourriel..Sujet = sujet
    UnCourriel..Message = corps
    UnCourriel..HTML = UnCourriel..Message
    A fermer !

  4. #4
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 128
    Points : 170
    Points
    170
    Par défaut
    Salut,

    Malheureusement pas vu à temps.
    J'ai eu le même souci il y a quelques semaines.

    Merci de partager tes découvertes, ca aide toujours.

    Pense juste à mettre ton sujet en résolu

  5. #5
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Bonjour à tous,

    plutôt que de refaire un sujet, je vais poursuivre sur celui-ci, ça devrait pas gêner vu que c'est le mien que je déterre ^^

    Depuis ce matin, mon appli se retrouve de nouveau incapable d'envoyer un mail. La session smtp monte bien, ça plante sur l'EmailEnvoieMessage :/

    J'utilise un compte mail chez infomaniak, je les ai appelé, ils me disent que rien n'a changé chez eux.

    Mon non plus je n'ai rien changé ^^ et pourtant j'ai maintenant cette erreur (bizarrement elle n'est pas systématique, parfois un mail passe au travers de l'erreur, mais c'est de l'ordre de 1 tous les 10-15):

    Nom : smtp.png
Affichages : 1876
Taille : 22,4 Ko

    Moi je pense qu'il y a vraiment quelque chose qui a changé sur la config de leur serveur SMTP, un truc au niveau de la RFC, et que la construction de mon objet mail ne respecterait plus.

    Ce qui m'embête c'est que j'ai essayé de modifier mon code pour fonctionner avec un compte Office 365, et que ça fonctionne nickel.

    Est-ce que à tout hasard ça vous ferait penser à quelque chose de déjà vu ? Est-ce que l'émission de mails via un soft windev pourrait être considérée comme non sûre par un serveur smtp, un peu comme certains en ont fait l'expérience avec gmail et que j'aurais affaire à un truc dans le même genre ? J'ai vu qu'en v22 était apparue une instruction EmailParametre pour être compliant multi plateformes (mais bon je suis en v21...)

    droliprane

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 394
    Points : 9 571
    Points
    9 571
    Par défaut
    +1 pour le Jean-Claude Dusse !!!

    C'est pas une histoire de protocole, genre TLS ? Le serveur fait du zèle de temps en temps ?

    J'avais eu un gros souci avec gogol. Gmail est tellement sécurisé qu'il bloque les appli se connectant au SMTP.

    Claude

  7. #7
    Membre averti Avatar de droliprane
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2005
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2005
    Messages : 710
    Points : 444
    Points
    444
    Par défaut
    Bon, je me disais aussi...

    Après plusieurs téléphones avec la hotline du registrar, ils ont fait une grosse update de leur infra pour renforcer la sécu.

    Ils doivent regarder dans leurs logs ce qui fait que mes mails ne passent plus...

    De toute façon, je crois que je vais voir pour rediriger le flux MX de ce domaine spécial pour qu'il pointe sur mon tenant Office 365, ça sera tout géré au même endroit et comme ça je suis sûr que j'ai pas de problème de compatibilité avec un smtp postfix ou autre (j'ose espérer que les serveurs de mail chez Micr$oft ne sont pas sous Linux ^^). Sachant que mon appli arrive à ouvrir une session en TLS sur le smtp Office, je suis normalement tranquille jusqu'aux prochaines évolutions de protocole.

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 394
    Points : 9 571
    Points
    9 571
    Par défaut
    Je me demande simplement si l'afflux de mail issus / destinés à une seule adresse ne seraient pas filtrés. Un truc du genre, 10 mails par heure autorisés.

    Autre idée : si tes mails sont en interne, pourquoi ne pas créer ton propre serveur mail (un exchange mais en mieux ).

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

Discussions similaires

  1. install de wine : OK, install du logiciel : OK, mais erreur
    Par casier dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 24/07/2007, 01h08
  2. Création d'une macro mais erreur
    Par guismoman33 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/06/2007, 19h14
  3. Réponses: 2
    Dernier message: 20/03/2007, 12h50
  4. Réponses: 6
    Dernier message: 23/01/2007, 16h45

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