;;* From:-Zeile einstellen
;; ist jetzt in .emacs: (setq user-mail-address "loescher@gmx.de")

;;* So gefällt mir das Summary besser
(setq gnus-summary-line-format "%U%R%z%I%(%-52,52s %[%n%]%)\n")

;;* Threads sollen markiert werden
(setq gnus-summary-same-subject "->")

;;* Quotes (citations) sollen farblich hervorgehoben werden
(add-hook 'gnus-article-display-hook 'gnus-article-highlight-citation t)

;;* "d=E9j=E0vu" => "déjàvu"
(add-hook 'gnus-article-display-hook 'gnus-article-de-quoted-unreadable t)

;;* Smileys als Grafik anzeigen :-)
(add-hook 'gnus-article-display-hook 'gnus-smiley-display t)

;;* Bessere Farben für die Quotes (citations)
;; Rot, Grün, Blau, Khaki, Violett
;; altes Gnus: (setq gnus-cite-face-list '(custom-face-OrangeRed-default-default-nil-nil-nil custom-face-ForestGreen-default-default-t-nil-nil custom-face-RoyalBlue-default-default-t-nil-nil custom-face-dark\ khaki-default-default-nil-nil-nil custom-face-dark\ violet-default-default-nil-nil-nil))
(setq gnus-cite-face-list '(gnus-cite-face-4 gnus-group-news-1-face blue gnus-cite-face-5 gnus-cite-face-8 gnus-cite-face-1 gnus-cite-face-2 gnus-cite-face-3 gnus-cite-face-4 gnus-cite-face-6 gnus-cite-face-7 gnus-cite-face-9 gnus-cite-face-10 gnus-cite-face-11))

;;* Das Summary-Window soll 40% der Fläche einnehmen
(gnus-add-configuration
 '(article (vertical 1.0
		     (summary .40 point)
		     (article 1.0)
		     )
	   )
 )

;;* Mich interessieren nur diese Header:
(setq gnus-visible-headers "^From:\\|^Subject:\\|^Newsgroups:\\|^To:\\|^Cc:\\|^Date:\\|^Followup-To:")

;;* Wenn Crosspostings nicht überall als gelesen markiert werden
;; http://www.ccs.neu.edu/software/contrib/gnus/#Q3_6
;; Abhilfe: (nicht nötig bei Inn unter Linux)
;; (setq nntp-nov-is-evil t)

