This is my configuration for read and send email using Emacs. For email fetching, i use the `vm' elisp package. For email sending, i use the marvelous `smtpmail.el' that comes with GNU Emacs.

Main settings

;; Fichero de inicio
(setq vm-init-file nil) ; Prefiero aqui en .emacs

;; INBOX principal
(setq vm-primary-inbox "~/mail/inboxes/INBOX")

;; Archivar emails de salida
(setq mail-archive-file-name "~/mail/sent")

;; Borrar despues de archivar
(setq vm-delete-after-archiving t)
;; Borrar despues de salvar
(setq vm-delete-after-saving nil)

;; Puntero al programa stunnel
(setq vm-stunnel-program "/usr/sbin/stunnel")
;; Puntero al programa MD5
(setq vm-pop-md5-program "md5sum")

;; Colores

;; Header
(setq vm-highlighted-header-regexp ".*")
(setq vm-highlighted-header-face 'Info-title-2-face)

;; URLs
;(setq vm-highlight-url-face 'bui-button-face)

;; Color del summary seleccionado
(setq vm-summary-highlight-face 'show-paren-mismatch-face)

;; No obtener mensajes al iniciar
(setq vm-auto-get-new-mail nil)

;; Quiero tabular los mensajes de respuesta
(setq vm-included-text-prefix "    ")

;; No automagico
(setq vm-mail-check-interval nil)

;; Mostrar partes MIME de estos tipos, directamente
(setq vm-auto-displayed-mime-content-types '("text" "multipart" "text/plain"))

Splitting rules

;; Reglas de archivado
(setq vm-auto-folder-alist

      '(
        ("Sender" ; LISTA MULTISYNC
         ("multisync" (lambda () "listamultisync")))
        ("Sender" ; LISTA MANTENEDORES
         ("mantenedores" (lambda () "listamantenedores")))
        ("Sender" ; LISTA HACKERS
         ("hackers" (lambda () "listahackers")))
        ("Sender" ; LISTA ESTANDARES ABIERTOS
         ("estandares" (lambda () "listaestandares")))
        ("Sender" ; LISTA BUG-GV
         ("bug-gv" (lambda () "listabug-gv")))
        ("Sender" ; LISTA HELP-GV
         ("help-gv" (lambda () "listahelp-gv")))
        ("Sender" ; LISTA EMACS-ES
         ("emacs-es" (lambda () "listaemacs-es")))
        ("Sender" ; LISTA MKTCLAPP
         ("mktclapp" (lambda () "listamktclapp")))
        ("Sender" ; LISTA VALLEKASLAB
         ("vallekaslab" (lambda () "listakaslab")))
        ("Sender" ; LISTA TYPES-ANNOUNCE
         ("types-announce" (lambda () "listatypes")))
        ("Sender" ; LISTA HACKMEETING
         ("hackmeeting" (lambda () "listahackmeeting")))
        ("Sender" ; LISTA GS-DEVEL
         ("gs-devel" (lambda () "listagsdevel")))
        ("Sender" ; LISTA GNU-SYSTEM-DISCUSS
         ("gnu-system-discuss" (lambda () "listagnusystemdiscuss")))
        ("Sender" ; LISTA GNU-PROG-DISCUSS
         ("gnu-prog-discuss" (lambda () "listagnuprogdiscuss")))
        ("Sender" ; LISTA GUILE-DEVEL
         ("guile-devel" (lambda () "listaguiledevel")))
        ("Sender" ; LISTA FSFE
         ("spain" (lambda () "listafsfespain")))
        ("Sender" ; LISTA ISIS
         ("CDS/ISIS" (lambda () "listaisis")))

        ("Sender" ; LISTA EMACS-WIKI-DISCUSS
         ("emacs-wiki-discuss" (lambda () "listaemacswiki-discuss")))

        ("Sender" ; LISTA GNU-ARCH-USERS
         ("gnu-arch-users" (lambda () "listagnuarch-users")))

        ("Sender" ; LISTA TCLPLUGIN-CORE
         ("tclplugin-core" (lambda () "listatclplugin-core")))

        ("Sender" ; LISTA BUG-GNULIB
         ("bug-gnulib" (lambda () "listagnulib-bug")))

        ("Sender" ; LISTA ES-PARL
         ("es-parl" (lambda () "listapatentes")))

        ("Sender" ; LISTA ESOTERIC
         ("lang-bounce" (lambda () "listaesolang")))

        ("Sender"  ; LISTA GNUTICIAS
         ("gnuticias" (lambda () "listagnuticias")))

        ("Sender"  ; LISTA GNU-DARWIN
         ("gnu-darwin" (lambda () "listagnudarwin")))

        ("Sender"  ; LISTA GNUES
         ("gnues-list" (lambda () "listagnues")))

        ("Sender"  ; LISTA OSKIT-USERS
         ("owner-oskit-users" (lambda () "listaoskit-users")))

        ("Sender"  ; LISTA HURD-ES
         ("hurd-es" (lambda () "listahurd-es")))

        ("Sender"  ; LISTA XMLRPC-C-DEVEL
         ("xmlrpc-c-devel" (lambda () "listaxmlrpc-c-devel")))

        ("Sender"  ; LISTA GUILE-USER
         ("guile-user" (lambda () "listaguile-user")))

        ("Sender"  ; LISTA PROGRAMMING-CONTEST
         ("programming-contest" (lambda () "listaprogramming-contest")))

        ("Sender"  ; LISTA CACLE
         ("cacle" (lambda () "listacacle")))

        ("Sender"  ; LISTA AGQ-BUG
         ("agq-bug" (lambda () "listaagq-bug")))

        ("Sender"  ; LISTA AGQ-HELP
         ("agq-help" (lambda () "listaagq-help")))

        ("Sender"  ; LISTA BUG-ACM
         ("bug-acm" (lambda () "listaacm-bug")))

        ("Sender"  ; LISTA HELP-ACM
         ("help-acm" (lambda () "listaacm-help")))

        ("Sender"  ; LISTA QUIZASACUI
         ("quizasacui" (lambda () "listaquizasacui")))

        ("Sender"  ; LISTA UGAT
         ("ugat" (lambda () "listaugat")))

        ("Sender"  ; LISTA LENGUALIBRE
         ("lengualibre" (lambda () "listalengualibre")))

        ("Sender"  ; LISTA TYPES
         ("types-list" (lambda () "listatypes")))

        ("Sender"  ; AVISOS MAILMAN
         ("mailman" (lambda () "avisosmailman")))

        ("Sender"  ; LISTA GERWIN-BUG
         ("gerwin-bug" (lambda () "listagerwin-bug")))

        ("Sender"  ; LISTA GERWIN-HELP
         ("gerwin-help" (lambda () "listagerwin-help")))

        ("Sender"  ; LISTA FSFE-ES
         ("fsfe-es" (lambda () "listafsfe-es")))

        ("Sender"  ; LISTA NUCLEO-DESARROLLO
         ("nucleo-desarrollo" (lambda () "listanucleodesarrollo")))

        ("Subject" ; TICKETS RT
         ("via RT"       (lambda () "ticketsrt")))

        ("Sender"  ; LISTA UNICON
         ("unicon-group" (lambda () "listaunicon")))

        ("Sender"  ; LISTA BEE
         ("bee"      (lambda () "listabee")))

        ("Sender"  ; LISTA BUG-HURD
         ("bug-hurd" (lambda () "listahurd-bug")))

        ("Sender"  ; LISTA BUG-GRUB
         ("bug-grub" (lambda () "listagrub-bug")))

        ("Sender"  ; LISTA FRIENDS FSFEUROPE
         ("friends" (lambda () "listafriendsfsfeurope")))

        ("Sender"  ; LISTA WEB-TRANSLATORS-ES
         ("web-translators-es" (lambda () "listatraductoresgnu")))

        ("Sender"  ; LISTA BINUTILS
         ("binutils" (lambda () "listabinutils")))

        ("Sender"  ; LISTA EMACS-HELP
         ("help-gnu-emacs" (lambda () "listaemacs-help")))

        ("Sender"  ; LISTA EMACS-BUG
         ("bug-gnu-emacs" (lambda () "listaemacs-bug")))

        ("Sender"  ; LISTA EMACS-DEVEL
         ("emacs-devel" (lambda () "listaemacs-devel")))

        ("Sender"  ; LISTA GCC-ANNOUNCE
         ("gcc-announce" (lambda () "listagcc-announce")))

        ("Sender"  ; LISTA GCC
         ("gcc-owner" (lambda () "listagcc")))

        ("Sender"  ; LISTA GCC
         ("gcc-owner" (lambda () "listagcc")))

        ("From"    ; RMS PERSONAL
         ("rms@gnu.org" (lambda () "RMS")))

        ("From" ; Mios
         ("jemarch@" (lambda () "mios")))))

Spool files

;; Asociacion spool - inbox
(setq vm-spool-files
      '(
        ("~/mail/inboxes/INBOX" ;; General
         "pop-ssl:es.gnu.org:995:pass:jemarch:*"
         "~/mail/crashes/INBOX")

        ("~/mail/inboxes/INBOX" ;; General (gnu.org)
         "pop-ssl:fencepost.gnu.org:995:apop:jemarch:*"
         "~/mail/crashes/INBOX")

        ("~/mail/inboxes/INBOX" ;; General (localhost)
         "/var/spool/mail/jemarch"
         "~/mail/crashes/INBOX")

        ))

Virtual folders

;; Virtual folders

(setq vm-virtual-folder-alist
      '(
        ("lista mundognu"  ; Lista MundoGNU
         (("~/mail/inboxes/INBOX")
          (subject ".*\\[Mundo_GNU\\].*")))

        ("lista fsfeurope" ; Lista fsfeurope
         (("~/mail/inboxes/INBOX")
          (header "^From discussion-admin@fsfeurope.org.*")))

        ("lista friends fsfeurope" ; Lista fsfeurope friends
         (("~/mail/inboxes/INBOX")
          (header "^Sender: friends-bounces@fsfeurope.org.*")))

        ("lista freedevelopers" ; Lista freedevelopers
         (("~/mail/inboxes/INBOX")
          (header "^Reply-To.*topica.*")))

        ("lista gnues" ; Lista gnues
         (("~/mail/inboxes/INBOX")
          (subject ".*\\[GNUes-list\\].*")))

        ("lista hurdes" ; Lista Hurd es
         (("~/mail/inboxes/INBOX")
          (subject ".*\\[Hurd-es\\].*")))

        ("lista gcc" ; Lista gcc
         (("~/mail/inboxes/INBOX")
          (header "^Sender: gcc-owner")))

        ("lista unicon" ; Lista unicon
         (("~/mail/inboxes/INBOX")
          (subject ".*\\[Unicon-group\]].*")))

        ("personal" ; Correos personales
         (("~/mail/inboxes/INBOX")
          (and
           (header "^To: jemarch@\\(es\\.\\)?gnu.org")
           (not (subject ".*\\[Mundo_GNU\\].*"))
           (not (header "^From discussion-admin@fsfeurope.org.*"))
           (not (header "^Reply-To.*topica.*"))
           (not (subject ".*\\[GNUes-list\\].*"))
           (not (header "^Sender: gcc-owner"))
           (not (subject ".*\\[Hurd-es\\].*"))
           (not (subject ".*\\[Unicon-group\\].*")))))))

Sending email: smtpmail configuration

;; use smtpmail-send-it as the email sending function
(setq send-mail-function 'smtpmail-send-it)
(setq smtpmail-queue-mail t)
(setq message-send-mail-function 'smtpmail-send-it)

(setq smtpmail-auth-login-username "jemarch")
(setq smtpmail-auth-credentials '(("199.232.76.166" "jemarch"
                                   "PASSWORD")
                                  ("213.186.41.14" "jemarch"
                                   "PASSWORD")))
(setq smtpmail-local-domain "gnu.org")
(setq user-mail-address "jemarch@gnu.org")
(setq smtpmail-queue-dir "~/mail/queued-mail/")

(setq smtpmail-default-smtp-server "199.232.76.166")
(setq smtpmail-smtp-server "199.232.76.166")
(setq smtpmail-debug-info t) ; only to debug problems