When engagement-tracking in the <signals> block is set to sparkpost, the node itself inserts links into messages that produce open and click events. For that, the markup is parsed by the built-in gumbo-parser library — the HTML5 parser from the manual’s acknowledgments.
The manual does not describe how exactly the markup is edited: only the links or the whole document. So before enabling it, compare a message before and after the node.
What to do with an unparsed message is decided by html-edit-error-mode: by default a permanent failure, otherwise the message leaves unchanged, that is, without tracking. In both cases the node writes the error to the log.
Parse error mode:
| Value | What happens to the message | The cost |
|---|---|---|
| perm-fail, the default | a permanent failure | a lost message |
| deliver-unmodified | leaves unchanged | understated open statistics |
<signals> api-key 0123456789012345678901234567890123456789 engagement-tracking sparkpost html-edit-error-mode deliver-unmodified </signals>
3 relations
engagement-tracking<signals>The directive that enables this mechanism. § 11.1.6.2.10
grep -i 'html' /var/log/pmta/log | tail -20
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.◇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.◇The watchdog that restarts the engineKeeps an eye on the engine and brings it back up after a crash by itself, sending a crash report to the postmaster address.