For now I use Common Lisp to detect DSN and find email in "Final-Recipient:" and this seem to work for now:
(defun mutt-daemon () (let ((count 0) (email)) (with-open-stream (text *standard-input*) (loop for line = (read-line text nil nil) while line do (when (or (regexp:match "^Final-Recipient: " line :ignore-case t) (regexp:match "^Return-Path: +<>: " line :ignore-case t) (regexp:match "^multipart/report.*report-type=delivery-status" line :ignore-case t) (regexp:match "^Action:.*failed" line :ignore-case t) (regexp:match "^Status:.*5" line :ignore-case t)) (setq count (1+ count)) (when (regexp:match "^Final-Recipient: " line :ignore-case t) (setq email line))))) (let ((email (string-last-part-after-space email))) (when (and email (search "@" email)) (unsubscribe-contact-for-email email))))) it would be nicer to simply use grep and bash script. Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/