On Wed, Nov 18, 2015 at 12:31:50PM +0000, Matt Bayliss wrote:

> We have discovered an issue in our postfix configuration that appears to
> limit the amount of recipients permitted in a single message to 100.

This is not the case by default.

    http://www.postfix.org/postconf.5.html#smtpd_recipient_limit

> The issue exhibits itself in the form of our application receiving a
> timeout message after the 100th RCPT TO command and I have reproduced this
> using the Thunderbird mail client which also fails with a similar error [1].

    Perhaps you're sending invalid recipients and triggering error
    delays.  Or you have a slow virtual alias table lookup table
    (SQL, ...) and by the 100th recipient the pipeline between
    smtpd(8) and cleanup(8) stalls because cleanup recipient
    rewriting is not keeping up. ...

> I have read various documents and from what I can gather there is a process
> limit which defaults to 100

    Which determines the maximum number of possible concurrent SMTP
    connections, not the number of recipients per message.

> and also, according to the Tuning Guide the
> smtpd_recipient_limit option configures “The maximal number of recipients
> that the Postfix SMTP server accepts per message delivery request.”

    You're making this part up.  It is simply not true.[

> So I have a couple of questions;
> 
> 1)    Why is a message with multiple RCPT TO addresses apparently limited
> by the lower process limit value and not the smtpd_recipient_limit value?

    The question is based on a false premise.

> [1] Thunderbird error message.
> Sending of the message failed.
> The message could not be sent because the connection to Outgoing server
> (SMTP) my.email.server timed out. Try again.

This sounds like a timeout making a connection, not a timeout
mid-connection.  Was Thunderbird configured to make a separate
connection for each recipient?  Is this some sort of "mail-merge"
application with personalized messages to each recipient?

If so, you can't make more than 100 concurrent connections by
default.  You can raise the process limit to whatever your
memory, CPU, disk and network resources will support.

The limit of 100 worked well in 1997, and still works well on
smaller personal mail-servers.  Beefier servers with lots memory,
CPU, disk and network may well be able to handle 1000 or more
concurrent connections.

That said, your sending software does not benefit from opening a
huge number of connections, around 20 is usually quite enough for
peak throughput.  You may need better mail submission software
for the task at hand.

-- 
        Viktor.

Reply via email to