Refactor mail handling.
authorJoerg Jaspert <joerg@debian.org>
Wed, 26 Dec 2018 13:42:36 +0000 (14:42 +0100)
committerJoerg Jaspert <joerg@debian.org>
Wed, 26 Dec 2018 13:43:37 +0000 (14:43 +0100)
gnus is no longer main, notmuch is.
factor out message from gnus config, its an own thingie.

.emacs.d/config/emacs.org
.emacs.d/elisp/local/ganneff-gnus.el

index ad7e48d..93329b9 100644 (file)
@@ -2860,529 +2860,451 @@ CLOSED: [2017-08-26 Sat 15:07]
  Most of my gnus config is in an own file, [[file:gnus.org][gnus.org]], here I only have
  what I want every emacs to know.
  #+BEGIN_SRC emacs-lisp
-    (use-package gnus
-      :commands (gnus)
-      :bind (("C-c g" . gnus)
-             :map gnus-summary-mode-map
-             ("<f6>" . jj-forward-spam)
-             ("C-<f1>" . jj-move-mail-spambox)
-             ("C-<f2>" . jj-copy-mail-hambox)
-             ("C-c x" . gnus-scum-expunge)
-             :map gnus-group-mode-map
-             ("GG" . notmuch-search)
-             :map notmuch-show-mode-map
-             ("C-c C-c" . lld-notmuch-goto-message-in-gnus)
-             )
-      :init
-      (progn
-        (after 'gnus
-          (jj-init-theme))
-        )
-      :config
-      (progn
-        (bbdb-initialize)
-        ; When emacs exits, gnus does too, no need to ask me
-        (defun exit-gnus-on-exit ()
-          (if (and (fboundp 'gnus-group-exit)
-                   (gnus-alive-p))
-              (with-current-buffer (get-buffer "*Group*")
-                (gnus-group-exit))))
-        (add-hook 'kill-emacs-hook 'exit-gnus-on-exit)
-
-        ;; prettier summary buffers
-
-          (setq gnus-sum-thread-tree-indent " ") ;; " "
-          (setq gnus-sum-thread-tree-root "\u229e ") ;; "⊞ "
-          (setq gnus-sum-thread-tree-false-root "\u22a1 ") ;; "⊡ "
-          (setq gnus-sum-thread-tree-single-indent "  ") ;; " "
-          (setq gnus-sum-thread-tree-vertical " \u2502") ;; " │"
-          (setq gnus-sum-thread-tree-leaf-with-other " \u251c\u2500 ") ;; " ├─ "
-          (setq gnus-sum-thread-tree-single-leaf " \u2570\u2500 ") ;; " ╰─ "
-
-        (use-package gnus-cite
-          :config
-          (progn
-            (defface dwa/mail-citation '((((class color)
-                                           (background dark))
-                                          (:background "#383838"))
-                                         (((class color)
-                                           (background light))
-                                          (:background "#efefef")))
-              "Mail citation base face.")
-            (loop for x in gnus-cite-face-list do
-                  (set-face-attribute x nil ':inherit 'dwa/mail-citation))))
-
-        (use-package time-date
-          :config
-          (setq message-citation-line-function 'september-citation-line))
-
-        (setq message-subscribed-address-functions
-              '(gnus-find-subscribed-addresses))
-
-        (if (string-match system-name "delenn.ganneff.de")
-            (progn
-              (setq imap-ssl-program "openssl s_client -no_ssl2 -no_ssl3 -tls1 -connect %s:%p")
-
-              (use-package notmuch
-                :config
-                (setq notmuch-search-oldest-first nil))
-              (use-package org-gnus)
-
-              (setq gnus-secondary-select-methods
-                    '((nnml "")
-
-                      (nnimap "nsb"
-                              (nnimap-address "localhost")
-                              (nnimap-user "nsb@auth")
-                              (nnimap-nov-is-evil t)
-                              (nnimap-stream network)
-                              (nnir-search-engine notmuch)
-                              )
-                      (nnimap "gmail"
-                              (nnimap-address "localhost")
-                              (nnimap-user "gmail@auth")
-                              (nnimap-stream network)
-                              (nnimap-nov-is-evil t)
-                              (nnir-search-engine notmuch)
-                              )
-                      ))
-              ;;** Von wo holt Gnus News
-              (setq gnus-select-method '(nnimap "ganneff"
-                                                (nnimap-address "localhost")
-                                                (nnimap-user "ganneff@auth")
-                                                (nnimap-stream network)
-                                                (nnimap-nov-is-evil t)
-                                                (nnir-search-engine notmuch)
-                                                ))
-              ;;** Kopien aller Mails/News speichern
-              (setq gnus-message-archive-group
-                    '((if (message-news-p)
-                          "nnfolder+archive:Sentnews"
-                        "nnimap+ganneff:Sentmail")))
-              )
+ (use-package gnus
+   :commands (gnus)
+   :bind (("C-c g" . gnus)
+          :map gnus-summary-mode-map
+          ("<f6>" . jj-forward-spam)
+          ("C-<f1>" . jj-move-mail-spambox)
+          ("C-<f2>" . jj-copy-mail-hambox)
+          ("C-c x" . gnus-scum-expunge)
+          :map gnus-group-mode-map
+          ("GG" . notmuch-search)
           )
-        (setq nnir-mail-backend (nth 1 gnus-secondary-select-methods))
-
-        ;;** dont always read the active file.
-        (setq gnus-read-active-file 'some)
-
-        ;;** nnimap nich cachen, ebenso nnml
-        (setq gnus-uncacheable-groups "^\\(nnml\\|nnimap\\)")
-
-        ;;** Bei langsamer Anbindung dies auf t setzen
-        (setq gnus-asynchronous t)
-
-        ;;** Mein Gnus soll regelmaessig nach neuen Mails/News schauen.
-        (gnus-demon-add-handler 'us-get-only-mail 20 10)
-        (gnus-demon-init)
-
-        ;; Set the default value of `mm-discouraged-alternatives'.
-        (eval-after-load "gnus-sum"
-          '(add-to-list
-            'gnus-newsgroup-variables
-            '(mm-discouraged-alternatives
-              . '("text/html" "text/richtext"))))
-
-        ;; Display `text/html' parts in `nnrss' groups only.
-        (add-to-list
-         'gnus-parameters
-         '("\\`nnrss:" (mm-discouraged-alternatives nil)))
-
-        ;;** Message Size Limit
-        (setq message-send-mail-partially-limit 5000000)
-
-        (setq message-send-mail-function 'message-send-mail-with-sendmail)
-        (setq smtpmail-default-smtp-server "localhost")
-        (setq message-sendmail-envelope-from 'header)
-
-        ;;** Keinen Sender Header zufuegen !
-        (add-to-list 'message-syntax-checks '(sender . disabled))
-
-        ;;** Auto-Subscribe
-        (setq gnus-auto-subscribed-groups
-              (concat gnus-auto-subscribed-groups
-                      "\\|^nnimap*"))
-
-        ;;** Kaputte Subjects Aw: Statt Re: fixen:
-        (setq message-subject-re-regexp "^[     ]*\\([RrAaFf][EeWw]:[   ]*\\)*[         ]*")
-
-        ;;** Immer Gruppen nach Topics anzeigen
-        (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
-
-        ;;** Summary Anzeige umdefinieren.
-        (setq gnus-summary-line-format "%U%R%z (%4k) %uy%* %B%(%[ %-22,22f %]%) %s\n")
-        (setq gnus-summary-gather-subject-limit 'fuzzy)
-
-        ;;** Und die Gruppenanzeige will ich auch anders. Will sehen wann ich zuletzt da reingesehen hab.
-        (setq gnus-group-line-format
-              "%M%S%p%P %4ux/%4i/%6R: %(%-55,55ug%3O%)%l <%2,2~(cut 6)d.%2,2~(cut 4)d.%2,2~(cut 2)d>\n")
-
-        ;;** Different topic lines
-        (setq gnus-topic-line-format "%i[ %u&topic-line; ] %v\n")
-
-        ;;** Für die umdefinierte Gruppenanzeige muss Gnus aber einen Timestamp in der Gruppe speichern.
-        (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
-
-        ;;** Ich will manchmal den Empfänger statt des Absenders sehen
-        (setq gnus-extra-headers '(To Newsgroups Newsgroup Cc))
-        (setq nnmail-extra-headers gnus-extra-headers)
-        (setq gnus-ignored-from-addresses '("\\(\\(\\(joerg\\)\\(\\.jaspert\\)?\\)\\|root\\|gf\\)@\\(debian\\.org\\|ganneff\\.de\\|debconf\\.org\\|spi-inc\\.org\\|nsb-software\\.de\\|dlh\\.de\\)"))
+   :init
+   (progn
+     (after 'gnus
+       (jj-init-theme))
+     )
+   :config
+   (progn
+     (bbdb-initialize)
+     ; When emacs exits, gnus does too, no need to ask me
+     (defun exit-gnus-on-exit ()
+       (if (and (fboundp 'gnus-group-exit)
+                (gnus-alive-p))
+           (with-current-buffer (get-buffer "*Group*")
+             (gnus-group-exit))))
+     (add-hook 'kill-emacs-hook 'exit-gnus-on-exit)
+
+     ;; prettier summary buffers
+
+       (setq gnus-sum-thread-tree-indent " ") ;; " "
+       (setq gnus-sum-thread-tree-root "\u229e ") ;; "⊞ "
+       (setq gnus-sum-thread-tree-false-root "\u22a1 ") ;; "⊡ "
+       (setq gnus-sum-thread-tree-single-indent "  ") ;; " "
+       (setq gnus-sum-thread-tree-vertical " \u2502") ;; " │"
+       (setq gnus-sum-thread-tree-leaf-with-other " \u251c\u2500 ") ;; " ├─ "
+       (setq gnus-sum-thread-tree-single-leaf " \u2570\u2500 ") ;; " ╰─ "
+
+     (use-package gnus-cite
+       :config
+       (progn
+         (defface dwa/mail-citation '((((class color)
+                                        (background dark))
+                                       (:background "#383838"))
+                                      (((class color)
+                                        (background light))
+                                       (:background "#efefef")))
+           "Mail citation base face.")
+         (loop for x in gnus-cite-face-list do
+               (set-face-attribute x nil ':inherit 'dwa/mail-citation))))
+
+     (setq message-subscribed-address-functions
+           '(gnus-find-subscribed-addresses))
+
+     (if (string-match system-name "delenn.ganneff.de")
+         (progn
+           (setq imap-ssl-program "openssl s_client -no_ssl2 -no_ssl3 -tls1 -connect %s:%p")
+
+           (use-package org-gnus)
+
+           (setq gnus-secondary-select-methods
+                 '((nnml "")
+
+                   (nnimap "nsb"
+                           (nnimap-address "localhost")
+                           (nnimap-user "nsb@auth")
+                           (nnimap-nov-is-evil t)
+                           (nnimap-stream network)
+                           (nnir-search-engine notmuch)
+                           )
+                   (nnimap "gmail"
+                           (nnimap-address "localhost")
+                           (nnimap-user "gmail@auth")
+                           (nnimap-stream network)
+                           (nnimap-nov-is-evil t)
+                           (nnir-search-engine notmuch)
+                           )
+                   ))
+           ;;** Von wo holt Gnus News
+           (setq gnus-select-method '(nnimap "ganneff"
+                                             (nnimap-address "localhost")
+                                             (nnimap-user "ganneff@auth")
+                                             (nnimap-stream network)
+                                             (nnimap-nov-is-evil t)
+                                             (nnir-search-engine notmuch)
+                                             ))
+           ;;** Kopien aller Mails/News speichern
+           (setq gnus-message-archive-group
+                 '((if (message-news-p)
+                       "nnfolder+archive:Sentnews"
+                     "nnimap+ganneff:Sentmail")))
+           )
+       )
+     (setq nnir-mail-backend (nth 1 gnus-secondary-select-methods))
+
+     ;;** dont always read the active file.
+     (setq gnus-read-active-file 'some)
+
+     ;;** nnimap nich cachen, ebenso nnml
+     (setq gnus-uncacheable-groups "^\\(nnml\\|nnimap\\)")
+
+     ;;** Bei langsamer Anbindung dies auf t setzen
+     (setq gnus-asynchronous t)
+
+     ;;** Mein Gnus soll regelmaessig nach neuen Mails/News schauen.
+     (gnus-demon-add-handler 'us-get-only-mail 20 10)
+     (gnus-demon-init)
+
+     ;; Set the default value of `mm-discouraged-alternatives'.
+     (eval-after-load "gnus-sum"
+       '(add-to-list
+         'gnus-newsgroup-variables
+         '(mm-discouraged-alternatives
+           . '("text/html" "text/richtext"))))
+
+     ;; Display `text/html' parts in `nnrss' groups only.
+     (add-to-list
+      'gnus-parameters
+      '("\\`nnrss:" (mm-discouraged-alternatives nil)))
+
+     ;;** Auto-Subscribe
+     (setq gnus-auto-subscribed-groups
+           (concat gnus-auto-subscribed-groups
+                   "\\|^nnimap*"))
+
+     ;;** Immer Gruppen nach Topics anzeigen
+     (add-hook 'gnus-group-mode-hook 'gnus-topic-mode)
+
+     ;;** Summary Anzeige umdefinieren.
+     (setq gnus-summary-line-format "%U%R%z (%4k) %uy%* %B%(%[ %-22,22f %]%) %s\n")
+     (setq gnus-summary-gather-subject-limit 'fuzzy)
+
+     ;;** Und die Gruppenanzeige will ich auch anders. Will sehen wann ich zuletzt da reingesehen hab.
+     (setq gnus-group-line-format
+           "%M%S%p%P %4ux/%4i/%6R: %(%-55,55ug%3O%)%l <%2,2~(cut 6)d.%2,2~(cut 4)d.%2,2~(cut 2)d>\n")
+
+     ;;** Different topic lines
+     (setq gnus-topic-line-format "%i[ %u&topic-line; ] %v\n")
+
+     ;;** Für die umdefinierte Gruppenanzeige muss Gnus aber einen Timestamp in der Gruppe speichern.
+     (add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
+
+     ;;** Ich will manchmal den Empfänger statt des Absenders sehen
+     (setq gnus-extra-headers '(To Newsgroups Newsgroup Cc))
+     (setq nnmail-extra-headers gnus-extra-headers)
+     (setq gnus-ignored-from-addresses '("\\(\\(\\(joerg\\)\\(\\.jaspert\\)?\\)\\|root\\|gf\\)@\\(debian\\.org\\|ganneff\\.de\\|debconf\\.org\\|spi-inc\\.org\\|nsb-software\\.de\\|dlh\\.de\\)"))
+
+     ;; Don't send to these address in wide reply.
+     (setq message-dont-reply-to-names  (append '("notifications@github\\.com"
+                                                  ".*@noreply\\.github\\.com"
+                                                  )
+                                         gnus-ignored-from-addresses))
+
+     ;;** Threads um 2 Zeichen einruecken.
+     (setq gnus-thread-indent-level 1)
+
+     ;;** Posting Styles. Nettes Feature
+     (setq gnus-posting-styles
+           '(
+             (".*"
+              (from "Joerg Jaspert <joerg@ganneff.de>")) ; Globale Einstellung
+             ("Allgemein.Sabrina"
+              (from "Joerg (悠軻) Jaspert <joerg@debian.org>"))
+             ("Debian.Private"
+              (from "Joerg Jaspert <joerg@debian.org>")
+              (signature-file "~/.signature.private"))
+             ("dlh"
+              (from "Joerg Jaspert <joerg@nsb-software.de>")
+              (signature-file "~/.signature.nsb")
+              (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
+              (gcc "nnimap+nsb:Sent"))
+             ("nnimap\\+nsb:.*"
+              (from "Joerg Jaspert <joerg@nsb-software.de>")
+              (signature-file "~/.signature.nsb")
+              (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
+              (gcc "nnimap+nsb:Sent"))
+             ("nnimap\\+nsb:shared.gf.*"
+              (from "Joerg Jaspert <gf@nsb-software.de>"))
+             ("Debian"
+              (from "Joerg Jaspert <joerg@debian.org>"))
+             ("Debian.AM"
+              (Gcc "nnimap+ganneff:Debian.AM"))
+             ("Debian.DAM"
+              (reply-to "Debian Account Managers <da-manager@debian.org>"))
+             ("Debconf"
+              (from "Joerg Jaspert <joerg@debconf.org>"))
+             ("Bugs"
+              (from "Joerg Jaspert <joerg@debian.org>"))
+             ("SPI"
+              (from "Joerg Jaspert <joerg@debian.org>"))
+             ))
+
+
+     ;;** Antworten auf meine Nachrichten hervorheben, hochscoren
+     (add-hook 'message-sent-hook 'gnus-score-followup-article)
+     (add-hook 'message-sent-hook 'gnus-score-followup-thread)
+
+     ;;** Grosse Newsgroups. Gnus fragt da laestigerweise immer nach.
+     ;;** Aber da ich viele grosse Gruppen und nen schnellen Rechner habe
+     ;;** soll der erst recht spaet nachfragen. Erst wenns wirklich fies wird. 
+     (setq gnus-large-newsgroup "15000")
+
+     ;;** Beim Betreten einer Gruppe keinen Artikel auswählen. Gegen Adaptive Scoring iss des !
+     (setq gnus-auto-select-first nil)
+
+     ;;** Wenn ich in einer Gruppe fertig bin soll Gnus nich fragen ob ich in
+     ;;** die naechste will. Es soll einfach tun.
+     (setq gnus-auto-select-next 'quietly)
+
+     ;;** Hervorhebungen (Unterstrichen und Fett bei "_X_" und "*X*")
+     (add-hook 'gnus-article-display-hook 'gnus-article-emphasize t)
+
+     ;;** Gnus Visible Headers
+     (setq gnus-visible-headers
+           '("^From:"
+             "^Newsgroups:"
+             "^Subject:"
+             "^Date:"
+             "^Followup-To:"
+             "^Mail-Followup-To:"
+             "^Reply-To:"
+             "^Organization:"
+             "^Summary:"
+             "^Keywords:"
+             "^To:"
+             "^[BGF]?Cc:"
+             "^Posted-To:"
+             "^Mail-Copies-To:"
+             "^Apparently-To:"
+             "^X-Gnus-Warning:"
+             "^Resent-From:"
+             "^Xref:"
+             "^X-Spam-Status:"
+             "^X-Sent:"
+             "^X-Mailer:"
+             "^X-Newsreader:"
+             "^X-User-Agent:"
+             "^User-Agent:"))
+
+     ;;; Order of headers
+     (setq gnus-sorted-header-list '("^From:"
+                                     "^Subject:"
+                                     "^Summary:"
+                                     "^Keywords:"
+                                     "^Newsgroups:"
+                                     "^Followup-To:"
+                                     "^To:"
+                                     "^Cc:"
+                                     "^Date:"
+                                     "^Organization:"
+                                     "^User-Agent:"
+                                     "^X-Mailer:"
+                                     "^X-Newsreader:"))
+
+     ;;** Save gnus score files. Ziemlich doof wenn nicht
+     (setq gnus-save-score t)
+
+     ;;** Score Einstellungen. Welches Global File und woher die Scores holen.
+     (setq gnus-global-score-files '("~/News/all.SCORE"))
+     (setq gnus-score-find-score-files-function '(gnus-score-find-bnews bbdb/gnus-score))
+
+     ;;** Adaptives Scoring
+     (setq gnus-use-adaptive-scoring t)
+     (defvar gnus-default-adaptive-score-alist
+       '((gnus-unread-mark)
+         (gnus-ticked-mark (from 5))
+         (gnus-dormant-mark (from 6))
+         (gnus-del-mark (subject -5))
+         (gnus-read-mark (from 5) (subject 3))
+         (gnus-expirable-mark (from -2) (subject -2))
+         (gnus-killed-mark (from -2) (subject -4))
+         (gnus-kill-file-mark)
+         (gnus-ancient-mark)
+         (gnus-low-score-mark)
+         (gnus-catchup-mark (subject -3))
+         ))
 
-        ;; Don't send to these address in wide reply.
-        (setq message-dont-reply-to-names  (append '("notifications@github\\.com"
-                                                     ".*@noreply\\.github\\.com"
-                                                     )
-                                            gnus-ignored-from-addresses))
+     ;;** Damit ich nicht mit Megabytegrossen Scorefiles rummachen muss, muss bei Adaptive-Scoring
+     ;;** der Kram automagisch gelöscht werden. Sonst hats keinen Sinn ! 
+     (setq gnus-decay-scores t)
+
+     ;;** Artikel mit weniger Score werden nicht angezeigt
+     (setq gnus-summary-expunge-below -1000)
+
+     ;;** work around unimplemented handling of multiple similar attachments
+     ;;** (recommended by ShengHuo Zhu Fri 20 Jul 2001 13:14)
+     (setq gnus-mime-display-multipart-related-as-mixed t)
+
+     ;;** Bilderchen direkt anzeigen.
+     (setq mm-inline-large-images t)
+
+     ;;** ueberfluessige Leerzeilen loeschen
+     (setq gnus-treat-strip-trailing-blank-lines t)
+     (setq gnus-treat-strip-leading-blank-lines t)
+
+     ;;** Falsch gebaute Attachments ? Nich mit mir. Nuja, UUE wech. Was solls. Will ich eh nich haben
+     (setq mm-uu-configure-list '((uu . disabled)))
+
+     ;; (use-package message-utils
+     ;;   :commands (message-mark-inserted-region message-mark-insert-file message-strip-subject-was message-change-subject message-xpost-fup2 message-add-archive-header message-reduce-to-to-cc)
+     ;;   :bind ((:map message-mode-map
+     ;;                ("C-c m" . message-mark-inserted-region)
+     ;;                ("C-c f" . message-mark-insert-file)
+     ;;                ("C-c x" . message-xpost-fup2)
+     ;;                ("C-c s" . message-change-subject)
+     ;;                ("C-c a" . message-add-archive-header)
+     ;;                ("C-c t" . message-reduce-to-to-cc)
+     ;;                )))
+     ;(add-hook 'message-header-setup-hook 'message-strip-subject-was)
+     ;(add-hook 'message-setup-hook 'message-utils-setup)
+
+     ;;** Meine Smileys mag ich gelb
+     (use-package smiley
+       :init
+       (progn
+         (setq gnus-treat-display-smileys t)
+         (setq smiley-flesh-color "Yellow")
+         (setq smiley-data-directory "~/emacs/etc/smilies/")))
 
-        ;;** Threads um 2 Zeichen einruecken.
-        (setq gnus-thread-indent-level 1)
+     (use-package mml-sec
+       :commands (sign-or-crypt)
+       :config
+       (progn
+         (setq mm-verify-option 'always)
+         ;; Keine extra Signatur erzeugen.
+         (mml-signencrypt-style "pgpmime" 'combined)
+         (setq mml-secure-openpgp-sign-with-sender 't)
+         (setq gpg-unabbrev-trust-alist
+               '(("TRUST_UNDEFINED" . trust-undefined)
+                 ("TRUST_NEVER"     . trust-none)
+                 ("TRUST_MARGINAL"  . trust-marginal)
+                 ("TRUST_FULLY"     . trust-full)
+                 ("TRUST_ULTIMATE"  . trust-ultimate)))
+         ))
+     (add-hook 'gnus-message-setup-hook 'sign-or-crypt)
 
-        ;;** Posting Styles. Nettes Feature
-        (setq gnus-posting-styles
-              '(
-                (".*"
-                 (from "Joerg Jaspert <joerg@ganneff.de>")) ; Globale Einstellung
-                ("Allgemein.Sabrina"
-                 (from "Joerg (悠軻) Jaspert <joerg@debian.org>"))
-                ("Debian.Private"
-                 (from "Joerg Jaspert <joerg@debian.org>")
-                 (signature-file "~/.signature.private"))
-                ("dlh"
-                 (from "Joerg Jaspert <joerg@nsb-software.de>")
-                 (signature-file "~/.signature.nsb")
-                 (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
-                 (gcc "nnimap+nsb:Sent"))
-                ("nnimap\\+nsb:.*"
-                 (from "Joerg Jaspert <joerg@nsb-software.de>")
-                 (signature-file "~/.signature.nsb")
-                 (organization "NSB Nguyen Softwareentwicklung & beratung GmbH")
-                 (gcc "nnimap+nsb:Sent"))
-                ("nnimap\\+nsb:shared.gf.*"
-                 (from "Joerg Jaspert <gf@nsb-software.de>"))
-                ("Debian"
-                 (from "Joerg Jaspert <joerg@debian.org>"))
-                ("Debian.AM"
-                 (Gcc "nnimap+ganneff:Debian.AM"))
-                ("Debian.DAM"
-                 (reply-to "Debian Account Managers <da-manager@debian.org>"))
-                ("Debconf"
-                 (from "Joerg Jaspert <joerg@debconf.org>"))
-                ("Bugs"
-                 (from "Joerg Jaspert <joerg@debian.org>"))
-                ("SPI"
-                 (from "Joerg Jaspert <joerg@debian.org>"))
-                ))
-
-
-        ;;** Ich will die Header in den Nachrichten sehen die ich schreibe.
-        (setq message-generate-headers-first t)
-
-        ;;** Und immer schoen Header zufuegen.
-        (setq message-default-headers (concat "Organization: Ganneff\n"))
-        (add-hook 'message-send-hook 'my-message-add-content)
-
-        ;;** Und Courtesy-Mails wollen wir schon mal grad gar nicht
-        (add-hook 'message-header-setup-hook 'my-message-header-setup-hook)
-
-        ;;** Antworten auf meine Nachrichten hervorheben, hochscoren
-        (add-hook 'message-sent-hook 'gnus-score-followup-article)
-        (add-hook 'message-sent-hook 'gnus-score-followup-thread)
-
-        ;;** In Forwards bitte das Subject aufraeumen
-        (setq message-wash-forwarded-subjects t)
-
-        ;;** Zitieren ohne Sig. Ausser Idioten sind zu doof die korrekt abzutrennen.
-        (setq message-cite-function 'message-cite-original-without-signature)
-
-        ;;** Grosse Newsgroups. Gnus fragt da laestigerweise immer nach.
-        ;;** Aber da ich viele grosse Gruppen und nen schnellen Rechner habe
-        ;;** soll der erst recht spaet nachfragen. Erst wenns wirklich fies wird. 
-        (setq gnus-large-newsgroup "15000")
-
-        ;;** Beim Betreten einer Gruppe keinen Artikel auswählen. Gegen Adaptive Scoring iss des !
-        (setq gnus-auto-select-first nil)
-
-        ;;** Wenn ich in einer Gruppe fertig bin soll Gnus nich fragen ob ich in
-        ;;** die naechste will. Es soll einfach tun.
-        (setq gnus-auto-select-next 'quietly)
-
-        ;;** Hervorhebungen (Unterstrichen und Fett bei "_X_" und "*X*")
-        (add-hook 'gnus-article-display-hook 'gnus-article-emphasize t)
-
-        ;;** Gnus Visible Headers
-        (setq gnus-visible-headers
-              '("^From:"
-                "^Newsgroups:"
-                "^Subject:"
-                "^Date:"
-                "^Followup-To:"
-                "^Reply-To:"
-                "^Organization:"
-                "^Summary:"
-                "^Keywords:"
-                "^To:"
-                "^[BGF]?Cc:"
-                "^Posted-To:"
-                "^Mail-Copies-To:"
-                "^Apparently-To:"
-                "^X-Gnus-Warning:"
-                "^Resent-From:"
-                "^Xref:"
-                "^X-Spam-Status:"
-                "^X-Sent:"
-                "^X-Mailer:"
-                "^X-Newsreader:"
-                "^X-User-Agent:"
-                "^User-Agent:"))
-
-        ;;; Order of headers
-        (setq gnus-sorted-header-list '("^From:"
-                                        "^Subject:"
-                                        "^Summary:"
-                                        "^Keywords:"
-                                        "^Newsgroups:"
-                                        "^Followup-To:"
-                                        "^To:"
-                                        "^Cc:"
-                                        "^Date:"
-                                        "^Organization:"
-                                        "^User-Agent:"
-                                        "^X-Mailer:"
-                                        "^X-Newsreader:"))
-
-        ;;** Automagischen Zeilenumbruch bei News/Mailangabe nach 72 Zeichen. SO wies sein soll.
-        (add-hook 'message-mode-hook
-                  (lambda ()
-                    (setq fill-column 72)
-                    (turn-on-auto-fill)
-                    (epa-mail-mode 1)
-                    ))
-
-        ;;** Save gnus score files. Ziemlich doof wenn nicht
-        (setq gnus-save-score t)
-
-        ;;** Score Einstellungen. Welches Global File und woher die Scores holen.
-        (setq gnus-global-score-files '("~/News/all.SCORE"))
-        (setq gnus-score-find-score-files-function '(gnus-score-find-bnews bbdb/gnus-score))
-
-        ;;** Adaptives Scoring
-        (setq gnus-use-adaptive-scoring t)
-        (defvar gnus-default-adaptive-score-alist
-          '((gnus-unread-mark)
-            (gnus-ticked-mark (from 5))
-            (gnus-dormant-mark (from 6))
-            (gnus-del-mark (subject -5))
-            (gnus-read-mark (from 5) (subject 3))
-            (gnus-expirable-mark (from -2) (subject -2))
-            (gnus-killed-mark (from -2) (subject -4))
-            (gnus-kill-file-mark)
-            (gnus-ancient-mark)
-            (gnus-low-score-mark)
-            (gnus-catchup-mark (subject -3))
-            ))
-
-        ;;** Damit ich nicht mit Megabytegrossen Scorefiles rummachen muss, muss bei Adaptive-Scoring
-        ;;** der Kram automagisch gelöscht werden. Sonst hats keinen Sinn ! 
-        (setq gnus-decay-scores t)
-
-        ;;** Artikel mit weniger Score werden nicht angezeigt
-        (setq gnus-summary-expunge-below -1000)
-
-        ;;** work around unimplemented handling of multiple similar attachments
-        ;;** (recommended by ShengHuo Zhu Fri 20 Jul 2001 13:14)
-        (setq gnus-mime-display-multipart-related-as-mixed t)
-
-        ;;** Bilderchen direkt anzeigen.
-        (setq mm-inline-large-images t)
-
-        ;;** ueberfluessige Leerzeilen loeschen
-        (setq gnus-treat-strip-trailing-blank-lines t)
-        (setq gnus-treat-strip-leading-blank-lines t)
-
-        ;;** Falsch gebaute Attachments ? Nich mit mir. Nuja, UUE wech. Was solls. Will ich eh nich haben
-        (setq mm-uu-configure-list '((uu . disabled)))
-
-        ;; (use-package message-utils
-        ;;   :commands (message-mark-inserted-region message-mark-insert-file message-strip-subject-was message-change-subject message-xpost-fup2 message-add-archive-header message-reduce-to-to-cc)
-        ;;   :bind ((:map message-mode-map
-        ;;                ("C-c m" . message-mark-inserted-region)
-        ;;                ("C-c f" . message-mark-insert-file)
-        ;;                ("C-c x" . message-xpost-fup2)
-        ;;                ("C-c s" . message-change-subject)
-        ;;                ("C-c a" . message-add-archive-header)
-        ;;                ("C-c t" . message-reduce-to-to-cc)
-        ;;                )))
-        ;(add-hook 'message-header-setup-hook 'message-strip-subject-was)
-        ;(add-hook 'message-setup-hook 'message-utils-setup)
-
-        ;;** Nun das Paket um einfachst Fussnoten eingeben zu können.
-        (use-package footnote
-          :commands (footnote-mode)
-          :config
-          (setq footnote-body-tag-spacing 1
-                footnote-spaced-footnotes nil
-                footnote-style 'numeric-latin
-                footnote-section-tag "Fussnoten: "))
-        (add-hook 'message-mode-hook 'footnote-mode)
-
-        ;;** Meine Smileys mag ich gelb
-        (use-package smiley
-          :init
-          (progn
-            (setq gnus-treat-display-smileys t)
-            (setq smiley-flesh-color "Yellow")
-            (setq smiley-data-directory "~/emacs/etc/smilies/")))
+     ;;** utf-8, coding systems
+     (setq mm-coding-system-priorities
+           '(iso-latin-1 iso-latin-9 utf-8))
 
-        (use-package mml-sec
-          :commands (sign-or-crypt)
-          :config
-          (progn
-            (setq mm-verify-option 'always)
-            ;; Keine extra Signatur erzeugen.
-            (mml-signencrypt-style "pgpmime" 'combined)
-            (setq mml-secure-openpgp-sign-with-sender 't)
-            (setq gpg-unabbrev-trust-alist
-                  '(("TRUST_UNDEFINED" . trust-undefined)
-                    ("TRUST_NEVER"     . trust-none)
-                    ("TRUST_MARGINAL"  . trust-marginal)
-                    ("TRUST_FULLY"     . trust-full)
-                    ("TRUST_ULTIMATE"  . trust-ultimate)))
-            ))
-        (add-hook 'gnus-message-setup-hook 'sign-or-crypt)
-
-        ;;** utf-8, coding systems
-        (setq mm-coding-system-priorities
-              '(iso-latin-1 iso-latin-9 utf-8))
-
-        (unify-8859-on-encoding-mode 1)
-        (unify-8859-on-decoding-mode 1)
-        (prefer-coding-system 'latin-9)
-        (prefer-coding-system 'latin-1)
-        (prefer-coding-system 'utf-8)
-
-        ;;** org-mode
-        (add-hook 'message-mode-hook 'orgstruct++-mode 'append)
-        (add-hook 'message-mode-hook 'orgtbl-mode 'append)
-
-        (use-package message-x
-          :load-path "elisp/local")
+     (unify-8859-on-encoding-mode 1)
+     (unify-8859-on-decoding-mode 1)
+     (prefer-coding-system 'latin-9)
+     (prefer-coding-system 'latin-1)
+     (prefer-coding-system 'utf-8)
 
-        (use-package randomsig
-          :bind (:map message-mode-map
-                 ("C-c s" . randomsig-replace-sig)
-                 ("C-c S" . randomsig-select-sig))
-          :config
-          (progn
-            (setq randomsig-dir "/home/joerg/sigs")
-            (setq message-signature 'randomsig-signature)))
-
-        (use-package sieve
-          :mode ("\\.siv\\'" . sieve-mode)
-          :config
-          (require 'gnus-sieve)
-        )
+     (use-package sieve
+       :mode ("\\.siv\\'" . sieve-mode)
+       :config
+       (require 'gnus-sieve)
+     )
 
-        (setq gnus-use-correct-string-widths nil)
-
-        (setq nnrss-wash-html-in-text-plain-parts t)
-        (setq canlock-password "canlockjjaspert")
-        (setq canlock-sha1-function (quote canlock-sha1-with-openssl))
-        (setq canlock-sha1-function-for-verify (quote canlock-sha1-with-openssl))
-        (setq gnus-agent nil)
-        (setq gnus-article-banner-alist (quote ((banner-perl . "^--.?
-    .+
-    .+
-    .+
-    .+
-    .+
-    Die Nutzung von.+html") (banner-debian . "^--.?
-    To UNSUBSCRIBE.*
-    .*@lists.debian.org$") (banner-debian-de . "^--.?
-    -+
-    Um sich aus der Liste auszutragen.+
-    .+
-    .+
-    .+
-    -+$\\|[0-9]+ eingetragene Mitglieder in dieser Liste.") (banner-sourceforge . "^_+
-    .+@lists.sourceforge.net
-    http://lists.sourceforge.net.+
-    .+
-    $") (banner-amavis . "^_+
-    .+AMaViS-.*
-    .*
-    .*
-    .*amavis-faq.php3$"))))
-        (setq gnus-article-sort-functions (quote (gnus-article-sort-by-number gnus-article-sort-by-score gnus-article-sort-by-date)))
-        (setq gnus-article-x-face-command (quote gnus-display-x-face-in-from))
-        (setq gnus-boring-article-headers (quote (empty newsgroups followup-to reply-to)))
-        (setq gnus-build-sparse-threads nil)
-        (setq gnus-buttonized-mime-types '("multipart/signed"))
-        (setq
-         ;; collaps long citations
-         ;; (w/ `gnus-treat-hide-citation t' or `W W c'):
-         gnus-cited-closed-text-button-line-format
-         "%(%{... [ %n lines (%l chars) of citation hidden, click here to expand ] ...%}%)\n"
-         gnus-cited-lines-visible '(3 . 6) ; (top . bottom)
-         ;; [...]
-         gnus-treat-hide-citation t)
-
-        (setq gnus-default-article-saver (quote gnus-summary-save-in-file))
-                                            ; (setq gnus-default-charset (quote iso-8859-1))
-        (setq gnus-generate-tree-function (quote gnus-generate-vertical-tree))
-        (setq gnus-group-charset-alist (quote (("\\(^\\|:\\)hk\\>\\|\\(^\\|:\\)tw\\>\\|\\<big5\\>" cn-big5) ("\\(^\\|:\\)cn\\>\\|\\<chinese\\>" cn-gb-2312) ("\\(^\\|:\\)fj\\>\\|\\(^\\|:\\)japan\\>" iso-2022-jp-2) ("\\(^\\|:\\)tnn\\>\\|\\(^\\|:\\)pin\\>\\|\\(^\\|:\\)sci.lang.japan" iso-2022-7bit) ("\\(^\\|:\\)relcom\\>" koi8-r) ("\\(^\\|:\\)fido7\\>" koi8-r) ("\\(^\\|:\\)\\(cz\\|hun\\|pl\\|sk\\|hr\\)\\>" iso-8859-2) ("\\(^\\|:\\)israel\\>" iso-8859-1) ("\\(^\\|:\\)han\\>" euc-kr) ("\\(^\\|:\\)alt.chinese.text.big5\\>" chinese-big5) ("\\(^\\|:\\)soc.culture.vietnamese\\>" vietnamese-viqr) ("\\(^\\|:\\)\\(comp\\|rec\\|alt\\|sci\\|soc\\|news\\|gnu\\|bofh\\)\\>" iso-8859-1))))
-        (setq gnus-group-name-charset-group-alist (quote ((".*" . iso-8859-1))))
-        (setq gnus-group-name-charset-method-alist (quote ((nntp . iso-8859-1))))
-        (setq gnus-group-posting-charset-alist (quote (("^\\(no\\|fr\\)\\.[^,]*\\(,[
-    ]*\\(no\\|fr\\)\\.[^,]*\\)*$" iso-8859-1 (iso-8859-1)) ("^\\(fido7\\|relcom\\)\\.[^,]*\\(,[
-    ]*\\(fido7\\|relcom\\)\\.[^,]*\\)*$" koi8-r (koi8-r)) (message-this-is-mail nil nil) (message-this-is-news nil t))))(setq gnus-gcc-mark-as-read t)
-        (setq gnus-list-identifiers "\\[\\(a-zA-Z\\)+\\]")
-        (setq gnus-message-replyencrypt nil)
-        (setq gnus-message-replysign nil)
-        (setq gnus-novice-user nil)
-        (setq gnus-refer-thread-limit t)
-        (setq gnus-save-duplicate-list t)
-        (setq gnus-simplify-ignored-prefixes nil)
-        (setq gnus-summary-exit-hook (quote (gnus-summary-bubble-group)))
-        (setq gnus-summary-mode-line-format "Gnus: %g [%A] %Z - killed: %E")
-        (setq gnus-suppress-duplicates t)
-        (setq gnus-thread-indent-level 2)
-        (setq gnus-thread-sort-functions (quote (gnus-thread-sort-by-number gnus-thread-sort-by-score gnus-thread-sort-by-date)))
-        (setq gnus-treat-capitalize-sentences nil)
-        (setq gnus-treat-date-local (quote head))
-        (setq gnus-treat-display-picons nil)
-        (setq gnus-treat-display-xface (quote head))
-        (setq gnus-treat-fill-article nil)
-        (setq gnus-treat-fill-long-lines nil)
-        (setq gnus-treat-from-picon (quote head))
-        (setq gnus-treat-mail-picon (quote head))
-        (setq gnus-treat-newsgroups-picon (quote head))
-        (setq gnus-treat-strip-pgp (quote head))
-        (setq gnus-treat-unsplit-urls t)
-        (setq gnus-treat-x-pgp-sig (quote head))
-        (setq gnus-use-picons t)
-        (setq gnus-uu-post-encode-method (quote gnus-uu-post-encode-mime))
-        (setq message-archive-note "X-No-Archive: Yes")
-                                            ;(setq message-default-charset (quote iso-8859-1))
-        (setq message-make-forward-subject-function (quote message-forward-subject-fwd))
-        (setq message-max-buffers 5)
-        (setq message-send-hook (quote (my-message-add-content)))
-        (setq message-subscribed-regexps (quote (".*@lists.*" ".*@postfix.org" ".*@nongnu.org")))
-        (setq message-use-followup-to (quote use))
-        (setq mm-automatic-display (quote ("text/plain" "text/enriched" "text/richtext" "image/jpeg" "text/x-vcard" "image/pjepg" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "application/pgp-signature" "application/emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
-        (setq mm-body-charset-encoding-alist (quote ((iso-2022-jp . 7bit) (iso-2022-jp-2 . 7bit) (iso-8859-1 . 8bit) (iso-8859-15 . 8bit))))
-        (setq mm-decrypt-option (quote known))
-        (setq mm-inlined-types (quote ("image/jpeg" "image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
-        (setq mm-verify-option (quote always))
-        (setq nnimap-authinfo-file "~/.nnimap")
-        (setq gnus-save-newsrc-file nil)
-        (setq gnus-read-newsrc-file nil)
-        (setq gnus-always-read-dribble-file t)
-
-        (setq gnus-refer-article-method
-              '(current
-                (nnweb "refer" (nnweb-type dejanews))))
+     (setq gnus-use-correct-string-widths nil)
+
+     (setq nnrss-wash-html-in-text-plain-parts t)
+     (setq canlock-password "canlockjjaspert")
+     (setq canlock-sha1-function (quote canlock-sha1-with-openssl))
+     (setq canlock-sha1-function-for-verify (quote canlock-sha1-with-openssl))
+     (setq gnus-agent nil)
+     (setq gnus-article-banner-alist (quote ((banner-perl . "^--.?
+ .+
+ .+
+ .+
+ .+
+ .+
+ Die Nutzung von.+html") (banner-debian . "^--.?
+ To UNSUBSCRIBE.*
+ .*@lists.debian.org$") (banner-debian-de . "^--.?
+ -+
+ Um sich aus der Liste auszutragen.+
+ .+
+ .+
+ .+
+ -+$\\|[0-9]+ eingetragene Mitglieder in dieser Liste.") (banner-sourceforge . "^_+
+ .+@lists.sourceforge.net
+ http://lists.sourceforge.net.+
+ .+
+ $") (banner-amavis . "^_+
+ .+AMaViS-.*
+ .*
+ .*
+ .*amavis-faq.php3$"))))
+     (setq gnus-article-sort-functions (quote (gnus-article-sort-by-number gnus-article-sort-by-score gnus-article-sort-by-date)))
+     (setq gnus-article-x-face-command (quote gnus-display-x-face-in-from))
+     (setq gnus-boring-article-headers (quote (empty newsgroups followup-to reply-to)))
+     (setq gnus-build-sparse-threads nil)
+     (setq gnus-buttonized-mime-types '("multipart/signed"))
+     (setq
+      ;; collaps long citations
+      ;; (w/ `gnus-treat-hide-citation t' or `W W c'):
+      gnus-cited-closed-text-button-line-format
+      "%(%{... [ %n lines (%l chars) of citation hidden, click here to expand ] ...%}%)\n"
+      gnus-cited-lines-visible '(3 . 6) ; (top . bottom)
+      ;; [...]
+      gnus-treat-hide-citation t)
+
+     (setq gnus-default-article-saver (quote gnus-summary-save-in-file))
+                                         ; (setq gnus-default-charset (quote iso-8859-1))
+     (setq gnus-generate-tree-function (quote gnus-generate-vertical-tree))
+     (setq gnus-group-charset-alist (quote (("\\(^\\|:\\)hk\\>\\|\\(^\\|:\\)tw\\>\\|\\<big5\\>" cn-big5) ("\\(^\\|:\\)cn\\>\\|\\<chinese\\>" cn-gb-2312) ("\\(^\\|:\\)fj\\>\\|\\(^\\|:\\)japan\\>" iso-2022-jp-2) ("\\(^\\|:\\)tnn\\>\\|\\(^\\|:\\)pin\\>\\|\\(^\\|:\\)sci.lang.japan" iso-2022-7bit) ("\\(^\\|:\\)relcom\\>" koi8-r) ("\\(^\\|:\\)fido7\\>" koi8-r) ("\\(^\\|:\\)\\(cz\\|hun\\|pl\\|sk\\|hr\\)\\>" iso-8859-2) ("\\(^\\|:\\)israel\\>" iso-8859-1) ("\\(^\\|:\\)han\\>" euc-kr) ("\\(^\\|:\\)alt.chinese.text.big5\\>" chinese-big5) ("\\(^\\|:\\)soc.culture.vietnamese\\>" vietnamese-viqr) ("\\(^\\|:\\)\\(comp\\|rec\\|alt\\|sci\\|soc\\|news\\|gnu\\|bofh\\)\\>" iso-8859-1))))
+     (setq gnus-group-name-charset-group-alist (quote ((".*" . iso-8859-1))))
+     (setq gnus-group-name-charset-method-alist (quote ((nntp . iso-8859-1))))
+     (setq gnus-group-posting-charset-alist (quote (("^\\(no\\|fr\\)\\.[^,]*\\(,[
+ ]*\\(no\\|fr\\)\\.[^,]*\\)*$" iso-8859-1 (iso-8859-1)) ("^\\(fido7\\|relcom\\)\\.[^,]*\\(,[
+ ]*\\(fido7\\|relcom\\)\\.[^,]*\\)*$" koi8-r (koi8-r)) (message-this-is-mail nil nil) (message-this-is-news nil t))))(setq gnus-gcc-mark-as-read t)
+     (setq gnus-list-identifiers "\\[\\(a-zA-Z\\)+\\]")
+     (setq gnus-message-replyencrypt nil)
+     (setq gnus-message-replysign nil)
+     (setq gnus-novice-user nil)
+     (setq gnus-refer-thread-limit t)
+     (setq gnus-save-duplicate-list t)
+     (setq gnus-simplify-ignored-prefixes nil)
+     (setq gnus-summary-exit-hook (quote (gnus-summary-bubble-group)))
+     (setq gnus-summary-mode-line-format "Gnus: %g [%A] %Z - killed: %E")
+     (setq gnus-suppress-duplicates t)
+     (setq gnus-thread-indent-level 2)
+     (setq gnus-thread-sort-functions (quote (gnus-thread-sort-by-number gnus-thread-sort-by-score gnus-thread-sort-by-date)))
+     (setq gnus-treat-capitalize-sentences nil)
+     (setq gnus-treat-date-local (quote head))
+     (setq gnus-treat-display-picons nil)
+     (setq gnus-treat-display-xface (quote head))
+     (setq gnus-treat-fill-article nil)
+     (setq gnus-treat-fill-long-lines nil)
+     (setq gnus-treat-from-picon (quote head))
+     (setq gnus-treat-mail-picon (quote head))
+     (setq gnus-treat-newsgroups-picon (quote head))
+     (setq gnus-treat-strip-pgp (quote head))
+     (setq gnus-treat-unsplit-urls t)
+     (setq gnus-treat-x-pgp-sig (quote head))
+     (setq gnus-use-picons t)
+     (setq gnus-uu-post-encode-method (quote gnus-uu-post-encode-mime))
+     (setq mm-automatic-display (quote ("text/plain" "text/enriched" "text/richtext" "image/jpeg" "text/x-vcard" "image/pjepg" "image/.*" "message/delivery-status" "multipart/.*" "message/rfc822" "text/x-patch" "application/pgp-signature" "application/emacs-lisp" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
+     (setq mm-body-charset-encoding-alist (quote ((iso-2022-jp . 7bit) (iso-2022-jp-2 . 7bit) (iso-8859-1 . 8bit) (iso-8859-15 . 8bit))))
+     (setq mm-decrypt-option (quote known))
+     (setq mm-inlined-types (quote ("image/jpeg" "image/.*" "text/.*" "message/delivery-status" "message/rfc822" "message/partial" "message/external-body" "application/emacs-lisp" "application/x-emacs-lisp" "application/pgp-signature" "application/x-pkcs7-signature" "application/pkcs7-signature" "application/x-pkcs7-mime" "application/pkcs7-mime" "application/pgp")))
+     (setq mm-verify-option (quote always))
+     (setq nnimap-authinfo-file "~/.nnimap")
+     (setq gnus-save-newsrc-file nil)
+     (setq gnus-read-newsrc-file nil)
+     (setq gnus-always-read-dribble-file t)
+
+     (setq gnus-refer-article-method
+           '(current
+             (nnweb "refer" (nnweb-type dejanews))))
 
-        ))
+     ))
 
  #+END_SRC
 ** go-mode
@@ -3563,18 +3485,18 @@ CLOSED: [2017-08-26 Sat 15:09]
        ("q" nil "quit"))
      (bind-key "M-g e" 'hydra-error/body)
 
-     (defhydra hydra-gnus (:color red)
-       "gnus functions"
-       ("m" gnus-uu-mark-thread "mark thread")
-       ("d" gnus-summary-delete-article "delete article(s)")
-       ("r" gnus-summary-mark-as-read-forward "mark read")
-       ("n" gnus-summary-next-thread "next thread")
-       ("p" gnus-summary-prev-thread "previous thread")
-       ("g" gnus-summary-next-group "next group")
-       ("l" gnus-recenter "recenter")
-       ("x" gnus-summary-limit-to-unread "unread")
-       ("q" nil "quit"))
-     (bind-key "C-c h" 'hydra-gnus/body)
+     ;; (defhydra hydra-gnus (:color red)
+     ;;   "gnus functions"
+     ;;   ("m" gnus-uu-mark-thread "mark thread")
+     ;;   ("d" gnus-summary-delete-article "delete article(s)")
+     ;;   ("r" gnus-summary-mark-as-read-forward "mark read")
+     ;;   ("n" gnus-summary-next-thread "next thread")
+     ;;   ("p" gnus-summary-prev-thread "previous thread")
+     ;;   ("g" gnus-summary-next-group "next group")
+     ;;   ("l" gnus-recenter "recenter")
+     ;;   ("x" gnus-summary-limit-to-unread "unread")
+     ;;   ("q" nil "quit"))
+     ;; (bind-key "C-c h" 'hydra-gnus/body)
 
      (defhydra hydra-launcher (:color blue)
        "Launch"
@@ -4252,9 +4174,137 @@ CLOSED: [2017-08-26 Sat 14:44]
 ** message
  #+BEGIN_SRC emacs-lisp
  (use-package message
+   :commands (message-mode)
+   :bind (:map notmuch-message-mode-map
+               ("C-c M-m" . 'my-message-mark-inserted-region)
+               ("C-c h" . 'harden-newlines))
    :config
    (progn
-     (validate-setq message-kill-buffer-on-exit t)))
+     (validate-setq message-kill-buffer-on-exit t)
+
+     (use-package time-date
+       :config
+       (setq message-citation-line-function 'september-citation-line))
+
+     ;;** Message Size Limit
+     (setq message-send-mail-partially-limit 5000000)
+
+     (setq message-send-mail-function 'message-send-mail-with-sendmail)
+     (setq smtpmail-default-smtp-server "localhost")
+     (setq message-sendmail-envelope-from 'header)
+
+     ;;** Keinen Sender Header zufuegen !
+     (add-to-list 'message-syntax-checks '(sender . disabled))
+
+     ;;** Kaputte Subjects Aw: Statt Re: fixen:
+     (setq message-subject-re-regexp "^[     ]*\\([RrAaFf][EeWw]:[   ]*\\)*[         ]*")
+
+     ;;** Ich will die Header in den Nachrichten sehen die ich schreibe.
+     (setq message-generate-headers-first t)
+
+     ;;** Und immer schoen Header zufuegen.
+     (setq message-default-headers (concat "Organization: Ganneff\n"))
+     (add-hook 'message-send-hook 'my-message-add-content)
+
+     ;;** Und Courtesy-Mails wollen wir schon mal grad gar nicht
+     (add-hook 'message-header-setup-hook 'my-message-header-setup-hook)
+
+     ;;** In Forwards bitte das Subject aufraeumen
+     (setq message-wash-forwarded-subjects t)
+
+     ;;** Zitieren ohne Sig. Ausser Idioten sind zu doof die korrekt abzutrennen.
+     (setq message-cite-function 'message-cite-original-without-signature)
+
+     ;;** Automagischen Zeilenumbruch bei News/Mailangabe nach 72 Zeichen. SO wies sein soll.
+     (add-hook 'message-mode-hook
+               (lambda ()
+                 (setq fill-column 72)
+                 (turn-on-auto-fill)
+                 (epa-mail-mode 1)
+                 ))
+
+     ;;** org-mode
+     (add-hook 'message-mode-hook 'orgstruct++-mode 'append)
+     (add-hook 'message-mode-hook 'orgtbl-mode 'append)
+
+     (setq message-forward-as-mime t)
+     (use-package message-x
+       :load-path "elisp/local")
+
+     (use-package randomsig
+       :bind (:map message-mode-map
+                   ("C-c s" . randomsig-replace-sig)
+                   ("C-c S" . randomsig-select-sig))
+       :config
+       (progn
+         (setq randomsig-dir "/home/joerg/sigs")
+         (setq message-signature 'randomsig-signature)))
+
+     (setq message-archive-note "X-No-Archive: Yes")
+     (setq message-make-forward-subject-function (quote message-forward-subject-fwd))
+     (setq message-max-buffers 5)
+     (setq message-send-hook (quote (my-message-add-content)))
+     (setq message-subscribed-regexps (quote (".*@lists.*" ".*@postfix.org" ".*@nongnu.org")))
+     (setq message-use-followup-to (quote use))
+
+                                         ; use format=flowed mail style, see 
+     (require 'messages-are-flowing)
+     (setq mml-enable-flowed t)
+     (add-hook 'message-mode-hook #'messages-are-flowing-use-and-mark-hard-newlines)
+
+                                         ; A function to mark newlines as hard newlines for format=flowed stuff
+     (defun harden-newlines (beg end)
+       (interactive "r")
+       (save-excursion
+         (save-restriction
+           (narrow-to-region beg end)
+           (goto-char (point-min))
+           (while (search-forward "\n" nil t)
+             (put-text-property (1- (point)) (point) 'hard t)))))
+
+                                         ; In format=flowed our enclosing tags must end with a hard newline
+     (defun my-message-mark-inserted-region (beg end &optional verbatim)
+       "Mark some region in the current article with enclosing tags.
+ See `message-mark-insert-begin' and `message-mark-insert-end'.
+ If VERBATIM, use slrn style verbatim marks (\"#v+\" and \"#v-\")."
+       (interactive "r\nP")
+       (save-excursion
+         ;; add to the end of the region first, otherwise end would be invalid
+         (goto-char end)
+         (insert (if verbatim "#v-\n" message-mark-insert-end))
+         (put-text-property (1- (point)) (point) 'hard t)
+         (goto-char beg)
+         (insert (if verbatim "#v+\n" message-mark-insert-begin))
+         (put-text-property (1- (point)) (point) 'hard t)
+         )
+
+       ;;** Nun das Paket um einfachst Fussnoten eingeben zu können.
+       (use-package footnote
+         :commands (footnote-mode)
+         :config
+         (setq footnote-body-tag-spacing 1
+               footnote-spaced-footnotes nil
+               footnote-style 'numeric-latin
+               footnote-section-tag "Footnotes:"))
+       (add-hook 'message-mode-hook 'footnote-mode))
+
+     (use-package mml-sec
+       :commands (sign-or-crypt)
+       :config
+       (progn
+         (setq mm-verify-option 'always)
+         ;; Keine extra Signatur erzeugen.
+         (mml-signencrypt-style "pgpmime" 'combined)
+         (setq mml-secure-openpgp-sign-with-sender 't)
+         (setq gpg-unabbrev-trust-alist
+               '(("TRUST_UNDEFINED" . trust-undefined)
+                 ("TRUST_NEVER"     . trust-none)
+                 ("TRUST_MARGINAL"  . trust-marginal)
+                 ("TRUST_FULLY"     . trust-full)
+                 ("TRUST_ULTIMATE"  . trust-ultimate)))
+         ))
+     (add-hook 'message-setup-hook 'sign-or-crypt)
+     ))
  #+END_SRC
 ** CANCELLED mingus                                              :CANCELLED:
 CLOSED: [2017-08-26 Sat 15:18]
@@ -4404,17 +4454,346 @@ CLOSED: [2017-08-26 Sat 15:18]
  #+END_SRC
 ** notmuch
  [2016-10-24 Mon 18:18]
- Nice email search
+ Nice email search and interface
  #+BEGIN_SRC emacs-lisp
  (use-package notmuch
    :ensure t
-   :defer t
    :commands (notmuch)
+   :bind (("C-c n" . notmuch)
+          :map notmuch-show-mode-map
+          ("C-c C-c" . lld-notmuch-goto-message-in-gnus)
+          :map notmuch-common-keymap
+          ("G" . nil)
+          ("s" . nil)
+          :map notmuch-show-mode-map
+          ("C-c C-c" . lld-notmuch-goto-message-in-gnus)
+          )
+   :init
+   (progn
+     (after 'notmuch
+       (jj-init-theme)))
    :config
    (progn
      (validate-setq notmuch-search-oldest-first nil)
+
+     (setq smtpmail-default-smtp-server "localhost")
+
+     (setq notmuch-search-oldest-first nil)
+     (setq notmuch-search-result-format
+           '(("date" . "%12s ")
+             ("count" . "%7s ")
+             ("authors" . "%-30s ")
+             ("subject" . "%s ")
+             ("tags" . "(%s)")
+             ))
+     (setq notmuch-hello-thousands-separator ".")
+     (setq notmuch-tree-show-out t)
+     (setq notmuch-always-prompt-for-sender t)
+     (setq notmuch-crypto-process-mime t)
+     (setq notmuch-fcc-dirs
+           (quote
+            ((".*@nsb-software.de" . "nsb/.Sent")
+             ("da-manager@debian.org" . "ganneff/.Sentmail.DAM")
+             (".*" . "ganneff/.Sentmail"))))
+
+     (setq notmuch-message-headers (quote ("Subject"
+                                           "To"
+                                           "Cc"
+                                           "Bcc"
+                                           "Date"
+                                           "^Followup-To"
+                                           "Mail-Followup-To"
+                                           "Reply-To"
+                                           "^Organization"
+                                           "^Summary"
+                                           "^Keywords"
+                                           "^Posted-To"
+                                           "^Mail-Copies-To"
+                                           "^Apparently-To"
+                                           "^X-Gnus-Warning"
+                                           "^Resent-From"
+                                           "^X-Spam-Status"
+                                           "^X-Sent"
+                                           "^X-Mailer"
+                                           "^X-Newsreader"
+                                           "^X-User-Agent"
+                                           "^User-Agent" )))
+
+     (setq notmuch-show-all-tags-list t)
+     (setq notmuch-show-mark-read-tags (list "-unread" "-inbox"))
+
+     (setq notmuch-saved-searches '(
+                                    (         :name "Nagios"                :query "from:nagios@ AND tag:unread")
+                                    (         :name "Debian BTS"            :query "from:@bugs.debian.org AND tag:unread")
+                                    (         :name "FTPMaster"             :query "from:ftpmaster@ftp-master.debian.org AND tag:unread")
+                                    (         :name "Mirror logs"           :query "from:archvsync@* AND tag:mirrors AND tag:logs AND tag:unread")
+                                    (         :name "Cron"                  :query "from:cron@ AND tag:unread")
+                                    (         :name "List Admin"            :query "subject:moderator request AND tag:unread")
+                                    (:key "i" :name "Inbox Ganneff"         :query "(tag:inbox AND tag:ganneff) AND NOT (tag:lists)")
+                                    (         :name "Inbox NSB"             :query "tag:inbox AND tag:nsb")
+                                    (         :name "Inbox All"             :query "tag:inbox")
+                                    (:key "n" :name "New Mail"              :query "tag:new" )
+                                    (:key "u" :name "Unread All"            :query "tag:unread")
+                                    (         :name "Unread NSB"            :query "tag:unread AND tag:nsb")
+                                    (         :name "Unread Ganneff"        :query "tag:unread AND tag:ganneff AND NOT ( \
+                                                          ( from:gitlab@salsa.debian.org AND subject:dak ) OR \
+                                                          ( ( tag:planet OR tag:kommerz OR from:cron@ OR from:archvsync@* OR \
+                                                              from:ftpmaster@ftp-master.debian.org OR from:nagios@ OR from:@bugs.debian.org \
+                                                              OR tag:lists/* ) )")
+                                    (:key "f" :name "Flagged"               :query "tag:flagged")
+                                    (:key "s" :name "Sent Ganneff"          :query "tag:sent AND tag:ganneff")
+                                    (         :name "Sent NSB"              :query "tag:sent AND tag:nsb")
+                                    (:key "g" :name "NSB GF"                :query "tag:nsb AND tag:gf AND tag:unread")
+                                    (:key "f" :name "Important"             :query "tag:important")
+                                    (:key "t" :name "TODO"                  :query "tag:todo")
+                                    (:key "k" :name "Kommerz"               :query "tag:kommerz AND tag:unread")
+                                    (:key "d" :name "DA-Manager"            :query "to:da-manager@debian.org AND (tag:todo OR tag:unread)")
+                                    (         :name "Planet Debian"         :query "to:planet@debian.org AND tag:unread")
+                                    (         :name "Kommerz"               :query "tag:Kommerz AND (tag:unread OR tag:inbox OR tag:flagged)" :sort-order oldest-first)
+                                    (         :name "Van Hien"              :query "from:nguyen@nsb-software.de OR from:info@nsb-software.de OR \
+                                                                                         from:van-hien.nguyen@dlh.de OR from:van-hien.nguyen.sp@dlh.de \
+                                                                                         OR (tag:sent AND ( to:nguyen@nsb-software.de OR to:info@nsb-software.de OR \
+                                                                                         to:van-hien.nguyen@dlh.de OR to:van-hien.nguyen.sp@dlh.de ) )")
+                                    (         :name "D-Devel-Announce"      :query "tag:lists/debian-devel-announce and tag:unread")
+                                    (         :name "D-Devel"               :query "tag:lists/debian-devel and tag:unread")
+                                    (         :name "D-Project"             :query "tag:lists/debian-project and tag:unread")
+                                    (         :name "D-Private"             :query "tag:lists/debian-private and tag:unread")
+                                    (         :name "O-Staff"               :query "tag:lists/oftc-staff and tag:unread")
+                                    (         :name "O-Noc"                 :query "tag:lists/oftc-noc and tag:unread")
+                                    (         :name "LugFD"                 :query "tag:lists/lugfd and tag:unread")
+                                    (         :name "Gitlab Dak"            :query "from:gitlab@salsa.debian.org AND subject:dak and tag:unread")
+                                    (         :name "TODO"                  :query "tag:TODO")
+                                    (:key "2" :name "Unread 2weeks"         :query "date:2weeks...today AND tag:unread")
+                                    (         :name "Dienstpläne"           :query "date:4weeks...today AND tag:dienstplan")
+                                    (:key "m" :name "To me"                 :query "tag:to-me")
+                                    (:key "l" :name "Lists"                 :query "tag:lists AND tag:unread")
+                                    (         :name "Hetzner Support"       :query "from:support@hetzner.com AND tag:unread")
+                                    (         :name "SPAM"                  :query "folder:ganneff/.SPAM AND tag:spam")
+                                         ;                                        (:key "a" :name "all mail"              :query "*")
+                                    ))
+
+     (setq notmuch-search-line-faces
+           (quote
+            (("deleted" :foreground "tomato")
+             ("unread" :weight bold)
+             ("flagged" :foreground "wheat"))))
+
+     (setq notmuch-show-insert-text/plain-hook
+           (quote
+            (notmuch-wash-convert-inline-patch-to-part notmuch-wash-tidy-citations
+                                                       notmuch-wash-elide-blank-lines
+                                                       notmuch-wash-excerpt-citations
+                                                       )))
+
+     (setq notmuch-tagging-keys '(("a" notmuch-archive-tags "Archive")
+                                  ("u" notmuch-show-mark-read-tags "Mark read")
+                                  ("f" ("+flagged") "Flag")
+                                  ("s" ("+spam" "-inbox" "-unread" "-learnham") "Mark as spam")
+                                  ("d" ("+deleted" "-inbox" "-unread") "Delete")))
+
+     (defun jj-forward (prefix)
+       (interactive "P")
+       (let ((message-forward-as-mime nil))
+         (notmuch-show-forward-open-messages prefix)))
+     (define-key notmuch-show-mode-map "F" 'jj-forward)
+     (define-key notmuch-show-mode-map "f" 'notmuch-show-forward-message)
+
+                                         ; Toggle deleted tag on a message in search/show
+     (define-key notmuch-search-mode-map "d"
+       (lambda ()
+         "toggle deleted tag for message"
+         (interactive)
+         (if (member "deleted" (notmuch-search-get-tags))
+             (notmuch-search-tag (list "-deleted"))
+           (notmuch-search-tag (list "+deleted" "-unread" "-inbox")))
+         (next-line)))
+     (define-key notmuch-show-mode-map "d"
+       (lambda ()
+         "toggle deleted tag for message"
+         (interactive)
+         (if (member "deleted" (notmuch-show-get-tags))
+             (notmuch-show-tag (list "-deleted"))
+           (notmuch-show-tag (list "+deleted" "-unread" "-inbox")))
+         (notmuch-show-next-open-message-or-pop)))
+
+                                         ; Toggle spam tag on a message in search/show
+     (define-key notmuch-search-mode-map "s"
+       (lambda ()
+         "toggle spam tag for message"
+         (interactive)
+         (if (member "spam" (notmuch-search-get-tags))
+             (notmuch-search-tag (list "-spam" "+learnham"))
+           (notmuch-search-tag (list "+spam" "-unread" "-inbox")))
+         (next-line)))
+     (define-key notmuch-show-mode-map "s"
+       (lambda ()
+         "toggle spam tag for message"
+         (interactive)
+         (if (member "spam" (notmuch-show-get-tags))
+             (notmuch-show-tag (list "-spam" "+learnham"))
+           (notmuch-show-tag (list "+spam" "-unread" "-inbox")))
+         (notmuch-show-next-open-message-or-pop)))
+     (define-key notmuch-tree-mode-map "s"
+       (lambda ()
+         "toggle spam tag for message"
+         (interactive)
+         (if (member "spam" (notmuch-tree-get-tags))
+             (notmuch-tree-tag (list "-spam" "+learnham"))
+           (notmuch-tree-tag (list "+spam" "-unread" "-inbox")))
+         (next-line)))
+
+                                         ; Toggle learnham tag on a message in search/show
+     (define-key notmuch-search-mode-map "h"
+       (lambda ()
+         "toggle learnham tag for message"
+         (interactive)
+         (if (member "learnham" (notmuch-search-get-tags))
+             (notmuch-search-tag (list "-learnham"))
+           (notmuch-search-tag (list "+learnham" "-spam")))
+         (next-line)))
+     (define-key notmuch-show-mode-map "h"
+       (lambda ()
+         "toggle learnham tag for message"
+         (interactive)
+         (if (member "learnham" (notmuch-show-get-tags))
+             (notmuch-show-tag (list "-learnham"))
+           (notmuch-show-tag (list "+learnham" "-spam")))
+         (notmuch-show-next-open-message-or-pop)))
+
+     (define-key notmuch-search-mode-map "u"
+       (lambda ()
+         "toggle unread tag for message"
+         (interactive)
+         (if (member "unread" (notmuch-search-get-tags))
+             (notmuch-search-tag (list "-unread" "-inbox"))
+           (notmuch-search-tag (list "+unread")))
+         (next-line)))
+     (define-key notmuch-show-mode-map "u"
+       (lambda ()
+         "toggle unread tag for message"
+         (interactive)
+         (if (member "unread" (notmuch-show-get-tags))
+             (notmuch-show-tag (list "-unread" "-inbox"))
+           (notmuch-show-tag (list "+unread")))
+         (notmuch-show-next-open-message-or-pop)))
+
+     (define-key notmuch-search-mode-map "k"
+       (lambda ()
+         "mark a thread killed"
+         (interactive)
+         (if (member "killed" (notmuch-search-get-tags))
+             (notmuch-search-tag (list "-killed"))
+           (notmuch-search-tag (list "+killed" "-inbox" "-unread")))
+         (next-line)))
+     (define-key notmuch-show-mode-map "k"
+       (lambda ()
+         "toggle killed tag for message"
+         (interactive)
+         (if (member "killed" (notmuch-show-get-tags))
+             (notmuch-show-tag (list "-killed"))
+           (notmuch-show-tag (list "+killed" "-inbox" "-unread")))
+         (notmuch-show-next-open-message-or-pop)))
+
+                                         ;  resend the current message in show mode.
+     (define-key notmuch-show-mode-map "b"
+       (lambda (&optional address)
+         "Bounce the current message."
+         (interactive "sBounce To: ")
+         (notmuch-show-view-raw-message)
+         (message-resend address)
+         (kill-buffer)))
+
+     ;; add unread tree command
+     (defun my-notmuch-tree-tag-thread-read ()
+       "Mark whole tree as read"
+       (interactive)
+       (notmuch-tree-tag-thread (list "-unread" "-inbox"))
+       (notmuch-tree-refresh-view))
+     (bind-key "." 'my-notmuch-tree-tag-thread-read notmuch-tree-mode-map)
+     (bind-key "C-c C-d" 'notmuch-draft-postpone message-mode-map)
+
      (use-package counsel-notmuch
-      :ensure t)))
+       :ensure t)
+
+     (use-package gnus-alias
+       :ensure t
+       :commands (gnus-alias-determine-identity)
+       :hook ((message-setup . gnus-alias-determine-identity))
+       :bind (:map notmuch-message-mode-map
+                   ("C-c i" . gnus-alias-select-identity))
+       :config
+       (progn
+         (setq gnus-alias-default-identity "default")
+         (setq gnus-alias-overlay-identities t)
+         (setq gnus-alias-override-user-mail-address t)
+         (setq gnus-alias-identity-alist
+               '(("default"
+                  nil ;; Does not refer to any other identity
+                  "Joerg Jaspert <joerg@ganneff.de>" ;; From Header
+                  "Ganneff.de" ;; Organization header
+                  (("Fcc" . "ganneff/.Sentmail")) ;; List of extra headers
+                  nil ;; No extra body text
+                  "bye, Joerg" ;; Signature
+                  )
+                 ("Pei-Hua"
+                  "default"
+                  "Joerg (悠軻) Jaspert <joerg@debian.org>"
+                  nil
+                  nil
+                  nil
+                  "bye, Joerg")
+                 ("NSBJoerg"
+                  nil ;; Not referencing another identity
+                  "Joerg Jaspert <joerg@nsb-software.de>"
+                  "NSB Nguyen Softwareentwicklung & beratung GmbH"
+                  (("Fcc" . "nsb/.Sent")) ;; One extra header
+                  nil ;; No extra body text
+                  "~/.signature.nsb")
+                 ("NSBGF"
+                  "NSBJoerg"
+                  "Joerg Jaspert <gf@nsb-software.de>"
+                  "NSB Nguyen Softwareentwicklung & beratung GmbH"
+                  (("Fcc" . "nsb/.Sent")) ;; One extra header
+                  nil
+                  "~/.signature.nsb"
+                  )
+                 ("Debian"
+                  nil
+                  "Joerg Jaspert <joerg@debian.org>"
+                  nil
+                  (("Fcc" . "ganneff/.Sentmail"))
+                  nil
+                  "bye, Joerg")
+                 ("DebianPrivate"
+                  "Debian"
+                  nil
+                  nil
+                  nil
+                  nil
+                  "~/.signature.private"
+                  )
+                 ("DebianDAM"
+                  "Debian"
+                  "Joerg Jaspert <da-manager@debian.org>"
+                  nil
+                  (("Fcc" . "ganneff/.Sentmail.DAM")
+                   ("Reply-To" . "Debian Account Managers <da-manager@debian.org>"))
+                  nil
+                  "bye, Joerg")
+                 ))
+
+         (setq gnus-alias-identity-rules '(("Personal" ("to" ".*@ganneff.de" both) "default")
+                                           ("Pei-Hua" ("to" "sab.tseng@gmail.com" both) "Pei-Hua")
+                                           ("NSB GF" ("any" "gf@nsb-software.de" both) "NSBGF")
+                                           ("NSB" ("any" ".*@nsb-software.de" both) "NSBJoerg")
+                                           ("DebianDAM" ("any" "da-manager@debian.org" both) "DebianDAM")
+                                           ("DebianPrivate" ("to" "debian-private@lists.debian.org" both) "DebianPrivate")
+                                           ("DebianLists" ("to" ".*@lists.debian.org" both) "Debian")
+                                           ("Debian" ("any" "joerg@debian.org" both) "Debian")
+                                           )))
+       )
+
+     ))
  #+END_SRC
 ** nxml
  [2013-05-22 Wed 22:02]
index f16d568..c6e0f8c 100644 (file)
 ;;** Scheiss, ich lese die Listen mit wo ich schreibe !
 ;;;###autoload
 (defun my-message-header-setup-hook ()
-  (let ((group (or gnus-newsgroup-name "")))
-    (when (or (message-fetch-field "newsgroups")
-             (gnus-group-find-parameter group 'to-address)
-             (gnus-group-find-parameter group 'to-list))
-      (insert "Mail-Copies-To: never\n"))))
+  (my-message-add-content)
+  (september-citation-line))
 
 
 ;;** Automagisch neue Mail/News holen.