There’s a great perl
module Email::Valid
to check if a string is a well-formed email address. It doesn’t actually check to see if the email exists in the destination domain, but in it’s simplest form we can just make sure the string follows the proper email address format specification.
Install the module:
# apt-get install -y libemail-valid-perl
quick and dirty:
#!/usr/bin/perl use strict; use Email::Valid; # do it once with an email address as an argument #if ( ! Email::Valid->address("$ARGV[0]")){print "$ARGV[0]\n"}; my $file="to_be_tested2_emails.txt"; # do it with a list of emails open(FH,"$file") or die("Can\'t read $file.\n"); foreach my $line (<FH>) { chomp $line; if ( ! Email::Valid->address("$line")){print "$line\n"}; }; close(FH);
TODO: think of loading into array; removing malformed addresses; having option to run once vs. run list; test the rfc822 validation