All dancing
Wir möchten in einem eigenen News-Artikel einen extra Header-Eintrag einfügen, aber in Mails nicht. Und nur in Mails soll ebenfalls ein Eintrag im Header erscheinen, der aber nicht in News-Artikeln erscheinen soll.
Zuerst könnten wir den Default-Header konfigurieren, die From-Zeile soll den Namen und dahinter die Adresse beinhalten
und ein Sender-Eintrag soll unterbunden werden.
(setq message-from-style 'angles ;;* Die Signature beim Antworten nicht zitieren message-cite-function 'message-cite-original-without-signature ;;* Eine Sender-Zeile im Header unterbinden message-syntax-checks '((sender . disabled)) ) ;;* Eine Extra-Zeile nur bei News-Artikeln in den Header setzen. X-No-Archive für ;;* deja.com z.B., gepostete Artikel werden dadurch _nicht_ ins News-Archiv ;;* aufgenommen. (require 'message) (setq message-required-news-headers (nconc message-required-news-headers (list '(X-No-Archive . "yes")) ) ) ;;* Und nur für Mails. (require 'message) (setq message-required-mail-headers (nconc message-required-mail-headers (list '(X-URL . "http://privat.schlund.de/")) (list '(X-Org . "Hands up! Linux of borgs!")) ) ) ;;* Einen guten Spruch automatisch von Fortune in die Signatur? Fortune ;;* beinhaltet mehrere Dateien mit Sprüchen oder Zitaten nach Themen ;;* sortiert, wie z.B. Kunst, Liebe, Computer, Linux oder Startrek. Der ;;* Spruch wird einwandfrei abgetrennt und ist auch nicht zu lang. (setq message-signature 'fortune) (defvar fortune-program nil "*Program used to generate epigrams, default \"fortune\".") (defvar fortune-switches nil "*List of extra arguments when `fortune-program' is invoked.") (defun fortune (&optional long-p) "Generate a random epigram. An optional prefix argument generates a long epigram. The epigram is inserted at point if called interactively." (interactive "*P") (let ((fortune-buffer (generate-new-buffer " fortune")) (fortune-string "Have an adequate day.")) (unwind-protect (save-excursion (set-buffer fortune-buffer) (apply 'call-process (append (list (or fortune-program "fortune") nil t nil) fortune-switches (list (if long-p "-l" "-s")))) (skip-chars-backward "\n\t ") (setq fortune-string (buffer-substring (point-min) (point)))) (kill-buffer fortune-buffer)) (if (interactive-p) (insert fortune-string)) fortune-string) ) ;;* adaptive scoring aktivieren. (setq gnus-use-adaptive-scoring t) ;;* Hiermit können wir uns etwas zurücklehnen und Gnus die Score-Einträge ;;* übernehmen lassen, die anhand des Lese-Verhaltens vorgenommen werden. (defvar gnus-default-adaptive-score-alist '((gnus-unread-mark) (gnus-ticked-mark (from 4)) (gnus-dormant-mark (from 5)) (gnus-del-mark (from -5) (subject -5)) (gnus-read-mark (from 4) (subject 2)) (gnus-expirable-mark (from -1) (subject -1)) (gnus-killed-mark (from -1) (subject -10)) (gnus-kill-file-mark) (gnus-ancient-mark) (gnus-low-score-mark) (gnus-catchup-mark (from -1) (subject -5))) ) ;;* Für ungeliebte Poster, Spammer und Idioten kommt die Walze zur Geltung. ;;* --quick nuke people-- ;;* This function should be called from the summary buffer with point ;;* on the article to nuke. It puts a rule in ~/News/SPAMMERS to lower ;;* scores of author ;;* It needs an entry in all.SCORE of (files "~/News/SPAMMERS"). (defun gnus-scum-expunge () "Remove this spammer from existance as much as possible." (interactive) (let* ((hdr (gnus-summary-article-header)) (subj (aref hdr 1)) (auth (aref hdr 2)) (artid (aref hdr 4)) (atsign (string-match "@" artid)) (host (substring artid (+ atsign 1) (- (length artid) 1))) (oldscfile gnus-current-score-file)) ;; Change to our spammer score file (gnus-score-change-score-file "SPAMMERS") ;; Add our horrible spammer scores ;;(gnus-summary-score-entry "Subject" subj 'S' -1000 nil) (gnus-summary-score-entry "From" auth 'S' -9999 nil) (gnus-summary-score-entry "Message-ID" host 'S' -9999 nil) ;; Change back to old current score file (gnus-score-change-score-file oldscfile) (gnus-score-save))) ;;* Mit Control-cx wird zugeschlagen. (global-set-key "\C-cx" 'gnus-scum-expunge) ;;* Wenn wir auf ein Artikel antworten, das Subject aber nicht mehr ;;* zutrifft, gibt es eine schnelle kleine Hilfe. (defun dpi-change-subject (neues-subject) "introduces new subject." (interactive "snew Subject: ") (let ((case-fold-search nil)) (goto-line 0) (re-search-forward "^Subject: ") (if (re-search-forward "R[Ee]: " nil t) (replace-match "") ) (insert-string neues-subject) (insert-string " (was: ") (end-of-line) (insert-string ")") ) ) ;;* Und mit M-n oder je nach Einstellung der Tastatur auch Esc-n, ;;* kommt das Ganze ins Rollen. (define-key message-mode-map '"\M-n" 'dpi-change-subject)