Inicio

Correo en modo texto

Usaremos mutt para leer y enviar mensajes desde la terminal. Podemos configurar mutt para que se conecte directamente con el servidor IMAP. También podemos tener una copia local del servidor IMAP mediante el programa offlineimap y decirle a mutt que la lea. Otra posibilidad es querer manejar el correo cuando no tengamos conexión: para ello usaremos mutt en combinación con offlineimap y con msmtp. Con offlineimap nos bajamos el correo nuevo con el formato Maildir y con mutt lo leemos localmente. Cualquier cambio que hagamos en nuestro correo local lo podemos sincronizar en el servidor ejecutando de nuevo offlineimap. Y por último, para enviar correos, mutt usará msmtp. Si cuando enviamos un mensaje no tenemos conexión, guardaremos el mensaje en borradores, y cuando tengamos conexión lo enviaremos. Pero este método nos obliga a enviar uno a uno todos los mensajes que tengamos en la carpeta borradores, así que es mejor usar una cola y cuando tengamos conexión los enviamos todos a la vez. Para ello usamos tres guiones que vienen con el programa msmtp: msmtp-enqueue.sh permite a mutt enviar los mensajes a la cola, msmtp-listqueue.sh nos lista los mensajes que hay en la cola y por último msmtp-runqueue.sh que nos envía los mensajes usando msmtp.

Por tanto instalamos mutt (mi versión es 1.5.21), offlineimap (mi versión es 6.3.4), msmtp (mi versión es 1.4.28) y ca-certificates . Creamos la carpeta ~/.mutt. En ella tendremos el archivo de configuración de mutt: mutt.rc:
# configuración para conexión directa a IMAP
#set folder = imaps://imap.juntadeandalucia.es/INBOX
#set spoolfile = imaps://imap.juntadeandalucia.es
#set imap_user = pepito
#set imap_pass = contraseña
#set postponed = +Drafts
#set record = +Sent
# permitir a mutt abrir nuevas conexiones imap automaticamente
#set imap_passive = no
# mantener viva la conexion imap preguntando intermitentemente (tiempo en segundos)
#set imap_keepalive = 300
# que tan frequetemente se revisara si hay correo nuevo (tiempo en segundos)
#set mail_check = 120
# almacene las cabeceras de mensajes localmente para acelerar las cosas
#set header_cache = ~/.mutt/hcache

# Maildir creado por offlineimap
## formato para almacenar el correo: Maildir
set mbox_type=Maildir
set folder = "~/.mutt/directorio_offlineimap"
set spoolfile = "+INBOX"
## Ojo con la diferencia con la configuración IMAP: +Sent y aquí tiene que
## ser +INBOX/Sent
set record = +INBOX.Sent
set trash = +INBOX.Trash
set postponed = +INBOX.Drafts

# libreta de direcciones, en Mutt llamados alias
## el fichero direcciones_correo contiene las direcciones
## con el formato:
## alias pepe josemaria@llantones.es
## y desde el "To:" de Mutt escribimos una p y al pulsar
## el tabulador nos muestra las coincidencias.
## Para crear un grupo ponemos todas las direcciones
## separadas por comas.
source ~/.mutt/direcciones_correo
set alias_file=~/.mutt/direcciones_correo
set sort_alias=alias

## configurar el remitente de los correos
set from = pepito@juntadeandalucia.es
set realname = "Pepito de los Palotes"

# que no pregunte al borrar correos
set delete

## envío con msmtp. Averigua dónde está msmtp:
## whereis msmtp
#set sendmail="/usr/bin/msmtp"

## envío con msmtp a través de cola. Copia los guiones
# que están en /usr/share/doc/msmtp/examples/msmtpqueue
## a un directorio que tengas en el PATH, por ejemplo
## /usr/local/bin
set sendmail="/usr/local/bin/msmtp-enqueue.sh"

# no hace falta la siguiente línea ni la seccion nbname en .offlineimaprc
#source ~/.muttrc.mailboxes

# envío directo desde mutt sin usar msmtp (no me funciona, supongo que por el ssl):
#set smtp_url="smtps://pepito:clave@mail.juntadeandalucia.es:465"



Configuramos offlineimap mediante el archivo ~/offlineimaprc:
# Sample minimal config file. Copy this to ~/.offlineimaprc and edit to
# suit to get started fast.

[general]
accounts = correo_corporativo

[Account correo_corporativo]
localrepository = Local
remoterepository = Remote

[Repository Local]
type = Maildir
localfolders = ~/.mutt/directorio_offlineimap

[Repository Remote]
type = IMAP
remotehost = imap.juntadeandalucia.es
remoteuser = pepito
remoteport = 993
remotepass = clave
ssl = yes
maxconnections = 1

# directorio para logs
metadata = ~/.mutt/.offlineimap

# máximo número de cuentas que sincroniza a la vez
maxsynaccounts = 1

fsync = true

#no hace falta la seccion nbnames para mutt
#[mbnames]
#enable = yes
#filename = ~/.mutt/muttrc.mailboxes
#header = "mailboxes "
#peritem = "+%correo_corporativo/%.directorio_offlineimap"
#peritem = "+%/accountname)s/%(foldername)s"
#sep = " "
#footer = "\n"



Para configurar msmtp escribimos el fichero ~/.msmtprc:
account default
host mail.juntadeandalucia.es
port 465
from pepito@juntadeandalucia.es
auth on
user pepito
password clave
tls on
tls_starttls off
## tengo problemas con el ssl del servidor y con
## tls_cercheck off me funciona.
tls_certcheck off
#tls_trust_file /etc/ssl/certs/ca-certificates.crt


En muttrc elegimos si queremos el envío directo mediante msmtp o el envío a través de la cola mediante msmtp.sh. Con este último método el proceso sería ejecutar los comandos: offlineimap, mutt, msmtp-listqueue.sh, msmtp-runqueue.sh y offlineimap (por si nos hemos enviado un correo a nosotros mismos).

Con esta configuración tenemos los ficheros y directorios de mutt, offlineimap y msmtp lo más juntos posibles usando las configuraciones por defecto, sin tener que usar, por ejemplo offlineimap con la opción -c para indicar dónde está .offlineimaprc, sin tener que modificar los guiones de msmtp-xxxxx.sh, etc. Así, en el directorio .mutt tenemos muttrc, direcciones_correo y directorio_offlineimap y en el ~ tenemos .offlineimaprc, .msmtprc y .msmtpqueue.

Inicio

Valid XHTML 1.0 Strict