<domain>restart required
Decides what the queue does with a message. The default smtp is ordinary sending to the receiver. The other four turn the queue into a handler:
The type is set for a recipient domain, not for the node. One node can easily run queues of all five types at once — sending out, parsing bounces with a program and storing an archive in files.
smtp is for everything that goes out. The other four types have nothing to do with sending a mailing.
pipe versus http-delivery. Both hand the message to someone else’s program, but differently: pipe runs it on this same node for each recipient, http-delivery sends a request over the network. The second is easier to scale, and it copes more honestly with the handler being unavailable — the message stays in the queue and is retried.
discard is not the same as removing the recipient. The message still goes through the queue and into accounting; only the delivery is saved.
# parsing bounces with a program on the same node <domain bounces.example.com> type pipe command "/opt/bounce/parse --envid \"$envid\" \"$user\"" </domain> # the same parsing, but over the network — the handler can live anywhere <domain feedback.example.com> type http-delivery http-delivery-url https://hub.example.com/api/v1/feedback </domain>
what people get wrong and how it ends3 mistakes▶
§ 3.3.10.60
our experience
§ 3.3.10.111.1
1 relation
pmta show settings bounces.example.com/vmta1 | grep -E '^type' pmta show queues | grep -i bounces.example.com
3 articles
◇What the node tells about itself and through which channelsSeven observation surfaces: the web monitor, the console in four formats, the log, accounting, accounting search, metrics and export to external analytics.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇Five ways for a queue to hand off a messageA queue does not have to use SMTP: it can write to a file, run a program, call over HTTP or discard.