先说下我想干吗吧
我打算做个功能软件,来判断用户输入的邮箱地址的真实性的程序,我们半时经常见到留邮箱什么的,
有的是随便写的根本就不存在,如遇到这样的不诚实的人注册什么的,可以用程序来过滤掉。
我搜了下资料,发现,这个网站的邮箱验证功能非常准,正确率接近100%,
http://verify-email.org/我现在在想,有没办法利用这个网站,集成到自己的程序中去,即在自己的程序中,调用这个查询接口,来判断邮箱呢?理论上应该是可行的吧?可能要跨域什么之类的知识点吧,目前已能获取该网页的源码了,东东比较杂,接下来,我要怎么科学的处理有点迷茫啊,之前没做过相关的,怕走弯路,求大虾提供好的处理方法吧。
我打算做个功能软件,来判断用户输入的邮箱地址的真实性的程序,我们半时经常见到留邮箱什么的,
有的是随便写的根本就不存在,如遇到这样的不诚实的人注册什么的,可以用程序来过滤掉。
我搜了下资料,发现,这个网站的邮箱验证功能非常准,正确率接近100%,
http://verify-email.org/我现在在想,有没办法利用这个网站,集成到自己的程序中去,即在自己的程序中,调用这个查询接口,来判断邮箱呢?理论上应该是可行的吧?可能要跨域什么之类的知识点吧,目前已能获取该网页的源码了,东东比较杂,接下来,我要怎么科学的处理有点迷茫啊,之前没做过相关的,怕走弯路,求大虾提供好的处理方法吧。
<head>
<link rel="stylesheet" href="/templates/verifyemail/html/com_jcomments/default/style.css?v=21" type="text/css" />
<link rel="stylesheet" href="/templates/verifyemail/css/template.css.php?v=1.0.6" type="text/css" />
<script src="/components/com_jcomments/js/jcomments-v2.3.js?v=8" type="text/javascript"></script>
<script src="/components/com_jcomments/libraries/joomlatune/ajax.js?v=4" type="text/javascript"></script>
<script src="/templates/verifyemail/js/modernizr.js" type="text/javascript"></script>
<script src="/media/system/js/mootools-core.js" type="text/javascript"></script>
<script src="/media/system/js/core.js" type="text/javascript"></script>
<script src="/media/system/js/mootools-more.js" type="text/javascript"></script>
<script src="/media/system/js/validate.js" type="text/javascript"></script>
<script type="text/javascript">
function keepAlive() { var myAjax = new Request({method: "get", url: "index.php"}).send();}
window.addEvent("domready", function(){ keepAlive.periodical(3540000); });
window.addEvent('domready', function(){
new Form.Request(document.id('myForm'), document.id('result_box'), {
requestOptions: {
spinnerOptions: {
message: 'Checking... please wait...'
}
}
});
document.id('checkemail').addEvent('change', function() {
document.id('findemail').value = document.id('checkemail').value;
});
}); </script>
<link rel="apple-touch-icon-precomposed" href="/templates/verifyemail/apple-touch-icon-57x57.png"> <!-- iphone, ipod, android -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="/templates/verifyemail/apple-touch-icon-72x72.png"> <!-- ipad -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="/templates/verifyemail/apple-touch-icon-114x114.png"> <!-- iphone retina -->
<link href='http://fonts.googleapis.com/css?family=Open+Sans|Dosis' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="/templates/verifyemail/bootstrap/js/bootstrap.min.js"></script>
<script type="text/javascript">
var $ = jQuery.noConflict();
</script>
<script type="text/javascript"> var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-1095323-18']);
_gaq.push(['_trackPageview']); (function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();</script>
</head>
<body>
<div class="container">
<!-- START Email Search MODULE -->
<div class="moduletable">
<div class="row hidden-phone"><div class="ads span6"><script type="text/javascript">
<!--google_ad_client = "pub-1856694233004936";
google_ad_width = 300;
google_ad_height = 250;
google_ad_format = "300x250_as";
google_ad_type = "text";
google_ad_channel = "";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "105cb6";
google_color_text = "000000";
google_color_url = "000000";//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div class="search_mod span6"><h4><a href="http://www.email-unlimited.com/email_verifier_professional.html" target="_blank">Email Verifier</a> - Clean your lists from bad emails.</h4>
<h4><a href="http://www.email-unlimited.com/" target="_blank">Bulk Email Software</a> - Easy to use and powerful bulk email software.</h4>
<h4><a href="http://email-lists1.com/" target="_blank">Email Lists</a> - Targeted email lists at a wholesales rate.</h4>
<h4><a href="http://emailsearchtool.com/" target="_blank">Free Email Search</a> - Free people and email search engine</h4></div></div>
<br style="clear:both;">
<div class="search_module hero-unit">
<div class="row">
<div class="left12 span5">
<h2>Looking to verify an email?</h2>
<p>This email verification tool actually connects to the mail server and checks whether the mailbox exists or not.</p> </div>
<div class="text-block span5 hidden-phone">
<h2>What is being verified:</h2>
<ul>
<li>Format: "[email protected]"</li>
<li>Valid domain: "[email protected]" is not valid</li>
<li>Valid user: verify if the user and mailbox really exist</li>
</ul> </div>
</div>
<div class="item-separator"></div>
<div id="email" class="row">
<div class="span11">
<div class="">
<div class="span">
<form id="myForm" method="get" class="form-inline searchform form-validate" action="index.php">
<input id="checkemail" type="text" value="" name="check" class="required validate-email span5" />
<input type="hidden" name="option" value="com_emailverifier" />
<input type="hidden" name="view" value="emailverifier" />
<input type="hidden" name="layout" value="verify" />
<input type="hidden" name="format" value="raw" />
<input type="hidden" name="0aee635c162c132817fd3b079fe487a1" value="1" /> <input class="submit btn btn-large btn-danger span3" id="btn" type="submit" name="submitEmail" value="Verify">
</form>
</div>
<div class="span">
<form method="post" class="searchform left" action="http://emailsearchtool.com/" target="_blank">
<input id="findemail" type="hidden" value="" name="contactEmail"/>
<input class="form_submit span btn btn-small btn-success" id="btn_search" type="submit" name="submitEmail" value="More about this email...">
</form>
</div>
<br style="clear: both;" />
</div>
</div>
</div>
</div>
<br style="clear:both;">
<div class="resultsBox" id="result_box"></div>
</div>
<!-- END Email Search MODULE -->
<!-- BEGIN: Custom advanced (www.jtricks.com) -->
<div style="height:100px;">
<!-- AddThis Button BEGIN -->
<div class="addthis_toolbox addthis_default_style hidden-phone" style="float:right; margin:3px; width: auto;">
<a class="addthis_counter"></a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=xa-4f3e31aa02b7e4db"></script>
<script type="text/javascript">
var addthis_config = {
data_track_address_bar: false,
data_track_clickback: false
};
</script>
<!-- AddThis Button END -->
<div id="fb-root"></div>
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<div style="float:right; margin:3px" class="fb-like" data-send="false" data-layout="box_count" data-width="45" data-show-faces="false"></div> <!-- Place this tag where you want the +1 button to render -->
<div style="float:right; margin:3px">
<g:plusone size="tall"></g:plusone>
<!-- Place this render call where appropriate -->
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
</div> <div style="float:right; margin:3px">
<a href="https://twitter.com/share" class="twitter-share-button" data-count="vertical">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</div><div style="float:right; margin:3px">
<script src="//platform.linkedin.com/in.js" type="text/javascript"></script>
<script type="IN/Share" data-url="http://verify-email.org/" data-counter="top"></script>
</div></div>
</body>
</html>
</html>
http://verify-email.org/index.php?check=123%40qq.com&option=com_emailverifier&view=emailverifier&layout=verify&format=raw&ab65fee74a592b069d79709400a55275=1&submitEmail=Verify响应:
<div class="resultsBox">
<div class="alert alert-block alert-info fade in">
<a class="close" data-dismiss="alert" href="#">×</a>
<p><h3>[email protected] - Result: Ok</h3></p>
</div>
<pre>MX record about qq.com exists.<br/>Connection succeeded to mx1.qq.com SMTP.<br/>220 newmx29.qq.com MX QQ Mail Server<br/>
> HELO verify-email.org<br/>250 newmx29.qq.com<br/>
> MAIL FROM: <[email protected]><br/>=250 Ok<br/>
> RCPT TO: <[email protected]><br/>=250 OK<br/>
</pre>
</div>
这样的,只能服务器端处理
http://verify-email.org/index.php?check=123%40qq.com&option=com_emailverifier&view=emailverifier&layout=verify&format=raw&ab65fee74a592b069d79709400a55275=1&submitEmail=Verify就有判断了?
不过,貌似把这个URL输入在浏览器中,没有响应输出啊,也不是没响应输出,输出的是:
Invalid Token. Please refresh the page and try again.这显然还是没法判断呢
不知,具体要怎么处理这个URL呢?
重要的是参数。各参数的 来源,意义。
Request URL:http://verify-email.org/index.php?check=yuhaomilan1%40sohu.com&option=com_emailverifier&view=emailverifier&layout=verify&format=raw&4a573152a10e819166ad4281981766b5=1&submitEmail=Verify返回值
<div class="resultsBox">
<div class="alert alert-block alert-error fade in">
<a class="close" data-dismiss="alert" href="#">×</a>
<p><h3>[email protected] - Result: Bad</h3></p>
</div>
<pre>MX record about sohu.com exists.<br/>Connection succeeded to sohumx2.sohu.com SMTP.<br/>220 sohumxtc_211.sohu.com ESMTP Postfix<br/>
> HELO verify-email.org<br/>250 sohumxtc_211.sohu.com<br/>
> MAIL FROM: <[email protected]><br/>=452 4.3.1 Insufficient system storage<br/>
> RCPT TO: <[email protected]><br/>=503 5.5.1 Error: need MAIL command<br/>
421 4.7.0 sohumxtc_211.sohu.com Error: too many errors<br/>
</pre>
</div>
貌似直接用请求的URL放在浏览器地址栏中,没什么用呢。
你有没发现,每次查询后,这个参数都变掉了?
并且,你查询的这个参数,在我这边不能用,同样,我的在你那边也不能用,即这个参数一起在变
如果是固定了URL都能有正确的响应的话,那就解决了老兄,这个真没那么简单的了,貌似只能,先登录他们的网络,才能用的,间接的便用,似乎难啊。
你试下2楼的请求URL,输入到浏览器中,看能不能正确的返回值(答案是不行的呢,只有你自己查过一次后,并且在当前的浏览器中,再输入地址栏中,才会有返回值的,你换个浏览器,就不行了呢,难就难在这里了。)
<input type="email" class="required validate-email span5" name="check" value="" id="checkemail" aria-required="true" required="required" aria-invalid="false">
<input type="hidden" value="com_emailverifier" name="option">
<input type="hidden" value="emailverifier" name="view">
<input type="hidden" value="verify" name="layout">
<input type="hidden" value="raw" name="format">
<input type="hidden" value="1" name="75a23218c425bd02446c2569e67862dd"> <input type="submit" value="Verify" name="submitEmail" id="btn" class="submit btn btn-large btn-danger span3">
</form>除了分析提交的那个请求。
还要分析,参数来源,意义。
参数来源,意义,需要分析之前的请求,以及javascript
用 正则采集一下需要的几个参数就可以了
之前没分析过相关的,水平有限,分析不来,哎,看来是无解了,不知道这里有没高人做出来可实用的demo了,有的话,共享下啊,话说不是懒惰不想写啊
http://verify-email.org/index.php?check=123%40qq.com&option=com_emailverifier&view=emailverifier&layout=verify&format=raw&ab65fee74a592b069d79709400a55275=1&submitEmail=Verify
这个URL没用,应该是这个字段加密了ab65fee74a592b069d79709400a55275=1
ab65fee74a592b069d79709400a55275这个参数是可变的,为什么是可变的,这个还不好理解。