Cek Blacklist Email: Yang Tidak Diberitahu Alat Lookup

Summary

Cek blacklist email adalah lookup DNS atas IP atau domain pengirim Anda terhadap blocklist publik. Hasilnya menjawab satu pertanyaan: apakah alamat ini tercantum sekarang. Hasil itu tidak memprediksi apakah Gmail atau Outlook akan menerima email Anda. Jalankan dari host dengan resolver sendiri, validasi zona dengan entri uji 127.0.0.2, perlakukan jawaban 127.255.255.x sebagai penolakan dan bukan hasil, lalu baca teks bounce terlebih dahulu.

Rak server di pusat data yang gelap dengan satu lampu peringatan kuning di antara LED status hijau

Cek blacklist email biasanya menghasilkan tabel baris hijau dan merah setelah Anda memasukkan IP pengirim ke alat pencarian multi-daftar. Tabel itu menjawab satu pertanyaan yang sempit: apakah alamat ini sekarang tercantum di sejumlah daftar hitam DNS publik. Hasilnya tidak memberi tahu apakah Gmail, Outlook, atau gateway perusahaan akan menerima pesan Anda berikutnya. Menganggap keduanya sebagai pertanyaan yang sama adalah sumber utama salah baca di hampir setiap linimasa insiden pengiriman.

Artikel ini membahas apa yang sebenarnya ditanyakan oleh sebuah cek, cara menjalankannya sendiri dengan dig, kode hasil mana yang berarti bersih dan mana yang berarti kueri Anda ditolak, serta cara memasang semuanya ke monitoring supaya Anda tidak perlu mengeceknya secara manual pada jam 2 pagi.

Cek blacklist email hanyalah kueri DNS

Setiap DNS blocklist (DNSBL) bekerja dengan cara yang sama. Anda membalik oktet alamat IPv4, menambahkan zona daftar, lalu meminta rekord A. RFC 5782 mendefinisikan konvensinya: untuk 192.0.2.99 yang dicek terhadap bad.example.com, kuerinya adalah 99.2.0.192.bad.example.com. Jika alamat tercantum, Anda mendapat jawaban di rentang 127.0.0.0/8. Jika tidak tercantum, tidak ada rekord yang dikembalikan.

Itulah seluruh mekanismenya. Alat web tempat Anda menempelkan IP menjalankan puluhan lookup seperti ini secara paralel, lalu memformat jawabannya menjadi tabel yang rapi.

# Apakah 203.0.113.25 tercantum di Spamhaus ZEN?
dig +short 25.113.0.203.zen.spamhaus.org A

# Lookup ke daftar berbasis domain bekerja dengan cara yang sama, tanpa pembalikan:
dig +short example.com.dbl.spamhaus.org A

Output kosong berarti tidak tercantum. Jawaban 127.x.x.x berarti tercantum, dan dua oktet terakhir menunjukkan sub-daftar mana yang cocok. Jalankan dari mesin yang Anda kendalikan, terhadap resolver Anda sendiri, dan Anda bisa membuat skripnya, mencatat hasilnya, lalu memasang alert.

Laptop dengan jendela terminal gelap di sebelah buku catatan yang berisi sketsa diagram jaringan tulisan tangan

Cek alamat tempat email Anda keluar, bukan alamat website Anda

Kesalahan pertama adalah memeriksa IP yang salah. Website pemasaran, API, dan relay email keluar biasanya adalah tiga alamat yang berbeda. Yang penting adalah IP di header Received dari pesan yang benar-benar sampai ke kotak masuk.

Jika Anda mengirim lewat ESP di infrastruktur bersama, IP itu bukan milik Anda, dan listing-nya juga bukan milik Anda. Jika Anda mengirim dari IP khusus, IP itu sepenuhnya milik Anda, termasuk apa pun yang dilakukan penyewa sebelumnya pada rentang tersebut. Karena itu, pemeriksaan pertama selalu berupa pertanyaan tentang kepemilikan: IP ini sedang dipakai siapa, dan sejak kapan.

Ambil IP pengirim dari pesan yang sudah terkirim, bukan dari pengaturan di dasbor. Lalu cek tiga hal secara terpisah: IP pengirim, domain envelope dan From, serta setiap domain yang muncul di tautan Anda, termasuk host tracking dan unsubscribe. Daftar berbasis URI seperti URIBL dan SURBL menilai tautan di dalam badan pesan. Jadi IP yang bersih tidak melindungi pesan yang menunjuk ke domain yang tercantum.