;;* XFaces anzeigen
(add-hook 'gnus-article-display-hook 'gnus-article-display-x-face t)
(setq gnus-article-x-face-command 'gnus-xmas-article-display-xface)

;;* Hervorhebungen (Unterstrichen und Fett bei "_X_" und "*X*")
(add-hook 'gnus-article-display-hook 'gnus-article-emphasize t)

;;* Auf hellem Hintergrund den X-Face Hintergrund auch hell schalten
(if (featurep 'xface)
    (set-face-background 'gnus-x-face (face-background 'default)))

;;* Rückfrage nur bei mehr als 1000 Artikeln
(setq gnus-large-newsgroup 1000)

;;* X-Face
;; Man erstellt ein schwarz-/weisses Bild mit 48x48 Pixel (ich-48.xbm)
;; xbm2xface.pl ich-48.xbm > ~/.xface
;; (http://www.loescher-online.de/tipsdata/xbm2xface.pl)

;; Funktion, die mein X-Face einfügt (für XEmacs 20.4)
;;        (defun xface-insert ()
;;          (nnheader-temp-write nil
;;            (insert-file-contents "~/.xface")
;;            (buffer-string)))
;;        (require 'message)
;;        (setq message-required-news-headers
;;        	(nconc message-required-news-headers
;;        	       (list '(X-Face . xface-insert))))
;;        (setq message-required-mail-headers
;;        	(nconc message-required-mail-headers
;;        	       (list '(X-Face . xface-insert))))

(defvar gnus-x-face-file (expand-file-name "~/.xface"))
(defun message-insert-x-face ()
  (save-excursion
    (goto-char (point-min))
    (search-forward mail-header-separator)
    (beginning-of-line nil)
    (insert "X-Face: ")
    (insert-file gnus-x-face-file)))
(add-hook 'message-send-hook 'message-insert-x-face)

;;* Mail verwenden
(setq gnus-secondary-select-methods
      '((nnml "private")))

;;* Mail in verschiedene Gruppen filtern
(setq nnmail-split-methods 'nnmail-split-fancy)
(setq nnmail-split-fancy 
      '(|
	;; Spam
;;	("Received" "from unknown"              "Spam")
	;; Spam mit speziellem Zeichensatz
	("content-type" "text/html; charset=.ks_c_5601-1987." "Spam")
	("subject" "\\[\\±\\¤\\°\\í\\].*"                     "Spam")
	("subject" "\\[\\¼\\º\\À\\Î\\±\\¤\\°\\í\\].*"         "Spam")
	("subject" "\\(\\±\\¤\\°\\í\\).*"                     "Spam")
	;; LEO-Feedback
	("subject" ".*msdos .* LEO Feedback"   "LEO-Feedback")
	("subject" ".*devices .* LEO Feedback" "LEO-Feedback")
	;; LEO allgemein
	("to"      "msdos@leo.org"             "LEO")
	("cc"      "msdos@leo.org"             "LEO")
	("to"      "windos@leo.org"            "LEO")
	("cc"      "windos@leo.org"            "LEO")
	("to"      "devices@leo.org"           "LEO")
	("cc"      "devices@leo.org"           "LEO")
	("to"      "win95@leo.org"             "LEO")
	("cc"      "win95@leo.org"             "LEO")
	("to"      "windows95@leo.org"         "LEO")
	("cc"      "windows95@leo.org"         "LEO")
	("to"      "leo-admin@leo.org"         "LEO")
	("cc"      "leo-admin@leo.org"         "LEO")
	("to"      "ftp-admin@leo.org"         "LEO")
	("cc"      "ftp-admin@leo.org"         "LEO")
	("to"      "staff@leo.org"             "LEO")
	("cc"      "staff@leo.org"             "LEO")
	("subject" "MOMspider Index for Windows" "LEO")
	;; FH-Fachschaft
	("to"      "htmlgroup@fachschaft.informatik.fh-muenchen.de"
	 "FH-Fachschaft")
	("cc"      "htmlgroup@fachschaft.informatik.fh-muenchen.de"
	 "FH-Fachschaft")
	;; Cron-Meldungen
	("to"      "root@sl\\.sl\\.de"                             "Cron")
	("to"      "news@sl\\.sl\\.de"                             "Cron")
	("to"      "root@michi\\.sessel\\.de"                      "Cron")
	("to"      "loescher@michi\\.sessel\\.de"                  "Cron")
	("to"      "usenet@michi\\.sessel\\.de"                    "Cron")
	("to"      "faxadmin@sl\\.sl\\.de"                         "Cron")
	("subject" "OK: your fax to .*"                            "Cron")
        ;; AGIS-Root-Mails
        ("to"      "root"                                          "Root")
        ("to"      "root@.*"                                       "Root")
        ("to"      "bislok@.*"                                     "Root")
        ("to"      "ssa_adm@.*"                                    "Root")
        ("to"      "daemon@.*"                                     "Root")
        ("to"      "postmaster@.*"                                 "Root")
        ("to"      "adsm@.*"                                       "Root")
        ("to"      "nuucp@.*"                                      "Root")
        ("to"      "MAILER-DAEMON@t.*"                             "Root")
        ("to"      "Mail Delivery Subsystem"                       "Root")
        ("to"      "lms@.*"                                        "Root")
	;; Mail direkt an mich
        ("to"      "loescher.*"                                    "Mail")
        ("cc"      "loescher.*"                                    "Mail")
        ("to"      ".*\\.informatik\\.tu-muenchen\\.de"            "Mail")
        ("cc"      ".*\\.informatik\\.tu-muenchen\\.de"            "Mail")
	("to"      "ifw94018@informatik\\.fh-muenchen\\.de"        "Mail")
	("to"      "announce@billiger-telefonieren\\.de"           "Mail")
	("to"      "8t@fachschaft\\.informatik\\.fh-muenchen\\.de" "Mail")
	("to"      "members@gmx\\.net"                             "Mail")
	("to"      "g0014.*"                                       "Mail")
	;; Mail an mich über smml@gmx.de
	("to"      "smml@gmx.de"                                   "SMML")
	;; ALSA-Mailingliste
	("x-from-line" "alsa-user-owner@alsa\\.alsa-project\\.org.*" "ALSA")
	("to"          "alsa-user@alsa-project\\.org.*"              "ALSA")
	("reply-to"    "alsa-user@alsa-project\\.org"                "ALSA")
	("sender"      "alsa-user-owner@alsa\\.alsa-project\\.org"   "ALSA")
	;; swsusp-Mailingliste
	("to"          "swsusp@lister\\.fornax\\.hu"                 "swsusp")
	("to"          "swsusp@listserv\\.elte\\.hu"                 "swsusp")
	("cc"          "swsusp@lister\\.fornax\\.hu"                 "swsusp")
	("cc"          "swsusp@listserv\\.elte\\.hu"                 "swsusp")
	;; aic7xxx- und linux-scsi-Mailingliste
	("to"      "aic7xxx@.*"                                   "Linux-SCSI")
	("to"      "linux-scsi@.*"                                "Linux-SCSI")
	("to"      "linux-kernel@.*"                              "Linux-SCSI")
	("cc"      "aic7xxx@.*"                                   "Linux-SCSI")
	("cc"      "linux-scsi@.*"                                "Linux-SCSI")
	("cc"      "linux-kernel@.*"                              "Linux-SCSI")
	;; VDR-Mailingliste
	("to"      "vdr@linuxtv.org"                              "VDR")
	("cc"      "vdr@linuxtv.org"                              "VDR")
	;; der Rest ist Spam
	"Spam"
	)
      )

;;* Mail-Aliasing geht mit Alias-Definitionen in ~/.mailrc derart:
;; alias  loescher  "Stephan Loescher <loescher@gmx.de>"
;; alias  xxx       xyz@abc.de
;; ...

;;* Mime anzeigen
;; (setq gnus-show-mime t)

;;* Kopien aller Mails/News speichern
(setq gnus-message-archive-group
      '((if (message-news-p)
	    "misc-news"
	  "misc-mail")))

;;* Meinen eigenen Artikeln einen höheren Score geben
(add-hook 'message-sent-hook '(lambda () (gnus-score-followup-article 10000)))
(add-hook 'message-sent-hook '(lambda () (gnus-score-followup-thread  10000)))

;;* Integration von PGP, mailcrypt laden
;; Version des PGO für Mailcrypt festlegen
(load "mailcrypt")
;; (mc-setversion "5.0")
(cond ((fboundp 'mc-setversion) (mc-setversion "5.0")) )
(autoload 'mc-install-write-mode "mailcrypt" nil t)
(autoload 'mc-install-read-mode "mailcrypt" nil t)
(add-hook 'message-mode-hook 'mc-install-write-mode)
(setq mc-encrypt-for-me t
      mc-passwd-timeout 6000
      mc-always-replace 'never)
;; mailcrypt für Gnus einstellen
(add-hook 'gnus-summary-mode-hook 'mc-install-read-mode)
(define-key message-mode-map      [f7] 'mc-sign)
(define-key message-mode-map      [f8] 'mc-encrypt)
(define-key gnus-summary-mode-map [f7] 'mc-verify)
(define-key gnus-summary-mode-map [f8] 'mc-decrypt)

;;* nnir: Das Interface zu glimpse
(setq nnir-mail-backend gnus-select-method)
(setq nnir-search-engine 'glimpse)
(setq nnir-glimpse-home "/glimpse/news-all/")
(setq nnir-glimpse-remove-prefix "/var/spool/news/")
(if (locate-library "nnir")
    (load "nnir"))

;;* Das ist ein Bugfix, da man sonst keinen Wide-Reply machen kann.
(load "gnus-msg")

;;* Expire-Zeit auf 30 Tage setzen
(setq message-expires 30)

;;* Ich will kein HTML sehen, sondern nur Buttons dafür
(setq mm-discouraged-alternatives
      '("text/html"
        "text/richtext"))
(setq mm-inline-override-types
      '("text/html"
        "text/richtext"))

;; ----------------------------------------------------------------------
;;* Ab hier noch Test-Phase
;; ----------------------------------------------------------------------

;; (setq gnus-signature-limit 6.0)   ;; ".0" ist wichtig... -> gnus-art.el)

;;* Meine eigenen Artikel als "Ticked" markieren
(setq gnus-summary-tick-article-forward
      (mapconcat 'regexp-quote '("Stephan Loescher"
				 "loescher@gmx.de")
				 "\\|"))

;; Man kann die folgende "file"-Methode durch eine "pop"-Methode ersetzen
;; und damit von 2 POP-Servern Mails abholen.
;;
;; (setq mail-sources
;; 	 '((file :path "/var/spool/mail/user-name")
;; 	   (pop :server "pop3.mail.server"
;; 		:user "user-name"
;; 		:port "pop3"
;; 		:password "secret")))


;; Gnus je nach newsgruppe/Mailgruppe anders umschalten:
;; 
;; ;; Andere FROM-Zeile bei OPS:
;; (setq gnus-posting-styles
;; 	 '((".*"
;; 	   (signature-file "~/.signature")
;; 	    (name "Andreas Graef"))
;; 	  (".*?OPS"
;; 	   (signature-file "~/.signature_work")
;; 	    (name "Andreas Graef")
;; 	    (address "Andreas.Graef@ops.de"))
;; 	  ((message-news-p)
;; 	    (signature-file "~/.signature_news"))
;; ))
;; 
;; Ob allerdings der .*?OPS so richtig matcht in allen faellen ....

