2013-01-14 47 views
5

मैं यह पता लगाने की कोशिश कर रहा हूं कि कोई ईमेल पता मान्य है या नहीं।ईमेल का परीक्षण करने के लिए बैश और टेलनेट

मैं usign टेलनेट द्वारा इस कार्य किया है उसे, इस 550 अनुरोध मुझे पता है कि पता मेल सर्वर पर मान्य नहीं है के साथ नीचे

$ telnet mail.example.com 25 
Trying 0.0.0.0... 
Connected to mail.example.com. 
Escape character is '^]'. 
220 mail.example.com Mon, 14 Jan 2013 19:01:44 +0000 
helo email.com 
250 mail.example.com Hello email.com [0.0.0.0] 
mail from:[email protected] 
250 OK 
rcpt to:[email protected] 
550 Unknown user 

देखना ... अगर यह वैध था मैं एक प्रतिक्रिया मिल जाएगा नीचे की तरह:

250 2.1.5 OK 

मैं इसे शैल स्क्रिप्ट में कैसे स्वचालित करूं? अब तक मेरे पास

#!/bin/bash 
host=`dig mx +short $1 | cut -d ' ' -f2 | head -1` 
telnet $host 25 

धन्यवाद!

+3

यह ध्यान देने योग्य हो सकता है कि जीमेल, हॉटमेल और याहू मेल समेत अधिकांश बड़े मेल प्रदाता स्पैमर को लाइव खातों को कटाई से रोकने के लिए इस तकनीक को अस्वीकार करते हैं। –

+1

@ अन्य व्यक्ति मैंने वास्तव में जीमेल के साथ प्रयास किया है और यह * एक * अलग * प्रारूप में काम करता है ...... से 'कोड' मेल: <[email protected]> आरसीपीटी: < [email protected]> 'code' – bsmoo

उत्तर

8

कर इसे आज़माएं:

[[ [email protected] ]] || { 
    printf "Usage\n\t./$0 domain <email> <from_email> <rcpt_email>\n" 
    exit 1 
} 
{ 
    sleep 1 
    echo "helo $2" 
    sleep 0.5 
    echo "mail from:$3" 
    sleep 0.5 
    echo "rcpt to:$4" 
    echo 
} | telnet $1 25 | 
    grep -q "Unknown user" && 
    echo "Invalid email" || 
    echo "Valid email" 

उपयोग:

./script.sh domain email from_email rcpt_email 
1

आप हमेशा अपने आदेशों एक सादा पाठ फ़ाइल में, लाइन लाइन के बाद कमांड लाइन पर प्रवेश कर सकता है, बस के रूप में यदि आप उन्हें टाइप किया । तो फिर तुम जैसे

cat commands.txt | telnet mail.example.com 25 | grep -i '550 Unknown User' 

कुछ का उपयोग कर सकते जब से तुम शायद टेम्पलेट के रूप में पाठ फ़ाइल पर विचार करना होगा, (मैं यह सोचते हैं रहा हूँ आप शायद ई-मेल एड्रेस parameterize करना चाहते हैं) आप के लिए एक कॉल सम्मिलित करने के लिए आवश्यकता हो सकती है 'cat command.txt' के आउटपुट लेने के लिए अजीब और अपना ई-मेल पता डालें।