Buradaki diğer cevaplar, bunu yapmaya çalışmakla ilgili çeşitli sorunları tartışmaktadır. Bunu kendiniz yaparak öğrenmek istemeniz durumunda bunu nasıl deneyebileceğinizi göstereyim diye düşündüm.
Bir e-posta adresinin olup olmadığını sormak için telnet aracılığıyla bir posta sunucusuna bağlanabilirsiniz. Aşağıda bir e-posta adresinin test edilmesine bir örnek verilmiştir stackoverflow.com
:
C: \> nslookup -q = mx stackoverflow.com
Yetkisiz cevap:
stackoverflow.com MX tercihi = 40, posta değiştirici = STACKOVERFLOW.COM.S9B2.PSMTP.com
stackoverflow.com MX tercihi = 10, posta değiştirici = STACKOVERFLOW.COM.S9A1.PSMTP.com
stackoverflow.com MX tercihi = 20, posta değiştirici = STACKOVERFLOW.COM.S9A2.PSMTP.com
stackoverflow.com MX tercihi = 30, posta değiştirici = STACKOVERFLOW.COM.S9B1.PSMTP.com
C: \> telnet STACKOVERFLOW.COM.S9A1.PSMTP.com 25
220 Postini ESMTP 213 y6_35_0c4 hazır. CA İş ve Meslekler Kodu Bölüm 17538.45, bu sistemin istenmeyen elektronik posta reklamları için kullanılmasını yasaklar.
merhaba merhaba
250 Postini tekrar merhaba diyor
posta: <me@myhost.com>
250 Tamam
rcpt to: <fake@stackoverflow.com>
550-5.1.1 Ulaşmaya çalıştığınız e-posta hesabı mevcut değil. Deneyin lütfen
550-5.1.1 alıcının e-posta adresinde yazım hataları veya
550-5.1.1 gereksiz alanlar. Daha fazla bilgi edinin
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 w41si3198459wfd.71
Sayısal kodların önüne eklenen satırlar, SMTP sunucusundan gelen yanıtlardır. Daha okunaklı olması için bazı boş satırlar ekledim.
Çoğu posta sunucusu, e-posta adresinin istenmeyen posta gönderenler tarafından toplanmasını önlemek için bu bilgileri döndürmez, bu nedenle bu tekniğe güvenemezsiniz. Bununla birlikte, geçersiz posta sunucularını tespit ederek veya alıcı adreslerinin yukarıdaki gibi reddedilmesini sağlayarak açıkça kötü olan bazı e-posta adreslerini temizlemekte biraz başarılı olabilirsiniz.
Çok fazla istekte bulunursanız posta sunucularının sizi kara listeye alabileceğini de unutmayın.
PHP ben kullanabilirsiniz inanıyoruz fsockopen
, fwrite
ve fread
programlı yukarıdaki adımları gerçekleştirmek için:
$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");