// comment corriger
SendGrid 403 « from address does not match a verified Sender Identity » : la solution
SendGrid refuse vos emails en 403 quand l'adresse From n'est ni un expéditeur vérifié ni un domaine authentifié. Trouvez le vrai From et vérifiez-le.
Ce que ça veut dire
Twilio SendGrid ne vous laisse envoyer que depuis des adresses que vous avez vérifiées. Votre message utilisait une adresse From qui n'est ni un Single Sender vérifié ni une adresse d'un domaine authentifié : l'API Mail Send a donc répondu par un HTTP 403. Le corps ressemble généralement à ceci :
{
"errors": [{
"message": "The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved. Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements",
"field": "from",
"help": null
}]
}En SMTP (smtp.sendgrid.net), le même texte revient sous forme d'erreur 550. Rien n'a été envoyé.
Pourquoi cela arrive
- Aucune identité d'expéditeur pour l'instant. Les nouveaux comptes doivent vérifier un Single Sender ou authentifier un domaine avant d'envoyer.
- Le Single Sender n'est pas confirmé. SendGrid a envoyé un email de vérification à cette adresse et personne n'a cliqué sur le lien.
- Votre code envoie depuis une autre adresse. Un Single Sender couvre une seule adresse exacte. Si vous avez vérifié
hello@yourdomain.commais que l'application envoie depuisnoreply@yourdomain.com, l'envoi échoue. - Un plugin remplace le From. WordPress, WooCommerce ou un plugin de formulaire peut envoyer depuis
wordpress@yourdomain.comou depuis l'adresse du visiteur. Voir emails de formulaire de contact envoyés « From » l'adresse du visiteur. - Sous-domaine différent. Un domaine authentifié couvre le domaine que vous avez authentifié. Vérifiez que le domaine du From est exactement celui de la liste (ou un sous-domaine qu'il couvre).
- Mauvais compte ou mauvais subuser. Les identités d'expéditeur appartiennent au compte ou au subuser qui les a créées ; une clé API d'un autre subuser ne les voit pas.
Un 403 peut aussi venir d'une clé API sans la permission Mail Send ; dans ce cas, le message est différent (il parle de permissions ou d'autorisation, pas de Sender Identity).
Comment vérifier
- Enregistrez dans vos logs l'adresse From exacte de la requête (le champ
from.emaildu JSON de l'API, ou leMAIL FROMet l'en-tête From en SMTP). - Dans la console SendGrid, allez dans Settings > Sender Authentication. Regardez la liste des Single Senders (l'adresse y est-elle, et vérifiée ?) et la liste Domain Authentication (le domaine y est-il, et vérifié ?).
- Confirmez que la clé API appartient au même compte ou au même subuser.
Comment corriger
Option 1 : vérifier un Single Sender (rapide, pour tester)
Dans Settings > Sender Authentication, choisissez de vérifier un expéditeur unique, saisissez l'adresse From exacte qu'utilise votre code, puis cliquez sur le lien de l'email que SendGrid lui envoie. La boîte doit exister. SendGrid présente lui-même cette option comme une solution de test, pas comme le meilleur choix en production : vos emails ne sont pas signés avec votre propre domaine.
Option 2 : authentifier votre domaine (recommandé)
Domain Authentication ajoute des enregistrements CNAME à votre DNS pour que SendGrid signe vos emails en DKIM avec votre domaine. Ensuite, n'importe quelle adresse du domaine peut servir de From, et DMARC peut passer. Si les enregistrements ne se valident pas, lisez les CNAME d'authentification de domaine SendGrid ne se valident pas.
Corriger l'application
- Utilisez partout une seule adresse From tirée de votre configuration. Exemple avec la bibliothèque Node.js :
await sgMail.send({ to: 'customer@example.com', from: { email: 'hello@yourdomain.com', name: 'Your Shop' }, replyTo: 'support@yourdomain.com', subject: 'Your order', text: 'Thank you for your order.' }); - Dans les plugins SMTP de WordPress, définissez l'adresse From et activez l'option qui l'impose, pour que les autres plugins ne puissent pas la remplacer.
- N'utilisez jamais une adresse Gmail, Outlook ou Yahoo en From via SendGrid. Vous ne pouvez pas authentifier ces domaines, et leurs politiques DMARC provoquent des refus ou un classement en spam.
Vérifier que c'est corrigé
Envoyez un message via votre application à l'adresse unique de la page d'accueil de Delivmail. Si SendGrid l'accepte, le rapport apparaît. Avec Domain Authentication, le DKIM doit passer pour yourdomain.com et le DMARC doit passer. Avec un simple Single Sender, attendez-vous à un DKIM signé par le domaine de SendGrid, ce qui est une bonne raison de passer à l'authentification de domaine. Renvoyez ensuite le message qui avait échoué. Pour les problèmes d'envoi depuis un site web en général, voir les emails de votre site ou de WordPress arrivent en spam.
Vérifiez que c'est corrigé
Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.
Fiches liées
- Aucune signature DKIM sur vos emailsLe DKIM ajoute une signature numérique qui prouve qu'un email vient bien de votre domaine. Activez-le chez votre fournisseur de messagerie et publiez sa clé dans le DNS.
- La signature DKIM échoue (signature ou empreinte du corps invalide)Votre email est signé, mais la signature ne se vérifie pas. En général, la clé DNS est fausse, ou quelque chose a modifié l'email après sa signature.
- Échec DMARC : le SPF et le DKIM ne correspondent pas à votre domaineLe SPF ou le DKIM peuvent passer et le DMARC échouer quand même, parce qu'ils ont passé pour un autre domaine. Faites en sorte qu'au moins l'un des deux utilise le même domaine que votre adresse d'expéditeur (From).
- Les emails de votre site web ou de WordPress arrivent en spamLes formulaires de contact, confirmations de commande et réinitialisations de mot de passe envoyés par votre site arrivent souvent en spam. Envoyez-les via un SMTP authentifié ou un service d'email transactionnel.
- Quelqu'un envoie de faux emails avec votre domaine (usurpation)Des escrocs peuvent envoyer des emails qui semblent venir de votre domaine. Une politique DMARC en reject demande aux destinataires de les refuser. Surveillez d'abord, puis appliquez.