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
Configuramos
#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"
offlineimap
mediante el archivo ~/offlineimaprc
:
# Sample minimal config file. Copy this to ~/.offlineimaprc and edit to
Para configurar
# 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"
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
.