2010-06-11 16 views
12

मेरे पास एक पुरानी सूची से 5000 ईमेल वाले ग्राहक हैं, जिनके पास वह अपनी सेवाओं को बढ़ावा देना चाहता है। वह जानना चाहता है कि सूची में कौन से ईमेल अभी भी मान्य हैं। मैं उन्हें उनके लिए जांचना चाहता हूं - 5K ईमेल बेतरतीब ढंग से भेजकर और फिर स्पैमर या कुछ के रूप में सूचीबद्ध किया जा रहा है। विचार?मैं कैसे जांचूं कि कोई ईमेल पता इसके बिना कुछ भेजने के वैध है या नहीं?

+0

http://stackoverflow.com/search?q=validate+email –

+1

@ ब्रेंडन लांग ऐसा लगता है कि वे पहले से ही ईमेल स्वरूपित रूप से स्वरूपित हैं, और वह यह जांचने की कोशिश कर रहा है कि खाता वास्तव में मौजूद है या नहीं। –

+0

ओह। तो कोई बात नहीं। –

उत्तर

6

bucabay's उत्तर आगे बढ़ने का तरीका है। अनिवार्य रूप से ऐसी लाइब्रेरी क्या निर्दिष्ट डोमेन (ए, एमएक्स, या एएएए) पर (मेल) सर्वर के लिए मौजूदा DNS रिकॉर्ड की जांच कर रही है। उसके बाद, यह कॉलबैक सत्यापन कहा जाता है। यही वह जगह है जहां आप मेल सर्वर से कनेक्ट होते हैं, इसे बताएं कि आप किसी विशेष ईमेल पते पर भेजना चाहते हैं और देखें कि वे ठीक कहें या नहीं।

कॉलबैक सत्यापन के लिए, आपको नोट करना चाहिए कि greylisting सर्वर सबकुछ ठीक है, इसलिए वास्तव में ईमेल भेजने के बिना 100% गारंटी संभव नहीं है। यहां कुछ कोड है जिसका उपयोग मैंने मैन्युअल रूप से किया था। यह here से ईमेल पता पार्सर पर एक पैच है।

# 
    # Email callback verification 
    # Based on http://uk2.php.net/manual/en/function.getmxrr.php 
    # 

    if (strlen($bits['domain-literal'])){ 
     $records = array($bits['domain-literal']); 
    }elseif (!getmxrr($bits['domain'], $mx_records, $mx_weight)){ 
     $records = array($bits['domain']); 
    }else{ 
     $mxs = array(); 

     for ($i = 0; $i < count($mx_records); $i++){ 
      $mxs[$mx_records[$i]] = $mx_weight[$i]; 
     } 

     asort($mxs); 

     $records = array_keys($mxs); 
    } 

    $user_okay = false; 
    for ($j = 0; $j < count($records) && !$user_okay; $j++){ 
     $fp = @fsockopen($records[$j], 25, $errno, $errstr, 2); 
     if($fp){ 
      $ms_resp = ""; 

      $ms_resp .= send_command($fp, "HELO ******.com"); 
      $ms_resp .= send_command($fp, "MAIL FROM:<>"); 

      $rcpt_text = send_command($fp, "RCPT TO:<" . $email . ">"); 
      $ms_resp .= $rcpt_text; 

      $ms_code = intval(substr($rcpt_text, 0, 3)); 
      if ($ms_code == 250 || $ms_code == 451){ // Accept all user account on greylisting server 
       $user_okay = true; 
      } 

      $ms_resp .= send_command($fp, "QUIT"); 

      fclose($fp); 
     } 
    } 

return $user_okay ? 1 : 0; 
+3