Hasil bersih dari resolver publik bisa jadi penolakan yang menyamar

Ini adalah mode kegagalan yang tidak pernah disebut oleh halaman cek generik. Spamhaus tidak menjawab kueri yang datang lewat resolver publik atau terbuka, dan mereka memberi sinyal itu dengan kode hasil, bukan dengan listing. Spamhaus mendokumentasikan 127.255.255.254 sebagai kode error, bukan hasil reputasi, dan menyatakan bahwa kode itu tidak boleh dipakai untuk menolak email.

Ada dua konsekuensinya. Jika skrip Anda membaca jawaban 127.x apa pun sebagai "tercantum", kueri yang ditolak dari resolver cloud akan membangunkan Anda untuk listing yang sebenarnya tidak ada. Jika skrip Anda membaca "tidak ada jawaban yang bisa dipakai" sebagai "bersih", Anda akan diam-diam melewatkan listing sungguhan, karena penolakan itu juga bisa muncul sebagai respons kosong atau NXDOMAIN.

Solusinya adalah menjalankan lookup dari host yang memiliki resolver rekursif sendiri dan reverse DNS yang benar, atau memakai layanan kueri gratis yang disarankan Spamhaus kepada pengguna mirror publik. Lalu validasi zonanya sebelum Anda mempercayainya. RFC 5782 mewajibkan daftar IPv4 memiliki entri untuk 127.0.0.2 dan tidak memiliki entri untuk 127.0.0.1, sehingga Anda bisa menguji setup Anda seperti ini:

dig +short 2.0.0.127.zen.spamhaus.org A   # harus mengembalikan jawaban 127.x
dig +short 1.0.0.127.zen.spamhaus.org A   # harus tidak mengembalikan apa pun

Jika keduanya tidak mengembalikan apa pun, jalur resolver Anda rusak atau ditolak. Perbaiki itu sebelum membaca hasil apa pun darinya.

Panel patch dengan kabel ethernet biru dan satu kabel merah yang menonjol

Sebagian besar insiden pengiriman bukan insiden blocklist

Pada tinjauan bounce, pertanyaan pertama sebelum melakukan lookup apa pun adalah apa yang sebenarnya dikatakan server penerima. Sebuah listing menghasilkan penolakan yang spesifik. Masalah reputasi di penyedia mailbox menghasilkan penolakan yang berbeda, dan tidak ada daftar publik yang akan menunjukkannya.

Dokumentasi pengirim Google cukup lugas soal ini. Respons 550 5.7.1 bisa berarti IP pengirim ada di daftar yang ditangguhkan, sering kali karena reputasi IP bersama yang buruk, sementara 5.7.26 mengarah ke autentikasi yang gagal. Untuk pengirim bulk, Google mensyaratkan SPF, DKIM, dan DMARC, DNS maju dan balik yang valid pada IP pengirim, TLS, serta tingkat spam di bawah 0,30% di Postmaster Tools. Persyaratan pengirim Gmail mencantumkan 0,10% sebagai target yang disarankan.

Bacalah ini sebagai urutan prioritas. Jika teks bounce menyebut zona atau URL DNSBL, Anda punya masalah listing. Jika teks itu menyebut reputasi, autentikasi, atau batas laju, cek blocklist akan kembali bersih, dan Anda hanya membuang satu jam untuk membuktikannya.

Lewati cek satu kali sebagai monitoring Anda

Cek satu kali hanya memberi tahu kondisi pada saat Anda menekan enter. Listing sering bersifat sementara, dan banyak yang muncul setelah lonjakan yang Anda sebabkan sendiri: impor kontak dingin, blast izin ulang, atau formulir yang disalahgunakan untuk mengirim spam.

Alat yang memungut biaya untuk "menghapus Anda dari 100 blacklist" menjual layanan untuk masalah yang tidak dimiliki sebagian besar daftar itu. Banyak daftar dalam cek multi yang umum hanya berdampak kecil pada penyedia mailbox arus utama, dan penghapusan biasanya gratis serta bisa dilakukan sendiri di halaman operator. Mengejar setiap baris merah membuang waktu yang seharusnya dipakai untuk dua atau tiga daftar yang benar-benar dikonsultasikan oleh penerima Anda.

