1: #!/usr/bin/perl
2:
3: # By Sean Murphy
4: # E-Mail Syntax Checker
5: #
6: # This is a simple script that will
7: # check the syntax of an email address
8: # and spit back whether the address is
9: # syntactically correct or not. This
10: # is my first post to the Craft node.
11:
12: #mmmm...marshmallowey goodness...
13: $atom = '[^()<>@,;:\".\[\] \000-\037\177]+';
14: $quoted = '"(?:[^"\\\n]|\\.)*"';
15: $word = "(?:$atom|$quoted)";
16: $localpart = "$word(?:\.$word)*";
17: $subdomain = "(?:$atom|\\[(?:[^\\[\\]\\\\\\r]|\\.)*\\])";
18: $domain = "$subdomain(?:\.$subdomain)*";
19: $addrspec = "$localpart\@$domain";
20: $route = "(?:\@$domain)+:";
21: $routeaddr = "<$route?$addrspec>";
22: $mailbox = "(?:$addrspec|$word+$routeaddr)";
23: $group = "$word+:(?:$mailbox(?:,+$mailbox)*)?;";
24: $address = "$mailbox|$group";
25:
26: sub addr {
27: local($_) = @_;
28: 1 while s/\((?:[^()]|\\[()])*?[^\\]\)/ /g;
29: /$address/o;
30: }
31:
32: if (@ARGV > 0) {
33: foreach (@ARGV) { print "$_ is ", addr($_) ? "" : "not ", "valid\n"; }
34: } else {
35: while (<>) { chop; print "$_ is ", addr($_) ? "" : "not ", "valid\n"; }
36: }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Email Address Syntax Checker
by grep (Monsignor) on May 14, 2002 at 18:15 UTC | |
| |
|
Re: Email Address Syntax Checker
by lachoy (Parson) on May 14, 2002 at 20:30 UTC | |
by jryan (Vicar) on May 15, 2002 at 14:28 UTC | |
by lachoy (Parson) on May 15, 2002 at 15:54 UTC | |
|
Re: Re: Re: Email Address Syntax Checker
by belg4mit (Prior) on May 14, 2002 at 19:36 UTC |