;; NOTES ---------------------------------------------------------------- (defun sacha/gnus-add-notes-to-message () "Inserts notes in messages." (interactive) (save-excursion (let ((bbdb-get-addresses-headers (list (assoc 'recipients bbdb-get-addresses-headers))) notes) (setq notes (mapconcat (lambda (rec) (concat (bbdb-record-name rec) "\n====================\n\n" (bbdb-record-notes rec) "\n\n\n" )) (bbdb-update-records (bbdb-get-addresses nil gnus-ignored-from-addresses 'gnus-fetch-field) nil nil) "")) (goto-char (point-min)) (message-goto-signature) (forward-line -2) (insert "\n--- NOTES ---\n" notes "\n--- END NOTES ---\n")))) (defun sacha/gnus-remove-notes () "Remove everything from --- NOTES --- to END NOTES." (goto-char (point-min)) (when (re-search-forward "^--- NOTES ---" nil t) (let ((start (match-beginning 0)) (end (and (re-search-forward "^--- END NOTES ---") (match-end 0)))) (delete-region start end)))) (add-hook 'message-setup-hook 'sacha/gnus-add-notes-to-message) (add-hook 'message-send-hook 'sacha/gnus-remove-notes) (provide 'bbdb-notes)