rushi kulkarni
rushi kulkarni

Reputation: 79

email domain validation in php on windows

I am asking for an email address through a form in my website. I want to validate the domain so that I can prevent fake entries I am getting right now. I am using the following code, but it dose not seem to work :

function myCheckDNSRR($hostName, $recType = '')
{
    if(!empty($hostName)) {
        if( $recType == '' ) $recType = "MX";
        exec("nslookup -type=$recType $hostName", $result);
        // check each line to find the one that starts with the host
        // name. If it exists then the function succeeded.
        foreach ($result as $line) {
            if(eregi("^$hostName",$line)) {
                echo "valid email";
            }
        }
        // otherwise there was no mail handler for the domain
        echo "invalid email";
    }
    echo "invalid EMAIL";
}

I am new to this and used this code from here

Please guide me. Thanks.

Upvotes: 0

Views: 78

Answers (2)

Pattatharasu Nataraj
Pattatharasu Nataraj

Reputation: 248

I guess you can simply ping like this.

 function myCheckDNSRR($email_address)
    { 
        if(!empty($email_address)) {
            $hostName=strstr($email_address, '@');
            $hostName=str_replace("@","www.",$hostName);
            exec("ping " . $hostName, $output, $result);
            if ($result == 0){
                 echo "valid email";
            }
            else{
                 echo "invalid email";
            }
    } 
 }

call it like

  echo myCheckDNSRR("[email protected]");

Upvotes: 1

delboy1978uk
delboy1978uk

Reputation: 12365

Use a validation lib like https://docs.zendframework.com/zend-validator/validators/email-address/

$validator = new Zend\Validator\EmailAddress();

if ($validator->isValid($email)) {
    // email appears to be valid
} else {
    // email is invalid; print the reasons
    foreach ($validator->getMessages() as $message) {
        echo "$message\n";
    }
}

Create a table in your DB for storing an email link code. When someone registers, mark the user as unactivated until he clicks the link in the email. This way, you know it's real, and can activate the user.

Upvotes: 0

Related Questions