http://www.perlmonks.org?node_id=458616


in reply to opening a telnet/smtp connection without waiting for response

I'm not sure what you think you're going to accomplish by sending a MAIL FROM: before the connect banner arrives. Before sending a MAIL FROM, you generally need to:
  1. receive the connect banner
  2. send a HELO or EHLO
  3. receive a successful (2xx) response to the HELO/EHLO command
Otherwise, most SMTP servers will consider you to be either a broken client (and just disconnect) or a spammer (and take whatever measures they deem appropriate, such as blacklisting you, reporting your IP to an RBL maintainer, etc).

I suppose if you're testing a filtering product, sending MAIL FROM immediately does make sense. In that case you probably want to throw as much test data, both RFC-conformant and non-conformant, as you can think of.

The place for you to start looking is IO::Socket::INET. Once you've generated your socket, do something like $sock->send("MAIL FROM:<spammer@somedomain.tld>"), and call $sock->recv to get your result.

You might also want to look at the guts of Net::SMTP to get some ideas.

Replies are listed 'Best First'.
Re^2: opening a telnet/smtp connection without waiting for response
by DeLos (Acolyte) on May 25, 2005 at 15:40 UTC
    I know my questions keep lookign suspect, but that truly is because I am testing spam related software. I can give you the company (openwave.com) but that is probably it. Yes the sending information before the banner should trigger some action by the server. In much the way if you pipe a file to telnet. I will try the Socket::INET and report my findings. Most of the problems I have been having is that all these modules need info back from the server before they are considered "open".
      bah, mundane details. Here I was digging deep for a problem on the surface. out SMTP fucntion explicitly waits for a return from the server, this is not in the Telnet object. So that was my problem. Oh well. Thanks guys!