免费在线批量验证邮箱有效性接口 API V1.0 - 单个邮箱版

如果您是注册用户,可以通过API来验证邮件地址的有效性。使用它非常简单,下面是API V1.0 开发文档::

http://www.emailcamel.com/api/single/validate/?usr=your_username&pwd=your_password&email=email@tocheck.com

PHP Example: 

$username	= 'your_username';
$password	= 'your_password';
$email		= 'email to be cheked';
$api_url	= 'http://www.emailcamel.com/api/single/validate/?';
//构造请求URL			
$url		= $api_url . 'usr=' . $username . '&pwd=' . $password . '&email=' . $email;
//返回结果。返回的结果为json数据,需要json_decode
$result		= json_decode(remote_get_contents($url),TRUE); 

/**
 * $result = array(
        'authentication_status' =>'',//fail,success
        'authentication_msg' =>'',   //
        'verify_status' => 'fail',  //success or fail
        'verify_result' => '', //valid,invalid,notverified,catch-all,dea,format_err
        'verify_suggested_correction'=>array(
            'has_available_validate_num'=>0,
            'is_pass_grea_max_domain_num'=>0,
            'send_freq_retry_time'=>2,
            'grey_list_retry_time'=>120,
        ),
        'verify_status_msg'=>'' 
    );
 *
 */

//处理逻辑
if($result['authentication_status']=='fail'){
    //查看$result['authentication_msg']返回的信息,根据错误信息去修正用户名和密码
}else if($result['authentication_status']=='success'){ //认证成功
    if($result['verify_status']=='fail'){//验证失败
        //查看$result['verify_status_msg'],根据提示去解决些问题,比如是否是可用验证次数不足了等
        //$result['verify_suggested_correction']['has_available_validate_num']==0 //表示可用的验证次数为0,需要账户充值
        //$result['verify_suggested_correction']['is_pass_grea_max_domain_num']==1 //验证风控系统对单个域当天是否超过最大发送量,如果超过了,过了0点才可以再次发送该域。比如发送demo@gmail.com,会对gmail.com域做风控限制
        if($result['verify_suggested_correction']['has_available_validate_num']>0){ //表示可以的验证次数足
            if($result['verify_suggested_correction']['is_pass_grea_max_domain_num']==0) { //表示未超过风控系统对单个域当天是否超过最大发送量
                //到这里验证失败的原因只能是发送频率的问题。
                //根据这里$result['verify_suggested_correction']['send_freq_retry_time']提供的建议值,一般为2秒,2秒后重新发起验证该邮件地址即可

            }else if($result['verify_suggested_correction']['is_pass_grea_max_domain_num']==1){
                //表示该邮件地址所在的域超过风控系统对单个域当天最大的发送量,您可以0点后再发该邮件地址

            }
        }
    }else if($result['verify_status']=='success'){ //验证成功
        //可以在这里写您们的逻辑了
        switch ($result['verify_result']){
            case 'valid': //有效
                //写您们的逻辑了
                break;
            case 'invalid': //无效
                //写您们的逻辑了
                break;
            case 'notverified': //未验证出来
                //写您们的逻辑了
                //对于未验证出来的邮件地址,多半是灰名单引起的
                //可以根据$result['verify_suggested_correction']建议的值,一般为120分钟即2小时后再重新发起验证
                //您如果不需要验证,也可以不用验证
                break;
            case 'catch-all': //catch-all
                //写您们的逻辑了
                break;
            case 'dea': //dea
                //写您们的逻辑了
                break;
            case 'format_err': //format_err 格式错误的邮件地址
                //写您们的逻辑了
                break;
        }
    }
}

// Get remote file contents, preferring faster cURL if available
function remote_get_contents($url){
    if (function_exists('curl_get_contents') AND function_exists('curl_init')) {
        return curl_get_contents($url);
    }else {
        // A litte slower, but (usually) gets the job done
        return file_get_contents($url);
    }
}
//
function curl_get_contents($url)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output =  curl_exec($ch);
    curl_close($ch);
    return $output;
}


返回结果$result,详解:

参数名 描述
authentication_status 认证状态 成功为:success,失败为:fail
authentication_msg 认证错误信息 返回:出错信息
verify_status 验证是否成功 成功返回:success,失败返回:fail
verify_status_msg 验证失败的原因 返回验证失败的原因:用户名或者密码不正确,或者账户被禁用
verify_result 验证状态结果 值分5个状态:valid,invalid,notverified,catch-all,dea,format_err
verify_suggested_correction 当验证失败或者验证状态结果为notverified的时候,一些建议值 提供4个建议,看下面
verify_suggested_correction['has_available_validate_num'] 当验证失败时,可以查看可用的验证次数是否不足 当为0时表示可用的验证次数不足,>0时表示可用
verify_suggested_correction['is_pass_grea_max_domain_num'] 当验证失败时,验证风控系统对单个域当天是否超过最大发送量,如果超过了,过了0点才可以再次发送该域。比如发送demo@gmail.com,会对gmail.com域做风控限制 0:未超过,1:超过
verify_suggested_correction['send_freq_retry_time'] 当验证失败时,验证风控系统对发送频率的限制,对于验证失败的,2秒后再重新发 建议值2秒
verify_suggested_correction['grey_list_retry_time'] 灰名单导致验证状态结构为:notverified 对于notverified,建议120分钟即2小时后重试,重试1~3次,如果还是显示'notverified',则不需要再重试了


如果您有任何问题可以联系我们