Global
The value is two paths: the pickup directory and the “bad mail” directory. The second is mandatory: the engine moves files there when a permanent error occurred while processing them.
The manual states the restriction directly: only one pickup directory is supported. Splitting submission across directories — say, by client — cannot be done with this line.
How the file itself is structured and what it must contain is described by the file submission mechanism — pickup-directory.
Besides the paths, the directory has two settings: pickup-remove-dot fixes an extra dot at the start of a line, and pickup-retry-interval has been declared obsolete.
Without watching this directory, lost messages are discovered through complaints from recipients who received nothing — that is, late and from the wrong side.
The other half: there is one directory per node. Permissions on it are shared by everyone who submits, and there is no way to separate submitters from each other — whoever can write a file has submitted mail.
Our submission goes over SMTP with a login — there submitting parties are separated by accounts, which a pickup directory cannot provide: it is a single one, and permissions on it are shared.
What to set. The value is a pair of paths; the requirements come from the purpose:
| Property | Why |
|---|---|
| both directories on one file system | moving a file between partitions is more expensive and not atomic |
| permissions only for the submitter and the node process | whoever can write a file has submitted mail |
| the bad mail directory is watched | otherwise lost messages are discovered through complaints |
Watching is not a nice extra but part of the setup: without it the method loses messages silently.
# two paths: where to pick up from and where to put what was not processed pickup /opt/pickup/new /opt/pickup/badfiles
what people get wrong and how it ends2 mistakes▶
our experience
§ 3.3.1.56.1
2 relations
grep -n 'pickup' /etc/pmta/config ls -l /opt/pickup/new /opt/pickup/badfiles
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.