Guys - I’m in the middle of a dispute between two different hosting companies on an e-mail issue, the details of which I will mercifully spare you.

Are there any good online tools other than telnet that allow you to query a mail server to see if an e-mail address is good? Not all servers will let you telnet to them, right?

Thanks!

A well set up email server isn’t going to let you just fish for valid email names. That would be a spammer tactic and thus something they prevent in one fashion or another.

If you have a specific account name that you want to know if it exists, have you considered just sending it an email and seeing if you get a bounce?

Right. If the server gives you any feeback that an address is or isn’t valid, that’s an information leak. Yet another example of how spammers and other such miscreants spoil an otherwise useful function for the rest of us.

For your second question, normally, mail servers talk SMTP protocol, which is text based on port 25, so you can always telnet into those directly. Sometimes the traffic is encrypted via SSL, though, in which case it’ll usually be on port 465 and you’d need to use different tools to interact with it manually.

That’s what the SMTP VRFY command is for, which you could use over telnet with any server that accepts non-SSL connections. But, the server has the option to disable to VRFY command, to stop that kind of information leaking talked about above.

You could just go ahead and try it though, since if it’s disabled it should tell you so. E.g., against a postfix server:

trantor:~ ndyrland$ telnet 192.168.1.101 25
Trying 192.168.1.101...
Connected to 192.168.1.101.
Escape character is '^]'.
220 terminus ESMTP Postfix (Ubuntu)
HELO trantor
250 terminus
VRFY joe@foobar.com
502 5.5.1 VRFY command is disabled

Thanks, Fugitive - I’ll try that. It would have been a pain for me to look up and figure out the commands.

If VRFY is disabled, you could try to start an actual smtp-envelope.


$ telnet smtp.example.com smtp
Trying 172.16.1.1...
Connected to smtp.example.com.
Escape character is '^]'.
220 smtp.example.com ESMTP Exim 4.69 Thu, 28 Oct 2010 20:07:10 +0200
helo client.example.com
250 smtp.example.com Hello client.example.com [172.16.1.2]
mail from: <someone@other-example.com>
250 OK
rcpt to: <existing@example.com>
250 Accepted
rcpt to: <nonexistent@example.com>
550 unknown user
quit
221 smtp.example.com closing connection
Connection closed by foreign host.

Now, it’s entirely possible that you’ll end up speaking to an intermediary relay, which will accept pretty much any combination of <something>@example.com, in which case this won’t yield any useful information.