[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Lispm SMTP service problem

    Date: Mon, 27 Jan 1992 12:24 EST
    From: jcs@f9sis2.intel.com

    We've got an annoying problem using the SMTP service on our Lispm network
    that I hope some Lispm-email-savvy reader out there can help us with, to wit:

    When sending from a Vax to a Lispm with SMTP service, the Lispm server starts
    up, but hangs (in a TCP :line-in) trying to read the first line from the Vax.
    A sample error reply from the Vax (here, td2cad) after the mailer times out is:

      >>> HELO td2cad
      <<< 421- SMTP timed out after 5 minutes while serving host TD2CAD.intel.com:
      <<< 421      Reading command line
      451 jcs@sandia... reply: read error
      jcs@sandia... reply: read error

    (i.e., the Vax never receives a response to it's HELO message, and eventually
    times out).  In tracing on the Lispm side, I note that lines from the Vax end in
    a linefeed character, *not* a CR.  

This is a bug on the VAX.  RFC-821 specifies that the SMTP connection
should use TELNET-style NETASCII, which means that lines are terminated
by CR LF.  If the VAX is only sending LF without a preceding CR then
it's violating the protocol.

				       As I have successfully sent mail to a Lispm
    interactively, by connecting to the SMTP port (25) and ending lines with CR, I
    suspect a line termination problem.  

When you use "telnet <lispm> 25" the telnet program correctly sends the
appropriate line terminators.

					 Also, since mail routed through the S&F
    mailer host, then forwarded locally is received fine, I wonder what differences
    there are between the Mailer and SMTP service implementations of SMTP?  Anyone
    had similar experience and/or know of a patch for this problem?

The S&F mailer host's SMTP server may not be as picky about the line
terminator as Genera is.  If it's a Unix host, it may not be able to
distinguish LF and CRLF, as LF is the Unix line terminator, and the SMTP
server's input routine presumably translates CRLF to LF.  Since Genera's
line terminator isn't LF, LF and CRLF translate to different things (LF
translates to Line and CRLF translates to Return) so Genera gets