Jul 23, 2008

Verifying Email Addresses - Using a simple PHP script

Free Web Hosting, No Ads > CONTRIBUTE > Tutorials

free web hosting

Verifying Email Addresses - Using a simple PHP script

rvalkass
This simple script will allow you to run some basic checks to make sure that any email address entered is actually an email address.
There is no guarantee offered that this will stop every single fake email address, but it'll provide some protection.

Now, the code!

First we need to get the email address to verify. Here, I get it using POST from an HTML form.
CODE

<?php
//Load email address from web form
$email = $_POST['email'];


Now, we move on to our first check. Does the text that has been entered look like it could be an email address?
This check can be performed using something called 'regular expressions'. This is basically a set of rules defining where characters can be and what characters are allowed. Its quite complicated to start with, but you should be able to get the jist of it.
CODE

//Check that the text entered follows the format of an email address
if (preg_match("/^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*$/", $email)){
 echo '<font face="Arial" size="+3" color="green">The format is <b>valid</b>!</font><br>';
}
else{
 echo '<font face="Arial" size="+3" color="red">The format is <b>invalid</b>!</font><br>';
}


The regular expression here is:
CODE

/^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*$/

In English it basically says:
Some letters or numbers, followed by some more letters or numbers or a dot then followed by an @ sign, then some more letters and numbers or a dot. Its quite complicated to explain! If the text entered follows that format then the first echo is carried out. If not, then it says its failed. You can easily replace those with anything you want.

Now, we split the email address into 2 parts: the username and the domain name.
CODE

//Split the email address apart
list($userName, $domainName) = split("@", $email);

Quite self explanitory. Anything before the @ is put into $userName and anything after is put into $domainName

We can now use this information to check that the domain name exists. This gives a very good idea as to whether the email address is valid. Someone could enter "gobbledeegook@madman.pest" which would pass the first test, but fail the second.

We check for the domain by checking for a mail exchange record for that domain name. If one doesn't exists it probably means the server doesn't either.
CODE

//Then see if the domain exists
if (checkdnsrr($domainName, "MX")) {
 echo '<font face="Arial" size="+3" color="green">The domain name is <b>valid</b>!</font><br>';
}
else{
 echo '<font face="Arial" size="+3" color="red">The domain name is <b>invalid</b>!</font><br>';
}
?>

The "MX" tells PHP we want to look for a mail exchange record. There are various records that can be checked for, but they are irrelevant for this purpose. Again, it prints the success and failure messages but these can be replaced as you wish.

Thats it. You now have a mail checker. I have set up a demo here with an HTML form front end.

There is one final check that can be performed, but this blocks most free domains such as @hotmail.com, @yahoo.co.uk, @gmail.com and I have therefore omitted it. It is incredibly secure and it does mean that any address you do get through is likely to be an ISP address, web hosting address or another address you have to pay for, and is therefore very unlikely to be fake, but blocks the majority of the Internet using World out.

Any problems, questions, comments or suggestions please feel free to contact me by posting below, PM, email or MSN Messenger, all of which is on my member profile.

 

 

 


Reply

Spectre
Just to provide a (hopefully) clearer description, the pattern:

