James Server
  1. James Server
  2. JAMES-282

Partial message may be delivered if client disconnects

    Details

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

      Description

      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;
      charset="us-ascii"
      Content-Transfer-Encoding: 7bit

      Hi Hes,

      Thanks for the info.

      Tom

      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 (192.168.0.1 [192.168.0.1])
      >>> 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 192.168.0.18 at 192.168.0.18 to addresses [stress@exchange.izecom.com]
      10/05/04 15:23:44 INFO James.Mailet : RemoteDelivery: Mail (Mail1084195424201-17) sent successfully to 192.168.0.18 at 192.168.0.18

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

      Received: from izecom-martijn ([192.168.0.18]) 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 192.168.0.1 ([192.168.0.1])
      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
      Bcc:
      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!

      Thanks

      Hes.

        Activity

        Hes Siemelink created issue -
        Noel J. Bergman made changes -
        Field Original Value New Value
        Fix Version/s 2.2.0RC4 [ 10720 ]
        Noel J. Bergman made changes -
        Assignee Noel J. Bergman [ noel ]
        Summary Mail not correctly deliverd after DNS time-out on From: address Partial message may be delivered if client disconnects
        Noel J. Bergman made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Noel J. Bergman made changes -
        Status In Progress [ 3 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Mark Thomas made changes -
        Workflow jira [ 31406 ] Default workflow, editable Closed status [ 12565806 ]
        Mark Thomas made changes -
        Workflow Default workflow, editable Closed status [ 12565806 ] jira [ 12581216 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development