Not 100% relevant, and I have posted an earlier version before, but I have fun with the following which completely randomizes the Message ID and user agent for every email I send from gnus. (Sometimes you actually want this; think about it!) However some SMTP servers rudely go ahead and substitute their own Message ID for mine. Bad manners indeed. Gmail fortunately does not.
;;; Fully anonymize/randomize FQDN. (defun munge-message-id (orig-fun &rest args) "Make a random FQDN and User Agent" (let* ( (alpha "abcdefghijklmnopqrstuvwxyz0123456789") (domain '("com" "org" "net" "info" "us")) (part1 "") (part2 "") (part3 "") (part4 "") (part5 "") num0 rnum) ;;; Temporary. Not in right place at all. (munge-user-agent) ;;; FQDN. ;;; Front half. (setq num0 (+ 8 (random 6))) (while (> num0 0) (setq rnum (random 35)) (setq part1 (concat part1 (substring alpha rnum (+ 1 rnum)))) (setq num0 (- num0 1)) ) (setq num0 (+ 8 (random 6))) (while (> num0 0) (setq rnum (random 35)) (setq part2 (concat part2 (substring alpha rnum (+ 1 rnum)))) (setq num0 (- num0 1)) ) ;;; Back half. (setq num0 (+ 4 (random 6))) (while (> num0 0) (setq rnum (random 35)) (setq part3 (concat part3 (substring alpha rnum (+ 1 rnum)))) (setq num0 (- num0 1)) ) (setq num0 (+ 4 (random 6))) (while (> num0 0) (setq rnum (random 35)) (setq part4 (concat part4 (substring alpha rnum (+ 1 rnum)))) (setq num0 (- num0 1)) ) ;;; TLD. (setq part5 (nth (random 4) domain)) ;;; Build the message-id. (concat "<" part1 "." part2 "@" part3 "." part4 "." part5 ">") ) ) (advice-add 'message-make-message-id :around #'munge-message-id) ;;; Semi-randomize User-Agent. (defun munge-user-agent () "Change user-agent to semi-random string" (let* ( (agents '("Mozilla" "Chrome" "Safari" "Brave" "Vivaldi" "Edge")) (versions '("5.0" "5.5" "6.0" "6.5" "4.5" "7.0"))) (setq gnus-user-agent (concat (nth (random 5) agents) "/" (nth (random 5) versions))))) -- Bob Newell Honolulu, Hawai`i - Via GNU/Linux/Emacs/Gnus/BBDB