Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re^3: Determine if domain is actually used for email

by Limbic~Region (Chancellor)
on Oct 04, 2011 at 18:26 UTC ( #929633=note: print w/replies, xml ) Need Help??

in reply to Re^2: Determine if domain is actually used for email
in thread Determine if domain is actually used for email

Interesting. There was a project nearly identical to this on one of the freelance boards I use to pick up jobs. I didn't bid on it because the poster specifically stated that automated routines would not be allowed - each record had to be checked manually.

I would probably use IO::Socket::Telnet. Something along the lines of this completely untested code:

use IO::Socket::Telnet; my $socket = IO::Socket::Telnet->new( PeerAddr => '', PeerPort => 25, Timeout => 3 ); die "Not an email server\n" if ! $socket; $socket->send("helo"); my $resp; $socket->recv(my $resp, 4096) or die $!; die "Not an email server\n" if ! defined $resp || ($resp !~ /^220 / && + $resp !~ /^250 /);
this link may be of use in determining other SMTP response codes that indicate it is in fact an SMTP server but not necessarily behaving as you might expect.

Cheers - L~R

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://929633]
[1nickt]: Corion Yes, once bitten, twice shy with experimental. If you use use experimental qw/ refaliasing declared_refs/; you can do my (\%x, \%y) = @_ when you like hashes but are given hashrefs :-)
[1nickt]: ^ 5.26 required for declared_refs

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2017-11-17 21:06 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (272 votes). Check out past polls.