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.