Gnus

Gnus es el lector de email y noticias de Emacs. Lo cierto es que es algo dificil de configurar, pero nada que no se pueda resolver leyendo la extensa documentación que viene con Emacs. Puedes configurar los colores, las asignaciones de teclas, el sumario de mensajes, etc. Puedes es el aspecto que tiene Gnus leyendo el grupo comp.emacs aquí.

Mi archivo .gnus

;;; Configuración general
(setq mail-sources '((pop :server "pop3.example.com"
                      :user "me"
                      :password "foo")))

(setq gnus-select-method '(nnfolder "Inbox"
                           (nnfolder-directory "~/Mail/")
                           (nnfolder-get-new-mail t)
                           (nnfolder-inhibit-expiry t))
      ;; skar es un servidor local con leafnode
      gnus-secondary-select-methods '((nntp "skar" (nntp-address "skar")))
      gnus-secondary-servers '(("skar" nntp "skar" (nntp-address "skar")))
      gnus-message-archive-group '((if (message-news-p) "News" "Outbox"))
      gnus-message-archive-method '(nnfolder "Outbox"
                                    (nnfolder-directory "~/Mail/")
                                    (nnfolder-get-new-mail nil)
                                    (nnfolder-inhibit-expiry t))
      nnmail-split-methods '(("Inbox" ""))
      nnmail-treat-duplicates nil)

;;; Variables personalizadas
(setq gnus-use-cache t
      gnus-save-newsrc-file nil
      nntp-connection-timeout 5
      mail-source-delete-incoming t
      gnus-read-active-file nil ; lee el fichero de grupos del servidor
      gnus-save-killed-list t ; guarda los nombres de los grupos
      gnus-check-new-newsgroups nil
      gnus-auto-select-first nil
      gnus-keep-backlog 50
      gnus-large-newsgroup 500
      gnus-asynchronous t
      gnus-use-article-prefetch 500
      gnus-use-adaptive-scoring t
      gnus-home-adapt-file "adapt.SCORE"
      gnus-home-score-file "all.SCORE"
      gnus-thread-indent-level 2
      headers-list '("From:" "Organization:" "Newsgroups:"
                     "X-Mailer" "X-Newsreader:" "User-Agent:")
      gnus-visible-headers    headers-list
      gnus-sorted-header-list headers-list
      gnus-group-line-format "%M%S%P%8y: %(%-40G%) %2{%d%} %l \n"
      gnus-summary-line-format
      "%U%R%z: %2{%d%} %3{%[%4L%]%} %1{%-18,18n%} %4{%ua%} %(%I%-50,50s%)\n"
      gnus-summary-same-subject "+->"
      gnus-server-line-format "   {%(%h:%w%)} %s - %n\n"
      gnus-permanently-visible-groups "Inbox\\|Outbox\\|News")

;; Message variables
(setq message-kill-buffer-on-exit t
      message-cite-function 'message-cite-original-without-signature)

(add-hook 'gnus-article-mode-hook '(lambda () (setq truncate-lines nil)))
(add-hook 'message-mode-hook
          (lambda () (auto-fill-mode 1) (setq fill-column 60)))
(add-hook 'gnus-save-quick-newsrc-hook
          (lambda () (set (make-local-variable 'backup-inhibited) t)))

;;; Teclas 
(add-hook 'gnus-summary-mode-hook
          '(lambda ()
            (local-set-key "v" 'gnus-summary-catchup-and-goto-next-group)
            (local-set-key [?\C-x ?i] 'delete-other-windows)
            (local-set-key [up] '(lambda ()
                                  (interactive)
                                  (when (> (count-windows) 1)
                                    (delete-other-windows))
                                  (previous-line 1)))
            (local-set-key [down] '(lambda ()
                                    (interactive)
                                    (when (> (count-windows) 1)
                                      (delete-other-windows))
                                    (next-line 1)))
            (local-set-key [\C-return] '(lambda ()
                                         (interactive)
                                         (gnus-summary-next-page)))))

;; Esta función se usa gnus-summary-line-format
(defun gnus-user-format-function-a (header)
  (let ((myself "<u[0-9a-z]+\\.fsf@terra.es>")
        (references (mail-header-references header))
        (message-id (mail-header-id header)))
    (if (or (and (stringp references)
                 (string-match myself references))
            (and (stringp message-id)
                 (string-match myself message-id)))
        "X" "|")))

;;; Colores usados en summary-mode-line
(copy-face 'default 'face-1)
(set-face-foreground 'face-1 "steelblue")
(setq gnus-face-1 'face-1)

(copy-face 'default 'face-2)
(set-face-foreground 'face-2 "lime green")
(setq gnus-face-2 'face-2)

(copy-face 'default 'face-3)
(set-face-foreground 'face-3 "pink")
(setq gnus-face-3 'face-3)

(copy-face 'default 'face-4)
(set-face-foreground 'face-4 "firebrick")
(setq gnus-face-4 'face-4)

(copy-face 'default 'face-5)
(set-face-foreground 'face-5 "wheat")
(setq gnus-summary-high-unread-face 'face-5)