james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j...@apache.org
Subject [jira] Commented: (JAMES-282) Mail not correctly deliverd after DNS time-out on From: address
Date Wed, 12 May 2004 16:10:56 GMT
The following comment has been added to this issue:

     Author: Noel J. Bergman
    Created: Wed, 12 May 2004 9:09 AM
       Body:
Please try to avoid using JIRA as a discussion tool.  Use the mailing list(s) to discuss potential
problems.

The DEBUG level for the the smtphandler will log all of the protocol requests/responses. 
It will not log the data, but will log other things.  If necessary, additional logging could
be added in a private build to isolate where a problem is happening in your reproducible environment.

> perhaps a graver issue is that a partial message is delivered by
> James, while Sendmail keeps the original message in its queue 
> because it thinks delivery failed.

If there is an exception during processing, James should not deliver the message.  The fact
that it attempts delivery indicates that the code has entered processMail (beyond processMailHeaders)
without any prior Exception.  What happens next is this:

 - processMail creates a new MailImpl with an InputStream.
 - MailImpl creates a MimeMessageInputStreamSource.
 - MimeMessageInputStreamSource reads the entire InputStream
   into a temporary file.
 - The InputStream returns -1 when the <CRLF>.<CRLF> is found.
 - MimeMessageInputStreamSource throws a MessagingException
   if there is an IOException processing the InputStream.

If we get to the sendMail call in processMail, James believes that it has properly received
an entire message, whose contents would be temporarily located in a .m64 file under $PHOENIX_HOME/temp/.
---------------------------------------------------------------------
View this comment:
  http://issues.apache.org/jira/browse/JAMES-282?page=comments#action_35505

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/JAMES-282

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: JAMES-282
    Summary: Mail not correctly deliverd after DNS time-out on From: address
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: James
 Components: 
             DNSServer
             SMTPServer
   Versions:
             2.2.0RC2
             2.2.0RC3
             2.1.3

   Assignee: 
   Reporter: Hes Siemelink

    Created: Mon, 10 May 2004 6:46 AM
    Updated: Wed, 12 May 2004 9:09 AM
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.


---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message