Uploaded image for project: 'James Server'
  1. James Server
  2. JAMES-282

Partial message may be delivered if client disconnects



    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1.3, 2.2.0
    • Fix Version/s: 2.2.0
    • Component/s: DNSServer, SMTPServer
    • Labels:
    • Environment:
      Windows 2000


      Some emails keep hanging in my sendmail queue. When they are delivered through James I receive a crippled version (no subject, no body) and an error is sent back to Sendmail that the message could not be delivered. The message keeps hanging in the queue and blocks delivery of all messages that are behind it.
      We can accurately reproduce the problem by filling in an address in the 'From' header that can not be resolved by DNS.

      This problem might by hard to reproduce and I apologise for the lengthy description that follows. I don't know what's going on exactly but I think it would be best to give you plenty of information.

      I will try to give an accurate description of the situation.

      The email I try to send is:

      From: "Tom" <tom@xxxxx.org>
      To: "Hes Siemelink" <hes@izecom.com>
      Subject: TEST unkown From
      Date: Tue, 2 Mar 2004 12:46:05 +0100
      Message-ID: <004601c4004b$f26e7950$0502a8c0@smallsvenyos>
      MIME-Version: 1.0
      Content-Type: text/plain;
      Content-Transfer-Encoding: 7bit

      Hi Hes,

      Thanks for the info.


      The domain 'xxxxx.org' can not be found in the DNS:

      hes@uffizi hes]$ dig xxxxx.org

      ; <<>> DiG 9.2.1 <<>> xxxxx.org
      ;; global options: printcmd
      ;; connection timed out; no servers could be reached

      If I change the domain in the from address to tom@izecom.com, delivery is fine.

      In a test run, the message is first sent to our Sendmail server. Sendmail attempts to deliver it to the recipient 'stress@secure.izemail.com'. Here is a transcript of what happens then:

      Forcing the attempted delivery of mail with the command /usr/lib/sendmail -v -q -C/etc/sendmail.cf ..

      Running /var/spool/mqueue/i4AD2YUS018252 (sequence 1 of 123)
      <stress@secure.izemail.com>... Connecting to extra3.izecom.com. via esmtp...
      220 izecom-martijn SMTP Server (JAMES SMTP Server 2.2.0RC3) ready Mon, 10 May 2004 15:15:53 +0200 (CEST)
      >>> EHLO zloty.izecom.com
      250 izecom-martijn Hello zloty.izecom.com ( [])
      >>> MAIL From:<hes@izecom.com>
      250 Sender <hes@izecom.com> OK
      >>> RCPT To:<stress@secure.izemail.com>
      250 Recipient <stress@secure.izemail.com> OK
      >>> DATA
      354 Ok Send data ending with <CRLF>.<CRLF>
      xxxxx.org: Name server timeout
      >>> .
      <stress@secure.izemail.com>... Deferred

      Running /var/spool/mqueue/i4ACdNUS018002 (sequence 2 of 123)
      stress@secure.izemail.com... Deferred: Connection reset by extra3.izecom.com.

      Running /var/spool/mqueue/i4ACaYUS017978 (sequence 3 of 123)
      stress@secure.izemail.com... Deferred: Connection reset by extra3.izecom.com.

      ... etc ...

      Note that the 123 messages are never delivered.

      In the James logs I can see the delivery of the first message was succesful.

      10/05/04 15:23:44 INFO smtpserver : Successfully spooled mail Mail1084195424201-17 from hes@izecom.com for [stress@secure.izemail.com]
      10/05/04 15:23:44 INFO James.Mailet : RemoteDelivery: Attempting delivery of Mail1084195424201-17 to host at to addresses [stress@exchange.izecom.com]
      10/05/04 15:23:44 INFO James.Mailet : RemoteDelivery: Mail (Mail1084195424201-17) sent successfully to at

      The James server in this case functions as a relay. Mail is delivered to an Exchange server (running at The (reconstructed) email that is received is:

      Received: from izecom-martijn ([]) by izecom-martijn.exchange.izecom.com with Microsoft SMTPSVC(5.0.2195.6713);
      Mon, 10 May 2004 15:23:44 +0200
      Return-Path: <hes@izecom.com>
      Received: from ([])
      by izecom-martijn (JAMES SMTP Server 2.2.0RC3) with SMTP ID 385
      for <stress@secure.izemail.com>;
      Mon, 10 May 2004 15:23:44 +0200 (CEST)
      Date: Mon, 10 May 2004 15:23:44 +0200 (CEST)
      From: hes@izecom.com
      Message-ID: <IZECOM-MARTIJNoYAPN0000001d@izecom-martijn.exchange.izecom.com>
      X-OriginalArrivalTime: 10 May 2004 13:23:44.0295 (UTC) FILETIME=[0490F370:01C43692]

      So... other points of interest:

      • There is similar behavior with James 2.1.3. In stead of "Deferred" the SMTP response of james is I/O error.
      • The problem does not occur if I talk to directly to James. It is only in combination with Sendmail.
      • The problem does not occur id I talk to directly to Exchange.
      • Mailets/Matchers in use: ToProcessor, RemoteAddrInNetwork, RemoteAddrNotInNetwork, RecipientIsLocal, HostIsLocal and two custom Mailets: Log and ChangeRecipientDomain

      And one question: why does the value of the From field matter?

      Please help!






            • Assignee:
              noel Noel J. Bergman
              hes Hes Siemelink
            • Votes:
              0 Vote for this issue
              0 Start watching this issue


              • Created: