<source>
The default is 10m. The line sets how long the engine waits for the submitting side to send its next command.
This is specifically about the command phase — greeting, sender, recipients. The body transfer phase is covered by the paired smtp-data-timeout.
The split makes sense: a message body can take a long time for objective reasons, while there is usually no reason for the submitting side to be silent between short commands.
On an open port this is exactly the cheapest way to tie up a receiver: open a connection, say hello and fall silent for ten minutes, occupying a slot from the total-max-smtp-in ceiling.
Meanwhile the submission listener listens to the whole network, and the ceiling of incoming connections is set at 1000. The Hub does not currently try to split the limits.
What to set. The command limit can be noticeably stricter than the body limit:
| Value | When |
|---|---|
| 10m (default) | the port is closed by an address range, only your own submit |
| 1m–2m | the port is open to the network: your own platform is not silent that long between commands |
The guideline is simple: a command is a short line, and a delay in it means either a fault on the submitting side or not a submission at all.
# there is no reason to be silent for ten minutes between short commands <source 0/0> smtp-data-timeout 3m smtp-command-timeout 2m</source>
what people get wrong and how it ends2 mistakes▶
our experience
our experience
1 relation
grep -n 'smtp-command-timeout\|smtp-data-timeout\|total-max-smtp-in' /etc/pmta/config /etc/pmta/virtualhost.txt
3 articles
◇How a message gets into the engineSix described submission methods: extended SMTP, four language bindings and a directory the node watches on disk.◇Who is allowed to submit mail and for whom to accept itOut of the box, the node accepts submission only from the machine itself; two different questions — “who can send through us” and “for whose addresses we accept mail” — are answered by different directives.◇Headers the sender uses to control deliverySix control headers let the submitting side choose a stream, tag a message with a job, set signing options and the key, the envelope identifier and the schedule; each is allowed separately and per source.