Urutkan daftar berdasarkan trafik yang Anda kirim. Lihat penerima mana yang muncul di bounce Anda, cari daftar yang secara publik dipakai oleh penerima tersebut, lalu pantau daftar itu. Sisanya cukup ditinjau sebulan sekali.

Tiga catatan tempel yang dihubungkan dengan panah spidol di papan tulis, membuat sketsa alur monitoring

Ubah cek menjadi job terjadwal dengan ambang alert

Berikut versi minimal yang layak dipakai. Skrip ini berjalan dari host dengan resolver sungguhan, memvalidasi zona lebih dulu, dan membedakan tiga hasil: tercantum, tidak tercantum, dan kueri ditolak.

import socket

def dnsbl(ip: str, zone: str) -> str:
    rev = ".".join(reversed(ip.split(".")))
    try:
        answer = socket.gethostbyname(f"{rev}.{zone}")
    except socket.gaierror:
        return "not_listed"
    if answer.startswith("127.255.255."):
        return "refused"   # kode error, bukan hasil reputasi
    return f"listed:{answer}"

# Periksa zona sebelum mempercayainya (entri uji RFC 5782)
assert dnsbl("127.0.0.2", "zen.spamhaus.org").startswith("listed")
assert dnsbl("127.0.0.1", "zen.spamhaus.org") == "not_listed"

Jalankan setiap 15 sampai 60 menit per IP pengirim dan per domain pengirim, catat setiap hasil dengan timestamp, dan beri alert hanya saat terjadi transisi dari not_listed ke listed. Beri alert terpisah untuk refused, karena itu berarti monitoring Anda buta, bukan berarti reputasi Anda berubah.

Padukan dengan sinyal yang biasanya bergerak lebih cepat daripada blocklist. Tingkat keluhan dari dasbor Postmaster, tingkat bounce per domain penerima, dan tingkat deferral per jam bergerak sebelum listing muncul. Angka-angka inilah yang memberi tahu Anda apakah perlu menjeda sebuah pengiriman. Jika Anda sudah mengirim log dan metrik ke stack monitoring, hasil lookup hanyalah satu time series lagi di sana.

Empat alat cocok untuk alur kerja ini, tergantung di mana masalah Anda berada.

Postmark hanya untuk transaksional, jadi email reset password Anda tidak berbagi jalur pengiriman dengan blast newsletter orang lain. Jika listing Anda terus terlacak ke tetangga di infrastruktur bersama, memisahkan pengiriman transaksional dari pemasaran adalah perbaikan strukturalnya.

Resend adalah pilihan yang berorientasi developer jika Anda menginginkan API yang bersih dan permukaan kecil untuk diinstrumentasi. Layak dipertimbangkan saat tim Anda memang akan menulis sendiri cek deliverability.

SendGrid punya rekam jejak terpanjang di volume besar dan menawarkan IP khusus, artinya reputasi serta paparan blocklist sepenuhnya menjadi milik Anda. Lewati opsi ini jika Anda tidak bisa menyediakan staf untuk warmup dan monitoring yang dibutuhkan IP khusus.

Better Stack adalah bagian untuk sisi job terjadwal: pengecekan bergaya uptime, alerting, dan routing on-call untuk skrip lookup di atas, sehingga listing baru sampai ke manusia, bukan hanya ke file log.

Ketika Anda tercantum, perbaiki penyebabnya sebelum meminta penghapusan

Menghapus tanpa mencari akar masalah hanya membeli beberapa hari. Operator daftar yang melihat alamat yang sama kembali dengan perilaku yang sama akan mencantumkannya lagi, dan sebagian operator memperberat listing yang berulang.

Kerjakan dengan urutan ini:

  1. Hentikan atau turunkan kecepatan pengiriman dari IP yang tercantum. Lalu lintas buruk yang terus berjalan akan memperpanjang listing dan menambah listing baru.

  2. Baca catatan listing dari operator daftar. Banyak yang mencantumkan buktinya: hit spam trap, lonjakan, atau laporan penyalahgunaan relay.

  3. Cari sumbernya. Periksa endpoint formulir untuk penyalahgunaan open relay, lihat impor daftar terbaru, dan tinjau integrasi baru yang mulai mengirim dalam seminggu terakhir.

  4. Perbaiki penyebabnya, lalu gunakan proses penghapusan milik operator. Beberapa daftar menghapus listing secara otomatis setelah periode tenang.

  5. Lanjutkan dengan volume yang dikurangi, mulai dari penerima yang paling aktif, dan pantau tingkat keluhan serta deferral selama seminggu.

