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

Reply via email to