CODE
[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*


Basically translates to:

[any letter, number, underscore, or dash] repeated one or more times (a dot [any letter, number, underscore, or dash] repeated one or more times) appearing zero or more times @ [any number, letter, or dash] repeated one ore more times (a dot [any letter, number, or a dash] repeated one or more times) appearing zero or times.

Also, you may want to quote sources or give due credit when using code obtained from other parties.

Reply

prashant
Nice cool validation thing.

I would be doing a similar thing in javaScript.

just tell me one thing .

what is the minimum length of characters of domain ??

eg.

prashant@abc.com
prashant@ab.com
prashant@a.com

can there be sites like A.com , AB.com or ABC.com ??

what is the minimum length of the domain ??

Reply

Spectre
It depends on the TLD. The minimum .com length is currently three characters - although every single possible three character .com domain name has long been registered, and the only way to get one is by snatching it after it expires. In the past, the minimum length has been two and even one for this TLD, but only for a short time (x.com, cj.com and aa.com are examples of domain names registered before the minimum length was increased). With the exception of .info, which has a minimum four character length, the other generic TLDs are the same, and most ccTLDs are as well. You should be able to find more information at IANA, InterNIC and ICANN. Anyway, this is getting a little off topic...

Reply

rvalkass
As far as I am aware, only 3 single-letter domains exist as there was a restriction put on them in 1993. The script doesn't check for the length of the domain, merely the existance of it. If it's too short to exist, then it will not find the domain and stop anyway.

Spectre, the only code that I took from anywhere else was the regexp, which is from here, and thats only because my first attempt refused a few real addresses. The rest of the code I typed myself.

Reply

Plenoptic
This is a very nice tutorial. Thanks a lot rvalkass. I will have to use this when I make a membership system for my site. I haven't tried the tutorial yet but I will make sure to remember it.

Reply

corzel
Hi!

Can i validate email addresses with this script in the same way that programs like bulk email validator works.

That´s because i have a mailing list and some times i receive may mails back.

Reply

bucksta
nice php script. a lot of sites use something like this. staticscripts uses some sort of emaill scripts. i dont know how it sends email but it has a system that sends it as a certain email depending oin what is happening. that thing also validates. nice script!

Reply

wassie
nice php script smile.gif
good tutorial, nice explaining of what does what. Thanks for posting this on trap17, i think lots of members can use this smile.gif
thumbs up!

Reply



Got an Opinion! Express your Views! (no registration):-
Add your Reply/ Opinion/ Views/ Comments/ Suggestion/ Questions/ Queries etc.
Posts with decent grammar & English will be accepted and please refrain from profanities.
For asking a Question, We recommend you to sign-up (for free) so that you can track the topic easily.

Nature of your Post*: Opinion/ Reply/ Comments
Question/Query
Feedback to us.
       
Name   Email
Title/Question*

(Maximum characters: 10,000)
You have characters left.
Confirm Code:

Similar Topics

Keywords : verifying email addresses php script

  1. Background Image Swap Script - Change a Background Image based on clock time (15)
    Background Image Changer Script To swap the background image from your CSS file according to the
    Server Clock Time. 1.) In your CSS file, add the following rule: CODE body {
        background: url(time.png); } 2.) Create a "folder" named time.png. 3.) Into the
    folder, place three images named morning.png, day.png, night.png. 4.) Also, in the same folder,
    create an index.php file and copy/paste the following script. CODE <?php $hour =
    date('H'); if ($hour < 12 ) {     $image =
    "morning.png"; } ...
  2. Php Quiz Script - Make quizzes for your site. (20)
    Hello all, A little bit back I decided to make a quiz scriptjust out of no where lol. However it
    doesnt do anything special but I am going to make an email mod for it so that it will email results
    to your email address. So here is the basis of it. INSTRUCTIONS: Open a new page in your text
    editor and paste in the following code. CODE <?php $qid = "Quiz ID-00"; ?>
    <html> <head> <title><? echo "Gamers Pub $qid";
    ?></title> </head> <body> <p><h3><? echo "...
  3. Sending + Receiving Email Via Telnet - using email via the command line. (8)
    ok first off im no good at writing tutorials so feel free to flame me (hey that rymes). Anyway in
    this tutorial i will basically show you how to send and receive email via the command-line terminal
    emulation program called Telnet. Now where shall i start, hmm.. Sending Email!! Sending
    Email Sending email requires a special type of server called an SMTP server (SMTP -> Simple Mail
    Transfer Protocol). SMTP is the protocol used to send email just like POP is the protocol used to
    receive. Now by default and most commonly SMTP servers run on port 25. To describe ...
  4. Verifying Your Email Address - A Simple PHP Tutorial. (0)
  5. Php Emailer/contact System - An email or contact system for your site (20)
    Hello all, Here is an easy Emailer or Contact system that allows visitors or members of your site
    to email you just by filling out a form. So here is what you need to do to set it up. First open up
    a new page in your text editor and paste in the following code. CODE <?php $Name =
    $_POST['Name']; $Subject = $_POST['Subject'];
    $Email = $_POST['Email']; $Site =
    $_POST['Site']; $Message=$_POST['Message'];
    $align = $_POST[&#...
  6. [phpbb] Member Last-visit Report Script - for phpbb2 databases (0)
    One flaw in the phpbb2 administration section is a report to list out the 'last-visit'
    time/date of the membership. I wrote a script to do exactly that and will be sharing the script with
    you here. the first section defines the variables required for the Database connection, finding the
    right database, supplying passwords, etc. HTML DEFINE ('DB_USER', 'YOUR DB
    USER NAME'); // change these defined values to suit your own situation DEFINE
    ('DB_PASSWORD', 'YOUR DB PASSWORD'); DEFINE ('DB_HOST', '...
  7. Image Rotator Script (another One) - easy to implement (0)
    In case you haven't noticed, I have a different Avatar display on the Forum each time the page
    is refreshed. /biggrin.gif" style="vertical-align:middle" emoid=":D" border="0" alt="biggrin.gif"
    /> For those of you who might want the script to do that, here is the one I am using: HTML
    $filesp = glob('*.png'); if(empty($filesp)){ echo
    'no images found...die br >'; die(); } else{ foreach ($filesp as
    $file) { $img_array[] = trim($file); }...
  8. For ... Next Loops And Script Planning - My Fifth PHP Tutorial (2)
    Be sure to read the other ones. They are located in the TUTORIALS section, and at the time of this
    writing all on the first page. Intro To PHP Tutorial 5 - For ... Next Loops and Planning Scripts
    Released 4/15/07 By Chris Feilbach aka GhostRider Contact Info: E-mail: assembler7@gmail.com AIM:
    emptybinder78 Yahoo: drunkonmarshmellows Website: http://www.ghostrider.trap17.com Before I start
    talking about what wonderful things loops are and all the cool stuff they can do, I want to address
    something first. I was asked about something to write in PHP. There isn't...
  9. How To: Ip Configuration Script (win Xp) - If you travel a lot with your laptop, and need to switch between diff (0)
    How To: IP Configuration Script (win XP) If you travel a lot with your laptop, and need to switch
    between different IP's in different locations, this script is for you. There are many programs
    that handle this task very well, but they cost sometimes pretty big money. This tutorial will show
    you how to make your own IP Configuration Script for free. This script is for a static ip address
    configuration and is based on a little program called "NETSH.EXE" which is supplied with Windows.
    How it works. QUOTE Microsoft Windows XP - Using Netsh Netsh.exe is a...
  10. Php Script To Make A Link List - From the list of the Directory Files (6)
    Well, it has been a while since I have added anything to the Tutorial Sectiion, so here is another
    script for the members to enjoy. This one creates a list of links from the contents of the directory
    which it is run from. For instance, if you run it from the public_html folder, then all the files
    (not the Directores) are listed and linked so when you click on the link, that file is parsed and
    output to the browser. Here is the code: "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    An XHTML 1.0 Strict Page to List the files in this directory ...
  11. Email Script/form With Php - how to make a simple email script using php (35)
    Today, I'm going to show you how to make an email script using PHP and HTML. Most people usually
    put Email me if they want an email link on their site, but there are several cons to this.
    First, it's very inconvenient for those people who use web-based mail such as Yahoo!,
    Hotmail, or Gmail because that darn Micro$oft Outlook program comes up if one accidently click
    the link. Second, you are very suseptible to spam bots because they scan your HTML source code for
    anything with the same pattern as an email address and add it to their database. If yo...
  12. Page Generation Time Script - A script to tell how long it took to generate (17)
    this is a script used to tell you or visitors how fast your page was generated for the person who is
    viewing it... Ok it is verry simple!! all you have to do is put this script on every
    page... that you want it to be on CODE <?php $starttime = explode(' ',
    microtime()); $starttime = $starttime[1] + $starttime[0];
    ?> and put it before everything on the page, for me i put it right underneith the DOCTYPE
    script which i think is a bloody waste of space to have it on there, but anyways.. ...
  13. Secure The Email Addresses On Your Website! - Wonderful script and useful! And working (10)
    Just follow the instructions below: /* Secure Email Function by Juan Karlo Aquino de
    Guzman Website: http://www.karlo.ph.tc and http://www.abs-cbn.ph.tc E-mail:
    http://www.karlo.ph.tc/send.php Usage: showEmail("support@microsoft.com",0); OR
    showEmail("support@microsoft.com",1); Types: 0 = ordinary random 1 = more secure random To
    include to a script: include_once("email_secure.php"); */ And here is the code :
    CODE <?php /*     Secure Email Function by Juan Karlo Aquino de Guzman     Website:
    http://www.karlo....
  14. Php Menu Bulding Script And Site Template - available for download (0)
    A Php Menu-builder Tutorial This Sidebar Menu-builder code and the php scripts are adapted from
    a Tutorial on the Astahost.com Forum titled : CMS101 - Content Management System Design .
    Since the original tutorial's author (vujsa) did such a marvellous job of describing the system
    in the original Topic posting, I will not attempt to explain it here, rather, I invite you to have a
    look at his Topic and learn from it. The Basic tutorial provided coding for developing a table-based
    web-site template which used php includes and embedded data to create a &...
  15. Script To Build A List Of Links - from filenames and h3 tags (2)
    Another Unordered List Script If you remember this Script , that tutorial was about creating
    an un-ordered list of links from a list of files contained in a Folder which was specifically named
    in the script. This current Tutorial goes several steps beyond that first Tutorial by being able to
    create a list from several folder names and, more importantly, the script reads the list of links
    from a 'flat file' rather than depending on the name of the folder to be hard coded in the
    script. It is only one small step to have the folder names found in a mysql ...
  16. How To Use Trap17 Cgi Formmail - a built-in script in every hosting (15)
    This tutorial is using TRAP17 hosting's built-in script called cgiemail. There are several
    hundreds of free scripts you can download and install it yourself but why not use what is already
    provided for you, if all you need is a simple submit and data collection? Let's begin. There
    are three things you need to remember: 1) you can rename the file however you'd like 2) two
    files (which I'll name them submitForm.html and template.txt ) must be in the same directory
    3) first two lines in template.txt must EXIST. Write your submitForm.html (where you ...
  17. Installing Ndstats! - The greatest Stats script of all time. (4)
    An example of this script cna be found at http://www.own.tc/ (click enter) This is by far the
    BEST stats script and most sites use it! This is a PHP script and requires you to include files
    (Please... don't do iframes!) DOWNLOAD LINK: GO TO www.ZYMIC.com and go to Php scripts>stats
    scripts> and the current version of NDSTATS. Downlaod it and unzip it! Go to your WWW directory
    and create a folder called "ndstats". Then what you need to do is upload all of your files into
    that folder. You all should know how to do that. Then go to the top of the pag...
  18. Random Quote Script - (6)
    Here's a little random quote script that you can use to randomly choose from an array of quotes
    you provide. It's very easy to use on any page as it's an external script, you just call it
    from your page. I wouldn't use it for any more than about 50 quotes though, it would probably
    slow your site down too much. Here's the code: var ar = new Array(44) ar = "Do not meddle in
    the affairs of wizards, for they are subtle and quick to anger." ar = "Faithless is he that says
    farewell when the road darkens." ar = "I cordially dislike allegory in all its ...
  19. E-mail Mailer Script 0.1 - useful for website visitors (4)
    Are you pissed off when you are putting e-mail in your website, you always get spammers? Well,
    here's the solution. Just change the default variables to anything that you like, etc... follow
    the instructions on the script.. Here it is... hope you like it /smile.gif' border='0'
    style='vertical-align:middle' alt='smile.gif' /> CODE <?php //E-mail Mailer Script 0.1
    by Juan Karlo de Guzman //FOR TRAP17 ONLY... DEMO VERSION... DO NOT DISTRIBUTE
    header("Content-type: text/html; CHARSET=UTF-8");
    $int_rand=mt_rand(1,20); if&#...
  20. [php] Simple Newsletter Script - (8)
    This tutorial will give you the code needed and tell you how to implement it. First off you need to
    create a file called mailing.php this will be the file that processes the adding of emails to the
    list. CODE <?php $email = $_POST['email']; $file =
    fopen("mailing.txt", "a"); fwrite($file, "\n" .
    $email); fclose($file); header("Location:
    mailing_thankyou.php"); ?> Next you need to create a file called
    mailing_thankyou.php , simple a p...
  21. Simple Php Counter Script - How to make a simple php counter script (2)
    In this tutorial i will explain how to make a simple script writen in PHP...that uses .txt file.
    CODE <?php // script writen by tema $a = fopen ("count.txt",
    "r"); // 1. $bytes = 4;         $x = fread($a, $bytes); //
    2. $y=$x + 1;                   // 3. $fp = fopen ("counter/count.txt",
    "w+");  // 4. fwrite ($fp, "$y");     // 5. fclose
    ($fp);                // 6. echo "Posjeta:$y";                // 7.
    ?>...
  22. Mail Form (php) - This is a great email form script. (3)
    save this page as formmail.php Code: QUOTE $MailTo = "your email"; $MailSubject
    = "contact"; $MailHeader = "From: $s1"; $MailSent = "Put here the information you
    want to be shown after the message is sent."; if ($s1 == ""){ echo "You did not put your
    name ."; } else { $MailBody = "Name : $s1\n"; } if ($s2 == ""){ echo "You did
    not put your E-Mail ."; } else { $MailBody .= "Email : $s2\n"; } if ($s3 ==
    ""){ } else { $MailBody .= "Message : $s3\n"; } { mail($MailTo...
  23. How To Check Email Headers? - (9)
    Well, I didn't think of making this topic here, till one of the members asked me how to retrieve
    full email headers. It's quite simple actually. In Yahoo! click on the Full Headers
    link on the right hand top corner of the message table. You will see all the headers. In GMail
    Click on the More Options link. Then click on show original . There you go! Googlue!...
  24. Php Guessing Script - Script game.. (4)
    Here's the guessing script, they guess a number and checks if they are right or wrong.. CODE
    <form method="guess.php?action=yes"> <input type="text"
    name="t_guess"> <br> <input type="submit" value="Guess">
    <?php if($action==yes){ //have the number that they are suppose to guess...
    $guess=14; //end if($t_guess==$guess){ print "Good job! Guess was
    right!"; }else{ print "Guess was wrong! Try again!"; } } ?> Tha...
  25. Multiple Admin Login (php) - This is a script that doesnt requre SQL (3)
    first off make a login.html page Code: QUOTE Admin Login Username: Password:
    then make a check.php page Code: QUOTE $admin1 = "admin1"; //
    first admin username $adm_pass1 = "password1"; // first admin password $admin2 =
    "admin2"; // second admin username $adm_pass2 = "password2"; // second admin password
    if(($username == $admin1 && $password == $adm_pass1) || ($username ==
    $admin2 && $password == $adm_pass2)){ echo "Congratulations " . $_POST . " ...



Looking for verifying, email, addresses, simple, php, script

Searching Video's for verifying, email, addresses, simple, php, script
advertisement



Verifying Email Addresses - Using a simple PHP script



 

 

 

 

ADD REPLY / Got an Opinion! Remove these ADs! RAPID SEARCH! Free Web Hosting [X]
Express your Opinions, Thoughts or Contribute more info. to help others.
Ask your Doubts & Queries to get answers, So that "Together We can help others!"
Register FREE for AD-FREE forum, Create your own topics, Ask Questions, track topics, setup subscriptions & notifications and Get a Free Website w/ Email and FTP.
500MB Space *No Ads*, CPanel, FTP, PHP, MySQL, EMails - 100% FREE