Reverse DNS yang hilang adalah kontributor yang berulang. Google mencantumkan rekord PTR yang valid dalam persyaratan pengirimnya, dan IP pengirim tanpa PTR dibaca sebagai kepercayaan rendah oleh banyak penerima bahkan sebelum konten dievaluasi.

Bangun alur lifecycle di sekitar sinyal, bukan daftar

Jika produk Anda mengirim email aktivasi, tagihan, atau keamanan, listing adalah insiden ketersediaan untuk alur tersebut. Perlakukan begitu: jalurkan email transaksional lewat jalur yang terisolasi dari volume pemasaran, dan buat lapisan trigger sadar akan status pengiriman, sehingga email aktivasi yang macet kembali ke prompt di dalam aplikasi.

Customer.io adalah lapisan berbasis event yang biasanya dipasangkan dengan penyedia pengiriman terpisah untuk alasan ini: trigger perilaku dan logika pesan berada di satu tempat, pengiriman di tempat lain, dan Anda bisa mengganti atau memisahkan pengiriman tanpa menulis ulang alur. Konsekuensinya adalah satu sistem lagi yang harus tetap bisa diamati.

Bagian pemisahan inilah yang layak ditiru meskipun Anda memilih vendor yang berbeda. Event daftar hitam seharusnya mengubah ke mana sebuah pesan dikirim, bukan apakah logika lifecycle Anda masih berfungsi.

Yang sebaiknya Anda pasang minggu ini

Ada tiga hal, diurutkan dari manfaat terbesar. Pertama, lookup terjadwal dengan validasi zona dan status refused yang terpisah, dijalankan dari host yang memiliki resolver sendiri. Kedua, rincian bounce per domain penerima, agar Anda tahu daftar mana yang penting untuk trafik Anda. Ketiga, runbook tertulis yang dimulai dari teks bounce dan diakhiri dengan langkah penghapusan, supaya siapa pun yang sedang on-call tidak perlu berimprovisasi.

Domain pengirim mana yang tidak akan Anda sadari jika tercantum selama sehari?

Frequently asked questions

Bagaimana cara menjalankan cek blacklist email untuk IP saya?
Balik oktet IP, tambahkan zona DNSBL, lalu minta rekord A. Untuk 203.0.113.25 di Spamhaus ZEN, jalankan dig +short 25.113.0.203.zen.spamhaus.org A. Output kosong berarti tidak tercantum, dan jawaban 127.x berarti tercantum.
Mengapa IP saya terlihat bersih tetapi email tetap terpental?
Lookup hanya mencakup daftar yang Anda kueri. Penolakan sering berasal dari reputasi penyedia mailbox, SPF, DKIM, atau DMARC yang gagal, atau batas laju, yang tidak muncul di blocklist publik. Baca teks bounce terlebih dahulu.
Apa arti kode Spamhaus 127.255.255.254?
Itu adalah kode error, bukan hasil reputasi. Spamhaus memakainya saat kueri datang lewat resolver publik atau terbuka. Kode itu tidak menyatakan apa pun tentang IP Anda dan tidak boleh diperlakukan sebagai listing.
Apakah saya perlu mengecek domain selain IP pengirim?
Ya. Reputasi IP dan reputasi domain adalah sinyal yang terpisah. Periksa juga domain tautan di pesan Anda, termasuk host tracking dan unsubscribe, karena daftar URI menilai tautan di dalam badan pesan.
Seberapa sering saya harus memantau blacklist?
Setiap 15 sampai 60 menit per IP dan domain pengirim sudah cukup untuk sebagian besar tim. Beri alert saat status berubah dari tidak tercantum menjadi tercantum, dan beri alert terpisah saat kueri ditolak, karena itu berarti monitoring Anda buta.
Apakah layak membayar layanan untuk menghapus saya dari blacklist?
Biasanya tidak. Penghapusan umumnya gratis melalui halaman masing-masing operator daftar, dan banyak daftar dalam cek multi yang luas kurang berpengaruh bagi penyedia mailbox arus utama. Perbaiki penyebabnya dulu, lalu minta penghapusan.
notificationharbor
Mulai gratis