Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: Determine if domain is actually used for email

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


in reply to Determine if domain is actually used for email

vit,
It has been many years since I read RFC 821/2821, but I seem to recall that certain email addresses were mandatory - such as postmaster. If you truly want to verify if there is a mail server listening on the IP address associated with the MX record, you could do the equivalent of

telnet 10.10.10.10 25 helo mydomain.com vrfy postmaster@yourdomain.com

Now of course, many mail servers have the vrfy function turned off because it can be used by spammers for nefarious purposes but the fact that you are communicating with the server on port 25 in a fashion resembling SMTP should be a pretty good indication they handle mail.

I didn't write code that you could use for a reason. Your post itself looks like it might be for spamming purposes. If you don't have someone's email address then why are you checking to see if their domain accepts mail?

Cheers - L~R


Comment on Re: Determine if domain is actually used for email
Download Code
Re^2: Determine if domain is actually used for email
by vit (Pilgrim) on Oct 04, 2011 at 17:49 UTC
    I didn't write code that you could use for a reason. Your post itself looks like it might be for spamming purposes. If you don't have someone's email address then why are you checking to see if their domain accepts mail?

    I am doing a project for a large domain registrar in Europe. They collect statistical info on domains which includes website category, whether it is parked, for sale, etc. and they are also interested to know if the domain is used solely for emails which happens very frequently, as I wrote in my original post.
    So if you could be so kind and help me with the code I will appreciate it very much.
      vit,
      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 => 'random.server.org', PeerPort => 25, Timeout => 3 ); die "Not an email server\n" if ! $socket; $socket->send("helo mydomain.com"); 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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://929578]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (6)
As of 2014-09-01 15:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (14 votes), past polls