rails/actionmailbox

Should the "postfix" ingress rather be called a "pipe" ingress?

Closed this issue · 1 comments

Just a quick suggestion: from what it looks like, the "postfix" ingress seems to work like a generic pipe; this should work fine with any MTA that is able to pipe mail to external processes, for example Exim too: https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_pipe_transport.html

Wouldn't this be therefore better named as "pipe" instead of "postfix"?

It specifically generates output in a format that Postfix recognizes. Exim’s pipe transport doesn’t appear to honor an SMTP enhanced status code at the beginning of stdout when the invoked command exits with status code 1, so the Postfix ingress is not generic as currently implemented.

Please feel free to investigate adding proper support for Exim. In theory, separate Rake tasks for Postfix and Exim could share a single relayer class and ingress controller, but they’d each need to meet the exit status and output expectations of the corresponding MTA’s pipe transport. (I believe Postfix follows the same exit status conventions as Exim, but we prefer to use enhanced status codes where they’re supported.)