[
http://issues.apache.org/jira/browse/JAMES-358?page=comments#action_12330658 ]
Arjan Veenstra commented on JAMES-358:
--------------------------------------
RFC 3974 suggest these step:
(6) For each of the addresses, loop over steps (7) to (9).
(7) Try to make a TCP connection to the destination's SMTP port
(25). The client needs to follow timeouts documented in RFC
2821 section 4.5.3.2. If successful, go to step (9).
(8) If unsuccessful and there is another available address, try the
next available address. Go to step (7). If all addresses are
not reachable and if a list of MX records is being traversed,
try the next MX record (go to step (3)). If there is no list of
MX records, or if the end of the list of MX records has been
reached, raise a temporary email delivery failure. Finish.
(9) Attempt to deliver the email over the connection established, as
specified in RFC 2821. If a transient failure condition is
reported, try the next MX record (go to step (3)). If an error
condition is reported, raise a permanent email delivery error,
and do not try further MX records. Finish. If successful, SMTP
delivery has succeeded. Finish.
Never trying more then one IP adress per MX is likely to cause a few extra
failures, especialy when delivering to domains with just 1 MX. And even more
(in the future) when both IPv6 and IPv4 are used. A situation where a host has
both IPv4 and IPv6 adresses in DNS is not unlikely, running into a situation
where just one of then is actually reachable over the net is not very unlikely
as well. So i think the above steps are sensible.
The actual 'load' of just trying to connect is not high at all, running
sufficient delivery threads should keep mail delivery going even when one of
them is waiting for a connection to time-out.
Moving on to the next MX on a temporary failure is extremely logical when
multiple adresses for a host all point to the same machine, your example above
allready shows this is not allways true. Perhaps it's possible to maintain a
list af actual addresses tried so they can be skipped when they show up a
second time?
}
> Too many RemoteDelivery attempts with many mx and many ip
> ---------------------------------------------------------
>
> Key: JAMES-358
> URL: http://issues.apache.org/jira/browse/JAMES-358
> Project: James
> Type: Improvement
> Components: DNSServer
> Versions: 2.2.0
> Reporter: Stefano Bagnara
> Assignee: Stefano Bagnara
> Priority: Minor
> Fix For: 2.3.0
> Attachments: DNSServer.java.singleIPperMX.diff,
> james-config.xml.singleIPperMX.diff
>
> Take a domain with 5 mx servers each one with 6 associated ips. James
> currently try to connect to each MX server even if the first server say
> "5.1.1 user unknown", but even worst, james try to connect to each IP of each
> MX server.
> I think that james should only check each MX server once, at a random IP
> address from the IP list for that mx hostname.
> The permanent user error issue would be only a further optimization but the
> IP issue is probably against the RFC specifications.
--
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
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]