;; -*- emacs-lisp -*-
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; $Id: gnus_archive.el,v 1.13 2006-11-06 21:02:42 rscholz Exp $
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;; Archivierung gesendeter Mails und Postings
;;
;; Die offizielle Quelle dieser Datei ist
;;   <http://www.zonix.de/projects/emacs/config>
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Archivierung               (Info-goto-node "(Gnus)Archived Messages")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


;; archivierte Mails / Postings automatisch als gelesen markieren
(setq gnus-gcc-mark-as-read t)

;;(setq gnus-inews-mark-gcc-as-read t) ; alter Name in Gnus < 5.10


;; Attachments in archivierten Postings als Link auf die Originaldatei
;; (ab Gnus 5.10)
;(setq gnus-gcc-externalize-attachments t)


;; Vorsicht: folgende Archivierungsmethode ist vermutlich ein Hack, da
;; sie so nicht im Gnus-Manual dokumentiert ist und auf einigen
;; Annahmen basiert, die sich in neueren Gnus-Versionen wieder ändern
;; können.

;; Prinzip:

;; 1. Es wird über `message-default-mail-headers'
;;    bzw. `message-default-news-headers' ein Gcc-Header eingesetzt,
;;    der nach Art (Mail/News), Ort (von welchem System gepostet) und
;;    Zeit (Jahr) den Artikel speichert.
;;
;;    Die Folge ist, dass _immer_ ein Gcc-Header gesetzt wird, der die
;;    Mail oder das Newsposting in einem Folder nach Jahr und Rechner
;;    archiviert.
;;
;; 2. Die Variable `gnus-message-archive-group', die eigentlich dafür
;;    vorgesehen ist, ist für Follow-Ups (boundp 'post) `nil',
;;    (d.h. in Newsgroups und Mailinglisten beim Antworten in die
;;    Gruppe bzw. an die Liste).  Andernfalls hat sie den Wert des
;;    Mailfolders, in dem private Antworten auf News und
;;    Mailinglistenbeiträge landen sollen ("mail.personal.other").
;;
;;    Die Folge ist, dass bei Replies (per Mail) auf Newspostings oder
;;    in Mailinglisten, meine Mail in einem speziellen Order für
;;    solche privaten Replies landet.
;;
;; 3. Zusätzlich ist der Gruppenparameter `gcc-self' für alle
;;    Mailgruppen (außer Mailinglisten) auf `t' gesetzt ist (via
;;    Topic, der alle Mailgruppen enthält), so dass Mails ebenfalls in
;;    diesen Foldern zusammen mit den Antworten archiviert werden.
;;
;;    Die Folge ist, dass bei privaten Mailgruppen meine Antworten
;;    auch wieder in der Gruppe landen.  Da der Gcc-Header aus Punkt
;;    1. _nicht_ ersetzt wird, werden Mails also in der aktuellen
;;    Mailgruppe und im allgemeinen Mail-Archiv gespeichert.

;; Andere Methode siehe <v9it2gxkhk.fsf@marauder.physik.uni-ulm.de>

(if (or (string-match "mde1\\.zonix\\.de" system-name)
        (string-match "hush\\.zonix\\.de" system-name))

     (progn
       (setq message-default-mail-headers
            (format-time-string "Gcc: nnimap:INBOX.sent.mail.home.%Y"))
       (setq message-default-news-headers
            (format-time-string "Gcc: nnimap:INBOX.sent.news.home.%Y"))

       ;; private Antworten in zusätzlichen Folder
       (setq gnus-message-archive-group
             '((unless (boundp 'post)
                 "nnimap:INBOX.mail.personal.other")
               nil))))

(if (or (string-match "mde6\\.zonix\\.de" system-name)
        (string-match "vaio\\.zonix\\.de" system-name))

     (progn
       (setq message-default-mail-headers
            (format-time-string "Gcc: nnimap:INBOX.sent.mail.mobil.%Y"))
       (setq message-default-news-headers
            (format-time-string "Gcc: nnimap:INBOX.sent.news.mobil.%Y"))

       ;; private Antworten in zusätzlichen Folder
       (setq gnus-message-archive-group
             '((unless (boundp 'post)
                 "nnmaildir:INBOX.mail.personal.other")
               nil))))

(if (string-match "\\.verified.de" system-name)
    
     (progn

       ;; Archivierung im nnfolder-Backend
;       (setq gnus-message-archive-method
;            '(nnfolder "archive"
;                       (nnfolder-inhibit-expiry t)
;                       (nnfolder-get-new-mail nil)
;                       (nnfolder-marks-is-evil t)
;                       (nnfolder-active-file "~/Mail/archive/active")
;                       (nnfolder-directory "~/Mail/archive/")))

       ;; Nachricht in lokalen Ordner und BCC nach Hause
       (setq message-default-mail-headers
             (concat (format-time-string "Gcc: nnimap+localhost:INBOX.sent.mail.verified.%Y")
;                    "\nBcc: home"
;                    "@" ;; Spam protected :)
;                    "zonix.de"
                     ))
       (setq message-default-news-headers
            (format-time-string "Gcc: nnimap+localhost:INBOX.sent.news.verified.%Y"))

       ;; private Antworten in zusätzlichen Folder
       (setq gnus-message-archive-group
             '((unless (boundp 'post)
                 "nnimap+localhost:INBOX.mail.personal.other")))))