UTF8 email with DMA: DragonFly Mail Agent

7 points by jummo


tomhukins

I like the idea of using a wrapper to add features or fixes to an existing command.

The more I think about the problem, the more I wonder whether responsibility for providing a Content-Type header lies with cron or dma.

dma(8) describes itself as "a small Mail Transport Agent (MTA)" that "accepts mails from "locally installed Mail User Agents (MUA)." cron(8) describes itself as sending any output produced by the command it runs "to the user specified in the MAILTO environment variable" which suggests it considers itself an MUA.

I briefly looked through a few email RFCs before realising that I know far too little about email to quickly learn whether responsibility for generating a Content-Type header belongs with an MUA or MTA, although I would assume it's reasonable for an MTA to expect an MUA to handle this.

Rather than patching dma — which is a bad idea on a system you want to keep auditable — the solution is a small POSIX sh script installed as the sendmail binary

This also got me thinking about open source software and what "auditable" means here. Open source software comes with no promises or restrictions, so if the author wants to write a wrapper around it, that's their choice. But there's always the option of patching it or opening a bug report.

I have worked with several developers who respond with surprise when I suggest we fix the limitations we find in open source software, wondering if it's acceptable for them to do so. I have worked with developers who despair that their patches or bug reports seem ignored, but don't engage with the maintainers or offer help beyond that, not appreciating the community nature of many open source projects.

What I write here explores my experience of situations like this, not to criticise the author of this article, who I congratulate for solving their problem elegantly and sharing their solution.