Platform

Mengapa pesan saya diterima tetapi tidak terkirim?

Pesan Anda diterima tetapi tidak terkirim karena Bird telah menerima permintaan pengiriman tanpa konfirmasi pengiriman dari tujuan.

Mengirim ulang setelah hanya melihat penerimaan dapat menghasilkan pesan duplikat. Lacak pengiriman pertama melalui event berikutnya sebelum memutuskan untuk mencoba lagi.

Simpan identifier pesan yang dikembalikan oleh permintaan pengiriman Anda. Identifier ini menghubungkan penerimaan awal ke event berikutnya tentang pesan tersebut.

Apa yang terjadi antara accepted dan delivered?

Email melewati tahap persiapan. Pesan SMS melewati tahap serah terima ke operator seluler.

Anda dapat melacak pengiriman Bird melalui tipe event berikut:

KanalEventYang terjadi
Emailemail.acceptedBird menerima pengiriman dan menyiapkannya, satu per penerima yang diminta.
Emailemail.processedBird menyiapkan pesan untuk dikirim ke mail server penerima.
Emailemail.deliveredMail server penerima menerima pesan tersebut.
SMSsms.acceptedBird menerima permintaan pengiriman dan memasukkannya ke antrean untuk diproses.
SMSsms.sentBird menyerahkan pesan ke operator.
SMSsms.deliveredOperator melaporkan pengiriman ke perangkat penerima.

Bandingkan waktu event di timestamp untuk menemukan keterlambatan. Waktu kedatangan webhook juga mencakup keterlambatan pengirimannya sendiri.

Untuk email, kurangi waktu penerimaan dari waktu persiapan untuk mengukur durasi persiapan di dalam Bird. Interval setelah persiapan juga mencakup waktu menunggu untuk mencapai server penerima.

Untuk SMS, kurangi waktu penerimaan dari waktu serah terima ke operator untuk mengukur durasi sebelum serah terima. Interval dari serah terima ke pengiriman mengukur sisa waktu pengiriman.

Sebagai contoh, sebuah SMS yang diterima pada siang hari dan diserahkan dua detik kemudian menghabiskan dua detik sebelum serah terima ke operator. Jika pengiriman terjadi delapan detik setelahnya, totalnya adalah sepuluh detik.

Mengapa pesan masih belum terkirim?

Pesan mungkin masih menunggu. Event berikutnya mungkin justru melaporkan pengiriman yang gagal.

Event penerimaan saja tidak dapat membedakan kedua hasil tersebut. Baca event berikutnya untuk pesan yang sama sebelum memutuskan apakah akan mengirimnya lagi.

Email melaporkan hasil berikut:

  • email.deferred berarti pengiriman tertunda setelah kegagalan sementara. Bird mencoba lagi, sehingga pesan masih dapat terkirim atau bounce kemudian.
  • email.bounced berarti server penerima menolak pengiriman.
  • email.rejected berarti Bird menolak pesan sebelum percobaan pengiriman. Selidiki alasan penolakan sebelum mengubah pengaturan mail server penerima.

SMS menggunakan rangkaian yang berbeda:

  • sms.undelivered melaporkan kegagalan pengiriman tidak permanen dari operator.
  • sms.failed melaporkan kegagalan pengiriman permanen.
  • sms.rejected berarti Bird menolak pesan sebelum serah terima ke operator.
  • sms.expired berarti masa berlaku pesan habis sebelum terkirim.

Baca error yang menyertai hasil gagal untuk mengidentifikasi penyebabnya. Pemfilteran operator terhadap SMS menjelaskan salah satu kemungkinan penyebab.

Apakah ada satu siklus hidup yang bisa saya pelajari?

Setiap kanal memiliki urutan status pengiriman sendiri.

Server email dapat meminta pengirim untuk mencoba lagi nanti. Operator SMS dapat berhenti mencoba ketika pesan kedaluwarsa. Hasil-hasil tersebut memerlukan tindakan pemulihan yang berbeda.

WhatsApp dan voice juga melaporkan tipe event mereka sendiri. Panduan event mereka menjelaskan status yang relevan: email, SMS, WhatsApp, dan voice.

Bisakah pesan yang sudah terkirim berubah menjadi tidak terkirim?

Sebuah email dapat berpindah dari delivered ke bounced setelah mail server penerima melaporkan kegagalan pengiriman di kemudian waktu.

Server terlebih dahulu menerima pesan melalui SMTP. Server dapat melaporkan kegagalan secara terpisah setelah pertukaran tersebut selesai.

Bird mencatat laporan tersebut sebagai email.out_of_band_bounce. Ketika laporan diklasifikasikan sebagai bounce, status penerima berpindah dari delivered ke bounced. Untuk hard bounce, Bird juga menekan alamat tersebut untuk memblokir pengiriman selanjutnya karena kegagalannya bersifat permanen.

Auto-reply dapat muncul di timeline tanpa mengubah status pengiriman. Klasifikasi laporan menentukan apakah penerimaan sebelumnya dibatalkan.

Pertahankan status pengiriman agar dapat diperbarui setelah event yang berhasil. Webhook dapat tiba tidak berurutan, jadi bandingkan timestamp event sebelum menerapkan perubahan yang akan menimpa status yang lebih baru.

Singkatnya

  1. Penerimaan mengonfirmasi permintaan pengiriman.

    Bird mulai menyiapkan pesan setelah penerimaan. Event ini tidak mengonfirmasi pesan tiba di mail server atau perangkat.

  2. Persiapan dan serah terima adalah batas yang berbeda.

    Email melaporkan persiapan dengan email.processed. SMS melaporkan serah terima ke operator dengan sms.sent.

  3. Kegagalan memiliki arti spesifik per kanal.

    Email dapat ditunda, bounce, atau ditolak. SMS membedakan hasil undelivered, failed, rejected, dan expired.

  4. Pengiriman email dapat diikuti oleh bounce.

    Laporan bounce yang datang kemudian dapat mengubah status penerima email dari delivered menjadi bounced. Auto-reply tidak mengubah status pengiriman.

Terapkan dalam praktik.

Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.

Dapatkan ringkasan implementasi

Bangun di jaringan yang sama.

Kunci API uji coba langsung tersedia untuk Anda. Akses produksi terbuka saat Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Ide Anda berikutnya.
Siap terhubung.