From: Eli Zaretskii Date: Sun, 19 Sep 2021 08:44:22 +0000 (+0300) Subject: Teach Mail mode to request Disposition Notifications X-Git-Tag: emacs-28.0.90~845 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=fe4a26d896aaff1f40f27bc75087fe0e4406b155;p=emacs.git Teach Mail mode to request Disposition Notifications * lisp/mail/sendmail.el (mail-insert-disposition-notification-to): New function. (mail-mode-map): Add it to key bindings and menu bar. --- diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index fee11c06aa7..312805f6d8f 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -277,6 +277,7 @@ The default value matches citations like `foo-bar>' plus whitespace." (define-key map "\C-c\C-f\C-r" 'mail-reply-to) (define-key map "\C-c\C-f\C-a" 'mail-mail-reply-to) ; author (define-key map "\C-c\C-f\C-l" 'mail-mail-followup-to) ; list + (define-key map "\C-c\C-f\C-d" 'mail-insert-disposition-notification-to) (define-key map "\C-c\C-t" 'mail-text) (define-key map "\C-c\C-y" 'mail-yank-original) (define-key map "\C-c\C-r" 'mail-yank-region) @@ -325,6 +326,9 @@ The default value matches citations like `foo-bar>' plus whitespace." (define-key map [menu-bar headers expand-aliases] '("Expand Aliases" . expand-mail-aliases)) + (define-key map [menu-bar headers disposition-notification] + '("Disposition-Notification-To" . mail-insert-disposition-notification-to)) + (define-key map [menu-bar headers mail-reply-to] '("Mail-Reply-To" . mail-mail-reply-to)) @@ -1598,6 +1602,25 @@ Returns non-nil if FIELD was originally present." (interactive) (expand-abbrev) (goto-char (mail-text-start))) + +(defun mail-insert-disposition-notification-to () + "Insert a Disposition-Notification-To header, if it doesn't already exist." + (interactive) + (expand-abbrev) + (save-excursion + (or (mail-position-on-field "Disposition-Notification-To") + (insert + (format + "%s" + (save-excursion + (save-restriction + (message-narrow-to-headers) + (or (mail-fetch-field "Reply-To") + (mail-fetch-field "From") + (with-temp-buffer + (mail-insert-from-field) + (substring (buffer-string) (length "From: ") -1)))))))))) + (defun mail-signature (&optional atpoint) "Sign letter with signature.