Platform

Pourquoi mon message est-il accepté mais non livré ?

Votre message est accepté mais non livré parce que Bird a reçu la demande d'envoi sans confirmation de livraison de la part de la destination.

Renvoyer un message après avoir vu uniquement l'acceptation peut créer un doublon. Suivez le premier envoi à travers ses événements ultérieurs avant de décider de réessayer.

Conservez l'identifiant de message renvoyé par votre demande d'envoi. Il relie l'acceptation initiale aux événements ultérieurs concernant ce message.

Que se passe-t-il entre l'acceptation et la livraison ?

L'e-mail passe par une phase de préparation. Les messages SMS passent par un transfert vers un opérateur mobile.

Vous pouvez suivre vos envois Bird à travers ces types d'événements :

CanalÉvénementCe qui s'est passé
E-mailemail.acceptedBird a accepté l'envoi et le prépare, une fois par destinataire demandé.
E-mailemail.processedBird a préparé le message pour la livraison au serveur de messagerie du destinataire.
E-mailemail.deliveredLe serveur de messagerie du destinataire a accepté le message.
SMSsms.acceptedBird a accepté la demande d'envoi et l'a mise en file d'attente pour traitement.
SMSsms.sentBird a transmis le message à l'opérateur.
SMSsms.deliveredL'opérateur a signalé la livraison au terminal du destinataire.

Comparez les horodatages des événements dans timestamp pour localiser un retard. Les heures d'arrivée des webhooks incluent leurs propres délais de livraison.

Pour l'e-mail, soustrayez l'heure d'acceptation de l'heure de préparation pour mesurer la préparation dans Bird. L'intervalle après la préparation inclut aussi l'attente pour atteindre le serveur de réception.

Pour SMS, soustrayez l'heure d'acceptation de l'heure de transfert à l'opérateur pour mesurer le temps avant le transfert. L'intervalle entre le transfert et la livraison mesure le temps de livraison restant.

Par exemple, un SMS accepté à midi et transféré deux secondes plus tard a passé deux secondes avant le transfert à l'opérateur. Si la livraison suit huit secondes plus tard, le total est de dix secondes.

Pourquoi n'est-il toujours pas livré ?

Le message peut encore être en attente. Un événement ultérieur peut signaler un échec de livraison à la place.

Un événement d'acceptation seul ne permet pas de distinguer ces résultats. Consultez les événements ultérieurs du même message avant de décider de le renvoyer.

L'e-mail signale ces résultats :

  • email.deferred signifie que la livraison est retardée après un échec temporaire. Bird réessaye, donc le message peut encore être livré ou rebondir plus tard.
  • email.bounced signifie que le serveur de réception a rejeté la livraison.
  • email.rejected signifie que Bird a refusé le message avant une tentative de livraison. Examinez la raison du rejet avant de modifier les paramètres du serveur de messagerie du destinataire.

SMS utilise un ensemble différent :

  • sms.undelivered signale un échec de livraison non permanent de la part de l'opérateur.
  • sms.failed signale un échec de livraison permanent.
  • sms.rejected signifie que Bird a refusé le message avant le transfert à l'opérateur.
  • sms.expired signifie que la période de validité du message a expiré avant la livraison.

Consultez l'erreur accompagnant un résultat d'échec pour identifier la cause. Filtrage par l'opérateur des SMS explique une cause possible.

Existe-t-il un cycle de vie unique à apprendre ?

Chaque canal possède sa propre séquence d'états de livraison.

Les serveurs de messagerie peuvent demander à un expéditeur de réessayer plus tard. Les opérateurs SMS peuvent cesser leurs tentatives lorsqu'un message expire. Ces résultats nécessitent des actions de correction différentes.

WhatsApp et la voix signalent aussi leurs propres types d'événements. Leurs guides d'événements décrivent les états pertinents : e-mail, SMS, WhatsApp et voix.

Un message livré peut-il cesser d'être livré ?

Un e-mail peut passer de livré à rebond après que le serveur de messagerie de réception a signalé un échec de livraison ultérieur.

Le serveur accepte d'abord le message via SMTP. Il peut signaler un échec séparément après la fin de cet échange.

Bird enregistre le rapport en tant que email.out_of_band_bounce. Lorsque le rapport est classé comme rebond, le statut du destinataire passe de livré à rebond. En cas de rebond définitif, Bird supprime aussi l'adresse pour bloquer les envois ultérieurs, car l'échec est permanent.

Une réponse automatique peut apparaître sur la chronologie sans modifier le statut de livraison. La classification du rapport détermine si l'acceptation précédente est révoquée.

Maintenez le statut de livraison modifiable après un événement réussi. Les webhooks peuvent arriver dans le désordre : comparez les horodatages des événements avant d'appliquer un changement qui écraserait un état plus récent.

En bref

  1. L'acceptation confirme la demande d'envoi.

    Bird commence à préparer le message après l'acceptation. L'événement ne confirme pas l'arrivée sur un serveur de messagerie ou un terminal.

  2. Préparation et transfert sont des étapes distinctes.

    L'e-mail signale la préparation avec email.processed. SMS signale le transfert à l'opérateur avec sms.sent.

  3. Les échecs ont des significations propres à chaque canal.

    L'e-mail peut être différé, renvoyé en rebond ou rejeté. SMS distingue les résultats non livré, échoué, rejeté et expiré.

  4. La livraison d'un e-mail peut être suivie d'un rebond.

    Un rapport de rebond ultérieur peut faire passer un destinataire d'e-mail de livré à rebond. Une réponse automatique ne modifie pas le statut de livraison.

Développez sur le même réseau.

Une clé API de test est disponible immédiatement. La production est activée dès que vous ajoutez un moyen de paiement et vérifiez un expéditeur.

Votre prochaine idée.
Prête à se connecter.