Mail-AddressCheck.pl 1015 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/usr/bin/perl
  2. # Copyright (c) 2015 by Peter_Siegrist(SystemLoesungen) (PSS @ ZweierNet.ch)
  3. # pss.ZweierNet.ch
  4. #
  5. # This program is absolutely free software.
  6. # Use it as you like but don't point the finger of blame to me.
  7. #
  8. use strict;
  9. use IO::Socket::INET;
  10. sub TRUE { 1; }
  11. sub FALSE { 0; }
  12. if ( ($#ARGV + 1) < 3 ) {
  13. print "Usage: $0 < mailserver-to-check-for > < port-on-server-25-or-587 > < email-adress-to-check > \n";
  14. exit;
  15. }
  16. my $server = shift;
  17. my $port = shift;
  18. my $address_to_check = shift;
  19. my $answer = "";
  20. my $SOCKET = IO::Socket::INET->new(
  21. PeerAddr => "$server",
  22. PeerPort => "$port",
  23. Proto => 'tcp') || die "Error in create socket!: $!";
  24. <$SOCKET>;
  25. print $SOCKET "HELO xy\n";
  26. <$SOCKET>;
  27. print $SOCKET "RSET\n";
  28. <$SOCKET>;
  29. print $SOCKET "MAIL FROM: addrecheck\@example.org\n";
  30. <$SOCKET>;
  31. $answer = "";
  32. print $SOCKET "RCPT TO: $address_to_check\n";
  33. $answer = <$SOCKET>;
  34. #print "Answer: $answer\n";
  35. close $SOCKET;
  36. exit FALSE if $answer !~ m/\s+ok/i;
  37. exit TRUE;