Jawaban lain di sini membahas berbagai masalah dengan mencoba melakukan ini. Saya pikir saya akan menunjukkan bagaimana Anda dapat mencoba ini jika Anda ingin belajar dengan melakukannya sendiri.
Anda dapat terhubung ke server email melalui telnet untuk menanyakan apakah ada alamat email. Berikut adalah contoh pengujian alamat email untuk stackoverflow.com
:
C: \> nslookup -q = mx stackoverflow.com
Jawaban non-otoritatif:
stackoverflow.com Preferensi MX = 40, penukar surat = STACKOVERFLOW.COM.S9B2.PSMTP.com
stackoverflow.com preferensi MX = 10, mail exchanger = STACKOVERFLOW.COM.S9A1.PSMTP.com
stackoverflow.com Preferensi MX = 20, penukar surat = STACKOVERFLOW.COM.S9A2.PSMTP.com
stackoverflow.com preferensi MX = 30, mail exchanger = STACKOVERFLOW.COM.S9B1.PSMTP.com
C: \> telnet STACKOVERFLOW.COM.S9A1.PSMTP.com 25
220 Postini ESMTP 213 y6_35_0c4 siap. Bagian Kode Bisnis dan Profesi CA 17538.45 melarang penggunaan sistem ini untuk iklan surat elektronik yang tidak diminta.
helo hai
250 Postini menyapa kembali
surat dari: <me@myhost.com>
250 Oke
rcpt ke: <fake@stackoverflow.com>
550-5.1.1 Akun email yang Anda coba hubungi tidak ada. Silakan coba
550-5.1.1 memeriksa ulang alamat email penerima jika ada kesalahan ketik atau
550-5.1.1 spasi yang tidak perlu. Pelajari lebih lanjut di
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 w41si3198459wfd.71
Garis yang diawali dengan kode numerik adalah tanggapan dari server SMTP. Saya menambahkan beberapa baris kosong agar lebih mudah dibaca.
Banyak server email tidak akan mengembalikan informasi ini sebagai cara untuk mencegah perampasan alamat email oleh pelaku spam, jadi Anda tidak dapat mengandalkan teknik ini. Namun, Anda mungkin berhasil membersihkan beberapa alamat email yang jelas buruk dengan mendeteksi server email yang tidak valid, atau alamat penerima ditolak seperti di atas.
Perhatikan juga bahwa server email dapat memasukkan Anda ke daftar hitam jika Anda membuat terlalu banyak permintaan.
Di PHP saya yakin Anda dapat menggunakan fsockopen
, fwrite
dan fread
untuk melakukan langkah-langkah di atas secara terprogram:
$smtp_server = fsockopen("STACKOVERFLOW.COM.S9A1.PSMTP.com", 25, $errno, $errstr, 30);
fwrite($smtp_server, "helo hi\r\n");
fwrite($smtp_server, "mail from: <me@myhost.com>\r\n");
fwrite($smtp_server, "rcpt to: <fake@stackoverflow.com>\r\n");