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

Web & réseau Delphi Discussion :

Plus d'envoi de mail vers GMail


Sujet :

Web & réseau Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 24
    Points
    24
    Par défaut Plus d'envoi de mail vers GMail
    Bonjour, depuis un certain temps je n'arrive pas à envoyer des mails vers gmail ….

    J'imagine que je ne suis pas le seul dans ce cas la.
    Je n'ai pas modifié le programme pourtant (j'utilise indy) …

    J'ai ce message d'erreur en retour
    Messages missing a valid messageId header are not 550 5.7.1 accepted
    Si quelqu'un a trouvé comment faire je suis preneur

    Merci d'avance
    Olivier

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    Depuis le 30 Mai 2022 : https://support.google.com/accounts/answer/6010255

    Les applications moins sécurisées et votre compte Google
    Pour vous aider à sécuriser votre compte, à compter du 30 mai 2022, ​​Google ne prendra plus en charge l'utilisation d'applications ou d'appareils tiers qui vous demandent uniquement votre nom d'utilisateur et votre mot de passe pour vous connecter à votre compte Google.

    Important : Cette date limite ne s'applique pas aux clients Google Workspace ou Google Cloud Identity. La date d'entrée en vigueur pour ces clients sera annoncée sur le blog Workspace à une date ultérieure.

    J'ignore si cela code d'erreur a un lien
    Diagnostic-Code: smtp; 550-5.7.1 [xxxxxxx] Messages missing a valid messageId header are not
    550 5.7.1 accepted
    Normalement 550 5.7.1 c'est "notification d’échec de remise, message de rebond, notification d’état de remise ou DSN"

    Commencez par vérifier le TidMessage.MsgId est défini, il faudrait vérifier son contenu, peut-être des caractères invalides.
    Ou pire, si cela se trouve, la valeur vide est peut-être non autorisé par votre destinataire
    Un simple TGuid fait un très bon TidMessage.MsgIdUn truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VidMessage.MsgId := TGUID.Create().ToString();
    Autre sujet, Google renforce la sécurité et cela sera sans surprise que le SMTP en Basic Authentification subisse plein d'anomalie pour forcer les développeurs à changer leur façon de faire, puisque depuis deux ans c'est annoncé et que pourtant personne ne semble ne s'en préoccuper, on peut penser que faire chier ceux qui n'ont pas suivi l'arrêt du Basic Authentification ne serait pas une surprise.

    Le Basic Authentification est désactivé ... déjà faudrait penser à envisage autre chose si vous l'utilisez
    Il est possible de forcer un mode dit "https://myaccount.google.com/u/3/apppasswords" : https://myaccount.google.com/u/3/apppasswords
    C'est à utiliser pour des tests rapides, à éviter en production c'est un pis-aller

    Avec l'arrêt du Basic Authentication sur GMail par Google (30th May,2022 arrêt du Basic Auth pour GSuite) mais aussi l'arrêt reporté sur Office365 par Microsoft (1 Octobre 2022), il faut passer sur OAuth2

    le XOAuth pour SMTP ou IMAP4 qui est une approche d'avenir : https://developers.google.com/gmail/...r%20your%20app.
    Il est fort possible que je complète mon code : https://www.developpez.net/forums/d1.../#post11639404
    Pour le moment, je ne fais que de la récupération IMAP, POP et GRAPH, je pense ajouter l'envoie en IMAP, SMTP et GRAPH dans les mois à venir mais pour Azure et non pour Gmail.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    me suis un peu pris la tête toute l'après-midi d'hier sur le sujet Gmail / Hotmail / Outlook. vraie galère pour que ça passe avec Microsoft mais en fait il en faut peu pour Google :

    - un SPF valide sur le nom de domaine utilisé
    - un Return-Path utilisant ce domaine en tant qu'expéditeur
    - idéalement l'adresse de l'expéditeur sur le même domaine que le Return-Path

    https://postmaster.google.com permet de référencer les domaines pour voir comment il interprète les messages qu'il reçoit

    pour les messages qu'il refuse dès le départ, y a que les infos dans la log d'envoi qui te diront ce qu'il en est, affiche aussi l'entête de l'email que tu envoies pour vérifier que tout est ok dedans

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    Bonjour pprem
    tu aurais un exemple de code car je fais des tests mais ça ne passe toujours pas ….

    Merci d'avance
    Olivier

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    pprem, as-tu les mêmes contraintes sur les entêtes que ce soit en Basic Auth ou XOAuth ?
    Ainsi que selon le protocole SMTP, IMAP4 voire GRAPH

    Les contraintes d'ailleurs sont-elles bilatérales ?
    C'est-à-dire aussi bien le serveur émetteur et les règles du receveur
    Je n'ai pas encore eu le temps de m'intéresser sérieusement à ce problème
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 44
    Points : 24
    Points
    24
    Par défaut
    ShaiLeTroll ou pprem
    si vous avez une solution, j'externalise mon module de mail ….
    Ca me saoule donc si vous êtes intéressé on se parle en MP

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 743
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 743
    Points : 15 160
    Points
    15 160
    Par défaut
    Bonjour,

    en fait ça fait un temps fou qu'il y a des problèmes avec gmail...

    Ma chérie a un compte chez eux et ne reçoit plus les emails que je lui envoie depuis un vieux compte mageos (racheté par sfr) toujours actif et valide, parce que mon fournisseur d'accès c'est (cette cochonnerie1 d') Orange et ils ne sont pas fichus de s'entendre...

    Si je lui écris en utilisant mon compte wanadoo elle me reçoit bien.

    Donc ce n'est pas aussi simple qu'un bête bug de code...

    ---
    1 : cette cochonnerie car quand des gens m'envoient des emails @ wanadoo avec une ou des images, il arrive parfois que l'image soit esquintée (couleurs changées, géométrie en vrac), chose qui n'arrive jamais en m'écrivant @ mageos, alors que tout passe par les mêmes tuyaux, allez comprendre.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    en fait c'est surtout sur la zone DNS que j'interviens pour nettoyer un max de choses

    côté envoi du mail, ça dépend surtout de la "qualité" du serveur SMTP et SFR comme Free sont dans les plus utilisés par des spams et autres merdes, donc c'est blacklisté un peu partout et ils s'en branlent parce que de toute façon s'ils se font déblacklister des IP, elles ressautent quelques jours après

  9. #9
    Membre à l'essai
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gérant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Depuis le 30 Mai 2022 : https://support.google.com/accounts/answer/6010255




    J'ignore si cela code d'erreur a un lien

    Normalement 550 5.7.1 c'est "notification d’échec de remise, message de rebond, notification d’état de remise ou DSN"

    Commencez par vérifier le TidMessage.MsgId est défini, il faudrait vérifier son contenu, peut-être des caractères invalides.
    Ou pire, si cela se trouve, la valeur vide est peut-être non autorisé par votre destinataire
    Un simple TGuid fait un très bon TidMessage.MsgIdUn truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VidMessage.MsgId := TGUID.Create().ToString();
    Autre sujet, Google renforce la sécurité et cela sera sans surprise que le SMTP en Basic Authentification subisse plein d'anomalie pour forcer les développeurs à changer leur façon de faire, puisque depuis deux ans c'est annoncé et que pourtant personne ne semble ne s'en préoccuper, on peut penser que faire chier ceux qui n'ont pas suivi l'arrêt du Basic Authentification ne serait pas une surprise.

    Le Basic Authentification est désactivé ... déjà faudrait penser à envisage autre chose si vous l'utilisez
    Il est possible de forcer un mode dit "https://myaccount.google.com/u/3/apppasswords" : https://myaccount.google.com/u/3/apppasswords
    C'est à utiliser pour des tests rapides, à éviter en production c'est un pis-aller

    Avec l'arrêt du Basic Authentication sur GMail par Google (30th May,2022 arrêt du Basic Auth pour GSuite) mais aussi l'arrêt reporté sur Office365 par Microsoft (1 Octobre 2022), il faut passer sur OAuth2

    le XOAuth pour SMTP ou IMAP4 qui est une approche d'avenir : https://developers.google.com/gmail/...r%20your%20app.
    Il est fort possible que je complète mon code : https://www.developpez.net/forums/d1.../#post11639404
    Pour le moment, je ne fais que de la récupération IMAP, POP et GRAPH, je pense ajouter l'envoie en IMAP, SMTP et GRAPH dans les mois à venir mais pour Azure et non pour Gmail.
    Hello

    as-tu solutionné les soucis SMTP ?
    Si oui comment ?


    Je pense que mon cas est similaire : et je me trouve bloqué.

    j'envoi les emails via mon domaine ovh et un compte spécifique authentifié de mon domaine.

    voici mes cas d'usage :
    le sender est un compte de mon domaine
    le recipient est un compte X
    => aucun problème


    le sender est un compte gmail
    le recipient est un compte X sauf gmail
    => aucun problème

    le sender est un compte gmail (le mien à moi par exemple)
    le recipient est un compte gmail (un autre que le mien ou le mien)
    => le mail n'est pas réceptionné
    et j'ai la magnifique erreur suivante quelques temps plus tard dans ma message google :

    This is the mail system at host mo544.mail-out.ovh.net.

    I'm sorry to have to inform you that your message could not
    be delivered to one or more recipients. It's attached below.

    For further assistance, please send mail to postmaster.

    If you do so, please include this problem report. You can
    delete your own text from the attached returned message.

    The mail system

    <monmail@gmail.com>: host gmail-smtp-in.l.google.com[173.194.76.27] said:
    550-5.7.1 [46.105.59.66] Messages missing a valid messageId header are not
    550 5.7.1 accepted
    . p15-20020a05600c204f00b003fbc224ed3bsi2164501wmg.153 -
    gsmtp (in reply to end of DATA command)


    Reporting-MTA: dns; mo544.mail-out.ovh.net
    X-Postfix-Queue-ID: EC3102BD61
    X-Postfix-Sender: rfc822; monmail@gmail.com
    Arrival-Date: Thu, 21 Sep 2023 11:53:42 +0000 (UTC)

    Final-Recipient: rfc822; monmail@gmail.com
    Original-Recipient: rfc822;monmail@gmail.com
    Action: failed
    Status: 5.7.1
    Remote-MTA: dns; gmail-smtp-in.l.google.com
    Diagnostic-Code: smtp; 550-5.7.1 [46.105.59.66] Messages missing a valid
    messageId header are not 550 5.7.1 accepted.
    p15-20020a05600c204f00b003fbc224ed3bsi2164501wmg.153 - gsmtp



    Le mail est envoyé avec Indy donc en SMTP.

    voici le code (je vous fais grâce des déclarations d'unités et autres variables, ça doit être compréhensible en principe)

    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    procedure SendMessage;
    var
       IdSMTP    : TIdSMTP;
       IdSSLIO   : TIdSSLIOHandlerSocketOpenSSL;
       IdMessage : TIdMessage;
       IdText    : TIdText;
    begin
       inherited;
     
       // création des composants Indy
       IdSMTP    := TIdSMTP.Create(nil);
       IdMessage := TIdMessage.Create(nil);
       IdSSLIO   := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
     
       try
          // adresse et port du serveur SMTP
          IdSMTP.AuthType := satDefault;
          IdSMTP.Host     := Server;
          IdSMTP.Port     := Port;
     
          // utilisation du mode sécurisé (ou pas si l'envoi en anonyme est autorisé)
          if (Login <> '') and (Password <> '') then
          begin
             IdSSLIO.SSLOptions.Method := sslvTLSv1;
             IdSMTP.Username  := Login;
             IdSMTP.Password  := Password;
             IdSMTP.IOHandler := IdSSLIO;
             IdSMTP.UseTLS    := utUseExplicitTLS;
          end;
     
          // connexion au serveur
          try
             IdSMTP.Connect;
          except
             on e : Exception do
                raise ESMTPError.Create('Erreur de connexion au serveur SMTP' + #10#13 + e.Message);
          end;
     
          IdMessage.Clear;
     
          // paramétrage de l'expéditeur
          IdMessage.From.Text           := DataMessage.Sender;        // autre compte que le domaine principal exemple gmail est-ce là le problème ????
          IdMessage.ReplyTo.Add.Address := DataMessage.Sender;  // autre compte que le domaine principal exemple gmail
     
          // ajout des destinataires
          if DataMessage.SendTo <> '' then
             IdMessage.Recipients.Add.Address := DataMessage.SendTo;
     
          if DataMessage.SendCC <> '' then
             IdMessage.CCList.Add.Address     := DataMessage.SendCC;
     
          if DataMessage.SendBCC <> '' then
             IdMessage.BccList.Add.Address    := DataMessage.SendBCC;
     
          // objet du message
          IdMessage.Subject := DataMessage.MailObject;
     
          // paramétrage de la date et de la priorité
          IdMessage.Date     := Now;
          IdMessage.Priority := mpNormal;
     
          // il est possible de paramétrer un l'accusé de lecture
          // idMessage.ReceiptRecipient.Address := adresse de l'expediteur;
     
          // corps du message
          //IdMessage.Body.Text := DataMessage.MailMessage;
     
          IdText := TIdText.Create(IdMessage.MessageParts);
          IdText.Body.Text       := DataMessage.MailMessage; // texte en HTML
          IdText.ContentType     := 'text/html';
          IdText.ContentTransfer := 'quoted-printable';
          IdText.CharSet         := 'iso-8859'; // pour info : le utf-8 marche pas avec du html, mêm si il y a du utf-8 dans le html. Allez savoir pourquoi ...
          IdMessage.ContentType  := 'multipart/mixed';
     
     
          try
             IdSMTP.Send(IdMessage);
          except
             on e : Exception do
                raise ESMTPError.Create('Erreur lors de l''envoi de l''email.' + #10#13 + e.Message);
          end;
       finally
          IdSMTP.Disconnect;
          FreeAndNil(IdText);
          FreeAndNil(IdSSLIO); // attention ici, parfois il y a un plantage si le mail ne part pas (TimeOut etc...). je ne me suis pas encore penché dessus
          FreeAndNil(IdMessage);
          FreeAndNil(IdSMTP);
       end;

    je n'ai pas essayé avec un compte microsoft pour le sender/replyto ET le recipient.

  10. #10
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    je crois que la raison est quelque part dans cette phrase "Messages missing a valid messageId header are not accepted"
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  11. #11
    Membre à l'essai
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gérant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    je crois que la raison est quelque part dans cette phrase "Messages missing a valid messageId header are not accepted"
    Merci Paul ... Sauf que si tu vois bien mes tests et le code, y'a pas de raison objective que ça arrive, dans un monde parfait.

    Dans la "littérature" assez pauvre côté Embarcadero, ou ici, rien n'indique qu'il faut agir en quoi que ce soit dans le Header, dans le DNS chez OVH ou ailleurs.

    D'où ma question, vu qu'il y a bien quelqu'un qui a résolu ce cas là, vu le nombre de messages similaires, y compris toi ou Patrick ? ;-)

    Franchement ça me soûle ces problèmes de mails. Un truc qui devrait fonctionner du premier coup avec Indy ... on découvre qu'il manque une unité "planquée" dans la VCL qu'il faut déclarer... que pour que ça marche, il faut aussi chercher et livrer des dll en plus ... mais purée... et maintenant ça...

    Et s'il n'y avait que ça à résoudre comme problèmes techniques (va falloir que je porte le code en FMX après et que je fasse un Micro Service qui doit tourner sous Docker aussi, oh joie)

  12. #12
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par JMGWAY Voir le message
    Merci Paul ... Sauf que si tu vois bien mes tests et le code, y'a pas de raison objective que ça arrive, dans un monde parfait.

    Dans la "littérature" assez pauvre côté Embarcadero, ou ici, rien n'indique qu'il faut agir en quoi que ce soit dans le Header, dans le DNS chez OVH ou ailleurs.

    D'où ma question, vu qu'il y a bien quelqu'un qui a résolu ce cas là, vu le nombre de messages similaires, y compris toi ou Patrick ? ;-)

    Franchement ça me soûle ces problèmes de mails. Un truc qui devrait fonctionner du premier coup avec Indy ... on découvre qu'il manque une unité "planquée" dans la VCL qu'il faut déclarer... que pour que ça marche, il faut aussi chercher et livrer des dll en plus ... mais purée... et maintenant ça...

    Et s'il n'y avait que ça à résoudre comme problèmes techniques (va falloir que je porte le code en FMX après et que je fasse un Micro Service qui doit tourner sous Docker aussi, oh joie)
    alors si je vois des raisons objectives pour que ton code ne fonctionne pas

    1. Google (et d'autres) mettent en place de plus en plus de contraintes sur l'envoie de mail afin de lutter notamment contre les spammer.
    2. tu as un message d'erreur très explicite
    3. la réponses à ce message très explicite est donnée plus haut
    4. tu n'as manifestement pas le temps de lire les réponses
    5. tu mélanges des contraintes de programmation (unité manquante) et des contraintes techniques sur le protocole SMTP

    je n'ai aucune soucis avec les questions cons, de débutant, mais là il suffit de lire pour avoir la réponse, donc je ne compatis pas
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  13. #13
    Membre à l'essai
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gérant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    alors si je vois des raisons objectives pour que ton code ne fonctionne pas

    1. Google (et d'autres) mettent en place de plus en plus de contraintes sur l'envoie de mail afin de lutter notamment contre les spammer.
    2. tu as un message d'erreur très explicite
    3. la réponses à ce message très explicite est donnée plus haut
    4. tu n'as manifestement pas le temps de lire les réponses
    5. tu mélanges des contraintes de programmation (unité manquante) et des contraintes techniques sur le protocole SMTP

    je n'ai aucune soucis avec les questions cons, de débutant, mais là il suffit de lire pour avoir la réponse, donc je ne compatis pas
    Les autres réponses sont restées lettre morte, oui oui j'ai tout lu.
    Paul, arrête de prendre les gens pour neuneux stp. Et on reste courtois ici. En principe. Et surtout avec les gens que tu connais. C'est mieux.

    Le GUID c'est fait : Evidemment.
    la zone DNS : c'est fait. Evidemment.
    L'enregistrement chez Google ! c'est fait. Evidemment.

    Donc la réponse à la réponse je ne vois pas où tu la chopes dans les réponses plus haut.
    En général, tu vois, je ne demande que très rarement de l'aide. J'en donne plus que je ne reçois, et pas forcément ici.
    Alors j'ai pu passer à côté de quelque chose, je le concède. Et justement j'aimerais savoir quoi.

  14. #14
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 469
    Points : 24 905
    Points
    24 905
    Par défaut
    En GMail, c'est soit du Mot de Passe d'application (et encore c'est plus disponible pour les nouveaux comptes) si non OAuth2 avec un SASL maison

    Et là c'est le Destinataire qui REFUSE le mail, en ce moment, j'utilise Python pour faire du SMTP
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  15. #15
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par liviertlse Voir le message
    J'ai ce message d'erreur en retour :
    Messages missing a valid messageId header are not 550 5.7.1 accepted
    Citation Envoyé par ShaiLeTroll Voir le message
    Commencez par vérifier le TidMessage.MsgId est défini, il faudrait vérifier son contenu, peut-être des caractères invalides.
    Ou pire, si cela se trouve, la valeur vide est peut-être non autorisé par votre destinataire
    Un simple TGuid fait un très bon TidMessage.MsgIdUn truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VidMessage.MsgId := TGUID.Create().ToString();

    Citation Envoyé par JMGWAY Voir le message
    Le GUID c'est fait : Evidemment.
    il n'est pas présent dans le code que tu as posté.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  16. #16
    Membre à l'essai
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gérant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    il n'est pas présent dans le code que tu as posté.
    j'avais ajouté ça juste après avant de reposter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
          Guid := StringToGUID('{4E1BE4BC-0782-40E9-9339-D6A7164F01DC}');
          IdMessage.MsgId := Guid.ToString();

  17. #17
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    d'après ce que je lis ça peut aussi être lié à SPF même si l'erreur évoque le Message-ID

    SPF c'est une entrée DNS qui indique qui peut envoyer des mails du domaine.

    historiquement j'utilisais toujours le serveur SMTP de mon provider pour envoyer des mails, ce n'est plus une bonne option de nos jours, il faut utiliser un serveur SMTP qui est configuré pour envoyer ces mails...typiquement OVH est autorisé à envoyer les mails hébergés chez OVH, pas les autres.

    donc "le sender est un compte gmail" => il faut utiliser le serveur SMTP de Gmail smtp.googlemail.com:465
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  18. #18
    Membre à l'essai
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gérant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    d'après ce que je lis ça peut aussi être lié à SPF même si l'erreur évoque le Message-ID

    SPF c'est une entrée DNS qui indique qui peut envoyer des mails du domaine.

    historiquement j'utilisais toujours le serveur SMTP de mon provider pour envoyer des mails, ce n'est plus une bonne option de nos jours, il faut utiliser un serveur SMTP qui est configuré pour envoyer ces mails...typiquement OVH est autorisé à envoyer les mails hébergés chez OVH, pas les autres.

    donc "le sender est un compte gmail" => il faut utiliser le serveur SMTP de Gmail smtp.googlemail.com:465
    Bonjour Paul,



    le domaine est hébergé chez OVH. J'ai suivi la procédure de Google et ajouté une entrée TXT dans la zone DNS.

    Nom : 2023-09-23_16h34_05.png
Affichages : 671
Taille : 17,7 Ko

    Je ne peux pas faire autrement que de mettre le From avec un compte gmail et le sender avec une @ de mon domaine.
    Mais je vais tout de même faire ce que tu me suggères avec un compte gmail et le paramètre smtp de google.

    Je vous tiens au courant.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Gérant
    Inscrit en
    Février 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gérant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Suite :
    avec Google :

    après avoir créé une clé d'authentification de double-validation pour l'application, l'envoi de mails fonctionne bien.
    MAIS évidemment ça serait trop simple.

    là où avec ovh (et si l'@ de from n'est pas gmail), le from reçu est bien celui attendu, c'est à dire monemail@mondomaine.com et pas celui du sender,
    avec google, le from reçu est de la forme monemail@mondomaine.com <emailsender@domainesmtp.com> ce qui est affreux... et pas du tout normal, et surtout pas du tout "commercialement" recevable auprès de la clientèle...

    Bref, ok, ça marche, mais pas dans l'esprit attendu.
    C'est déjà ça.

    ça ne résoud pas le problème de fond : que veut vraiment dire ce @@@@ de message d'erreur et comment le résoudre véritablement.

  20. #20
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    alors je n'utilise plus Indy pour les mails, et je n'utilise pas Gmail

    mais tu as IdSMTP.UserName, IdMessage.Sender et IdMessage.From qui sont trois sources d'informations différentes

    1) le compte utilisé pour s'authentifier sur le serveur SMTP
    2) le compte utilisé dans la commande SMTP "Mail From: xxx"
    3) l'email expéditeur qui apparait dans le mail "From: xxx"

    à priori rien n'oblige à ce que les trois valeurs soient identiques.

    normalement tu peux avoir ce que tu veux dans IdMessage.From et sans rapport avec IdMessage.Sender...et il faudrait tester si GMail accepte simplement un IdSMTP.UserName valide....mais il est probable qu'il réclame un Sender @gmail
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Problème d'envoie de mails vers GMAIL
    Par JonathanDigiteo dans le forum Administration système
    Réponses: 1
    Dernier message: 10/02/2021, 14h26
  2. envoi de mail vers gmail
    Par kader123 dans le forum Langage
    Réponses: 5
    Dernier message: 22/02/2019, 20h21
  3. Blocage de l'envoi de mail vers GMail - postfix/dovecot
    Par SwordArMor dans le forum Administration système
    Réponses: 3
    Dernier message: 25/03/2013, 08h02
  4. Envois de mail vers Gmail, impossible
    Par Senaku-seishin dans le forum Applications et environnements graphiques
    Réponses: 1
    Dernier message: 16/02/2011, 16h30
  5. [Wamp] Envoi d'un e-mail vers Gmail
    Par sub-0 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 15/07/2009, 15h19

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