FAQ n°23481, publiée le 07/10/2022
Comment éviter le rejet d'un email avec "missing a valid messageId header" lors d'un envoi vers une adresse Gmail ?

Un email envoyé vers une adresse Gmail peut ne pas être reçu lorsqu'il n'a pas d'identifiant.

Dans ce cas le message est rejeté par les serveurs de Google avec la réponse "returned message" : 


I'm sorry to have to inform you that your message could not

be delivered to one or more recipients.

The mail system <nom.utilisateur@gmail.com>:

host gmail-smtp-in.l.google.com[66.102.1.26] said:

550-5.7.1 [178.33.255.223] Messages missing a valid messageId header are not 550 5.7.1 accepted. 


En plus de son sujet, ses destinataires, son contenu et ses pièces jointes, un email peut en effet contenir un identifiant. Il est historiquement optionnel, mais Google l'impose maintenant.


Afin de permettre l'acheminement vers Gmail, il faut donc ajouter un identifiant : 

  • affecter la propriété MessageID de la variable Email :

    UnCourriel est un Email
    UnCourriel..Sujet = "Sujet du message"
    UnCourriel..Expéditeur= "adresse@expediteur.demo"
    UnCourriel..MessageID = DonneGUID(guidBrut)+"@"+ExtraitChaîne(UnCourriel..Expediteur,2,"@")

  • indiquer à la fonction EmailEnvoieMessage d'envoyer l'identifiant :

    EmailEnvoieMessage(gSessionSMTP, UnCourriel, emailOptionMessageID)



Rappels sur le sujet :

  • L'identifiant d'un email est contenu dans une éventuelle réponse au message dans la propriété ..Référence. Cela permet de retrouver les conversations.
  • L'identifiant n'est pas obligatoirement un GUID, il est possible de lui insérer des données propres à l'application. Si l'email est destiné à un client, on pourra ajouter l'identifiant du client dans l'identifiant de l'email. De cette manière à la lecture d'une réponse à cet email, il est possible de retrouver directement l'identifiant du client dans la propriété ..référence.