कॉलबैक सत्यापन/प्रेषक पता सत्यापन करने के लिए देखें। इसकी उपयोगिता पर बहस है (उदाहरण के लिए http://en.wikipedia.org/wiki/Callback_verification संदर्भ देखें) और कुछ आरबीएल की इच्छा में आपको प्रेषक पता सत्यापन करने के लिए _just_ शामिल होगा। – sync

+0

यह बेहद उपयोगी केटीसी दिखता है - क्या मैं इसका उपयोग बुकाबे के उत्तर में संदर्भित कोड के साथ कर सकता हूं? – Matt

2

आपको उन्हें कम से कम एक बार ईमेल करना होगा।

  • एक नई ईमेल सूची बनाएं। पुरानी सूची को एक ईमेल के साथ एक लिंक भेजें जिसे उन्हें संदेश प्राप्त करना जारी रखने के लिए क्लिक करना होगा (पुनः सदस्यता लें)।
  • उन्हें सभी ईमेल भेजें और एक वास्तविक ईमेल खाते पर बाउंस के लिए सभी उत्तर इकट्ठा करें, फिर उन लोगों को अपनी मुख्य सूची से बाउंस करें।
  • उन्हें सभी एक HTML ईमेल भेजें, और छवियों में से एक को दूरस्थ रूप से होस्ट किया गया है और प्रत्येक ईमेल में सेट करने के लिए अनुरोध करने के लिए एक अद्वितीय आईडी की आवश्यकता है। जब आपका वेब सर्वर उस छवि को अपने ग्राहक को वापस लौटाता है, तो आप उस ईमेल को सक्रिय मान सकते हैं। इसे web bug कहा जाता है, और केवल तभी काम करेगा यदि व्यक्ति स्वचालित रूप से अपने क्लाइंट में दूरस्थ छवियों को लोड करता है।
+1

छवि सत्यापन हमेशा काम नहीं करता है, क्योंकि ज्यादातर संगठन (मुझे पता है) डिफ़ॉल्ट रूप से छवियों को दबाएं दबाएं। आपका दूसरा विकल्प ठीक है ... उपयोगकर्ताओं को आगे पत्राचार पर चयन करने का एक अच्छा तरीका है। –

+0

हाँ, यह कई तरीकों में से एक हो सकता है ओपी शायद स्टाइल ईमेल निर्धारित करने के लिए नियोजित करना चाहें। मैंने विकल्प # 2 से # 1 स्थानांतरित किया :) –

3

मुझे लगता है कि आपको पता लगाने के लिए ईमेल भेजने की आवश्यकता है। साथ ही, यह स्पैमर की तरह बिल्कुल सटीक है, इस प्रकार स्पैमर सूचियों पर डालने का कारण है। विस्फोटों में भेजना आपको इस तथ्य को छिपाने में मदद करेगा।

+0

ओपी को ईमेल भेजने के बिना एक तरीका पूछा जाता है। यह एक आगंतुक द्वारा प्रदान किए गए विज़िटर के अस्तित्व को सत्यापित करने के लिए बहुत उपयोगी है – SCC

9

आप वास्तविक ईमेल भेजने के बिना एसएमटीपी के माध्यम से ईमेल को मान्य कर सकते हैं।

http://code.google.com/p/php-smtp-email-validation/

तुम भी ईमेल भेज सकता है बाहर, और बाउंस लिए जाँच करें।

1

https://github.com/kamilc/email_verifier एक rubygem की जाँच करेगा कि कि MX रिकॉर्ड मौजूद है और कि एसएमटीपी सर्वर का कहना है पता मान्य मेलबॉक्स है।

0

आप इसे करने के लिए Kickbox जैसी सशुल्क सेवा का उपयोग भी कर सकते हैं।

0

आप मेलबॉक्स वैलिडेटर सेवा http://www.mailboxvalidator.com/ पर विचार कर सकते हैं जो आपकी आवश्यकता के लिए पर्याप्त होना चाहिए। आप या तो एक थोक योजना प्राप्त कर सकते हैं जहां आप अपनी ईमेल सूची वाली एक CSV फ़ाइल अपलोड कर सकते हैं या यदि आप प्रोग्रामेटिक एकीकरण की आवश्यकता है तो एपीआई योजना प्राप्त कर सकते हैं।

संबंधित मुद्दे