The manual calls ending lines with a single LF instead of the CRLF pair required by mail standards the most common error of a program that submits messages to the node.
It is diagnosed with a session recording: a <source> block for the submitting program’s address with log-connections and log-commands shows at which transfer step — for example, at the RCPT command — the failure happens, and log-data prints every byte with its hexadecimal code, so the missing CR becomes visible.
The submission bindings are more forgiving here: with 7-bit and 8-bit encodings they convert a lone LF to CRLF themselves.
What to turn on for diagnosis:
| Directive | What it writes |
|---|---|
| log-connections | connections |
| log-commands | commands and replies |
| log-data | data with hexadecimal byte codes |
<source 127.0.0.1> log-connections yes log-commands yes log-data yes</source>
2 relations
pmta reload tail -100 /var/log/pmta/log
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.