GNU/Linux >> Tutoriales Linux >  >> Linux

Envía y recibe Gmail desde la línea de comandos de Linux

Soy usuario de Mutt. Me gusta ver y redactar correos electrónicos en la comodidad de mi terminal Linux. Con un cliente ligero y mínimo como Mutt, sé que puedo tener mi correo electrónico disponible independientemente de las especificaciones del sistema o del acceso a Internet. Y debido a que tengo una terminal de Linux abierta la mayoría de las veces, mi cliente de correo electrónico esencialmente no tiene huella en mi espacio de escritorio. Está escondido en una pestaña de terminal o en un panel multiplexor, por lo que puedo ignorarlo cuando no lo necesito, pero acceder a él rápidamente cuando lo necesito.

Un problema comúnmente percibido con Mutt es que la mayoría de nosotros usamos cuentas de correo electrónico alojadas en estos días e interactuamos con los protocolos de correo electrónico reales solo de manera superficial. Mutt (y ELM antes) se creó en tiempos más simples, cuando revisar el correo electrónico era una llamada a uucp y un vistazo a /var/mail . Sin embargo, se adapta muy bien a la tecnología en desarrollo y funciona bien con todo tipo de protocolos modernos como POP, IMAP e incluso LDAP, por lo que puede usar Mutt incluso si está usando Gmail como servidor de correo electrónico.

Debido a que es relativamente raro ejecutar su propio servidor de correo electrónico hoy en día, y debido a que Gmail es muy común, este tutorial asume que está usando Mutt con Gmail. Si le preocupa la privacidad del correo electrónico, considere abrir una cuenta con ProtonMail o Tutanota, los cuales brindan correo electrónico completamente encriptado. Tutanota tiene muchos componentes de código abierto y ProtonMail proporciona un puente IMAP para usuarios pagos para que no tengas que trabajar para acceder a tu correo electrónico fuera de un navegador. Sin embargo, muchas empresas, escuelas y organizaciones no ejecutan sus propios servicios de correo electrónico y solo usan Gmail, por lo que puede tener una cuenta de Gmail, la quiera o no.

Si está ejecutando su propio servidor de correo electrónico, configurar Mutt es aún más fácil de lo que demuestro en este artículo, así que simplemente sumérjase.

Instalar Mutt

En Linux, puede instalar Mutt desde el repositorio de software de su distribución y luego crear un .mutt directorio para guardar sus archivos de configuración:

$ sudo dnf install mutt
$ mkdir ~/.mutt

En macOS, use MacPorts o Homebrew. En Windows, usa Chocolatey.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Mutt es un agente de usuario de correo (MUA), lo que significa que su trabajo es leer, redactar y enviar correo electrónico a una cola de correo saliente. El trabajo de alguna otra aplicación o servicio es transferir un mensaje hacia o desde un servidor de correo (aunque hay mucha integración con Mutt, por lo que parece que está haciendo todo el trabajo, incluso cuando no es así). Comprender esta separación de tareas puede ayudar a que la configuración tenga un poco más de sentido.

También explica por qué debe tener aplicaciones auxiliares (además de Mutt) según el servicio con el que necesite comunicarse. Para este artículo, utilizo IMAP para que mi copia local del correo electrónico y la copia remota del correo de mi proveedor de correo electrónico permanezcan sincronizadas. Si decide utilizar POP en su lugar, esa configuración es aún más fácil de configurar y se puede realizar sin herramientas externas. Sin embargo, la integración de IMAP requiere OfflineIMAP, una aplicación de Python disponible en su repositorio de GitHub.

Eventualmente, podrá instalarlo con python3 -m pip comando, pero a partir de este escrito, debe instalar OfflineIMAP manualmente porque todavía se está transfiriendo de Python 2 a Python 3.

OfflineIMAP requiere imaplib2 , que también está en pleno desarrollo, así que prefiero hacer una instalación manual de eso también. El proceso es el mismo:clone el repositorio de código fuente con Git, cambie al directorio e instale con pip .

Primero, instale el rfc6555 dependencia:

$ python3 -m pip install --user rfc6555

A continuación, instale imaplib2 de la fuente:

$ git clone [email protected]:jazzband/imaplib2.git
$ pushd imaplib2.git
$ python3 -m pip install --upgrade --user .
$ popd

Finalmente, instale OfflineIMAP desde la fuente:

$ git clone [email protected]:OfflineIMAP/offlineimap3.git
$ pushd offlineimap3.git
$ python3 -m pip install --upgrade --user .
$ popd

Si usa Cygwin en Windows, también debe instalar Portalocker.

Configurar IMAP sin conexión

OfflineIMAP lee el archivo de configuración ~/.offlineimaprc por defecto. Una plantilla para este archivo, llamada offlineimap.conf , está incluido en el repositorio de Git que clonaste para instalar OfflineIMAP. Mueva el archivo de ejemplo a su directorio de inicio:

$ mv offlineimap3.git/offlineimap.conf ~/.offlineimaprc

Abra el archivo en su editor de texto favorito y léalo. Es un archivo bien comentado y es bueno familiarizarse con las opciones disponibles.

Aquí está mi .offlineimaprc como ejemplo, con los comentarios eliminados por brevedad. Algunos valores pueden ser ligeramente diferentes para usted, pero esto le da una idea razonable de cómo debería ser su producto final:

[general]
ui = ttyui
accounts = %your-gmail-username%
pythonfile = ~/.mutt/password_prompt.py
fsync = False

[Account %your-gmail-username%]
localrepository = %your-gmail-username%-Local
remoterepository = %your-gmail-username%-Remote
status_backend = sqlite
postsynchook = notmuch new

[Repository %your-gmail-username%-Local]
type = Maildir
localfolders = ~/.mail/%your-gmail-username%-gmail.com
nametrans = lambda folder: {'drafts':  '[Gmail]/Drafts',
                            'sent':    '[Gmail]/Sent Mail',
                            'flagged': '[Gmail]/Starred',
                            'trash':   '[Gmail]/Trash',
                            'archive': '[Gmail]/All Mail',
                            }.get(folder, folder)

[Repository %your-gmail-username%-Remote]
maxconnections = 1
type = Gmail
remoteuser = %your-gmail-username%@gmail.com
remotepasseval = '%your-gmail-API-password%'
## remotepasseval = get_api_pass()
sslcacertfile = /etc/ssl/certs/ca-bundle.crt
realdelete = no
nametrans = lambda folder: {'[Gmail]/Drafts':    'drafts',
                            '[Gmail]/Sent Mail': 'sent',
                            '[Gmail]/Starred':   'flagged',
                            '[Gmail]/Trash':     'trash',
                            '[Gmail]/All Mail':  'archive',
                            }.get(folder, folder)
folderfilter = lambda folder: folder not in ['[Gmail]/Trash',
                                             '[Gmail]/Important',
                                             '[Gmail]/Spam',
                                             ]

Hay dos valores reemplazables en este archivo:%your-gmail-username% y %your-gmail-API-password% . Reemplace el primero con su nombre de usuario de Gmail. Esa es la parte de su dirección de correo electrónico a la izquierda de @gmail.com parte. Debe adquirir el segundo valor de Google a través de un proceso de configuración de autenticación de dos factores (2FA) (aunque no necesita usar 2FA para consultar el correo electrónico).

Configurar 2FA para Gmail

Google espera que sus usuarios utilicen el sitio web de Gmail para el correo electrónico, por lo que cuando intenta acceder a su correo electrónico fuera de la interfaz de Gmail, esencialmente lo está haciendo como desarrollador (incluso si no se considera un desarrollador). En otras palabras, estás creando lo que Google considera una "aplicación". Para obtener una contraseña de aplicación de nivel de desarrollador , debes configurar 2FA; a través de ese proceso, obtiene una contraseña de aplicación, que Mutt puede usar para iniciar sesión fuera de la interfaz habitual del navegador.

Por seguridad, también puede agregar una dirección de correo electrónico de recuperación. Para ello, vaya a la página Seguridad de la cuenta de Google y desplácese hacia abajo hasta Correo electrónico de recuperación. .

Para configurar 2FA, vuelva a la página Seguridad de la cuenta y haga clic en Verificación en dos pasos. para activarlo y configurarlo. Esto requiere un teléfono móvil para la configuración.

Después de activar 2FA, obtiene una nueva opción de seguridad de la cuenta de Google:Contraseñas de aplicaciones . Haga clic en él para crear una nueva contraseña de aplicación para Mutt. Google genera la contraseña por ti, así que cópiala y pégala en tu .offlineimaprc archivo en lugar de %your-gmail-API-password% valor.

Colocando su contraseña API en su .offlineimaprc El archivo lo almacena en texto sin formato, lo que puede ser peligroso. Durante mucho tiempo, hice esto y me sentí bien porque mi directorio de inicio está encriptado. Sin embargo, en aras de una mejor seguridad, ahora encripto mi contraseña de API con GnuPG. Eso va un poco más allá del alcance de este artículo, pero he escrito un artículo que demuestra cómo configurar la integración de contraseñas GPG.

Habilitar IMAP en Gmail

Hay una última cosa antes de que pueda despedirse de la interfaz web de Gmail para siempre:debe habilitar el acceso IMAP a su cuenta de Gmail.

Para hacer esto, vaya a la interfaz web de Gmail, haga clic en el ícono de la "rueda dentada" en la esquina superior derecha y seleccione Ver todas las configuraciones. . En Gmail Configuración , haz clic en POP/IMAP y habilite el botón de opción junto a Habilitar IMAP . Guarde su configuración.

Ahora Gmail está configurado para brindarle acceso a su correo electrónico fuera de un navegador web.

Configurar Mutt

Ahora que está todo listo para Mutt, le alegrará saber que configurar Mutt es la parte fácil. Al igual que con los archivos .bashrc, .zshrc y .emacs, hay muchos ejemplos de muy buenos archivos .muttrc disponibles en Internet. Para mi archivo de configuración, tomé prestadas opciones e ideas de Kyle Rankin, Paul Frields y muchos otros, por lo que he abreviado mi archivo .muttrc a solo lo esencial en aras de la simplicidad:

set ssl_starttls=yes
set ssl_force_tls=yes

set from='[email protected]'
set realname='Tux Example'

set folder = imaps://imap.gmail.com/
set spoolfile = imaps://imap.gmail.com/INBOX
set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"
set smtp_url="smtp://smtp.gmail.com:25"
set move = no
set imap_keepalive = 900
set record="imaps://imap.gmail.com/[Gmail]/Sent Mail"

# Paths
set folder           = ~/.mail
set alias_file       = ~/.mutt/alias
set header_cache     = "~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = ~/.mutt/certificates
set mailcap_path     = ~/.mutt/mailcap
set tmpdir           = ~/.mutt/temp
set signature        = ~/.mutt/sig
set sig_on_top       = yes

# Basic Options
set wait_key = no
set mbox_type = Maildir
unset move               # gmail does that

# Sidebar Patch
set sidebar_visible = yes
set sidebar_width   = 16
color sidebar_new color221 color233

## Account Settings
# Default inbox
set spoolfile = "+example.com/INBOX"

# Mailboxes to show in the sidebar.
mailboxes +INBOX \
          +sent \
          +drafts

# Other special folder
set postponed = "+example.com/drafts"

# navigation
macro index gi "<change-folder>=example.com/INBOX<enter>" "Go to inbox"
macro index gt "<change-folder>=example.com/sent" "View sent"

Nada en este archivo requiere cambios, pero considere reemplazar el nombre falso Tux Example y la dirección falsa example.com con algo que se aplica a usted. Copie y pegue este texto en un archivo y guárdelo como ~/.mutt/muttrc .

Lanzar Mutt

Antes de iniciar Mutt, ejecute offlineimap desde una terminal para sincronizar su computadora con el servidor remoto. La primera ejecución de esto toma mucho tiempo , así que déjelo funcionando durante la noche.

Una vez que su cuenta se haya sincronizado, puede iniciar Mutt:

$ mutt

Mutt le solicita permiso para crear los directorios que necesita para organizar su actividad de correo electrónico y luego muestra una vista de su bandeja de entrada.

Aprender Mutt

Aprender Mutt es una mezcla de explorar la aplicación y encontrar tus trucos favoritos para tu configuración .muttrc. Por ejemplo, mi archivo de configuración integra Emacs para redactar mensajes, LDAP para que pueda buscar a través de contactos, GnuPG para que pueda cifrar y descifrar mensajes, recopilación de enlaces, vistas HTML y mucho más. Puedes hacer que Mutt sea lo que quieras que sea (siempre que quieras que sea un cliente de correo electrónico), y cuanto más experimentes, más descubrirás.


Linux
  1. Configurar un espacio de trabajo de Linux de forma remota desde la línea de comandos

  2. Cómo instalar software desde la línea de comandos de Linux

  3. Uso de Stratis para administrar el almacenamiento de Linux desde la línea de comandos

  4. 4 formas de enviar archivos adjuntos de correo electrónico desde la línea de comandos de Linux

  5. Migración de un servidor Linux desde la línea de comandos

Domina la línea de comandos de Linux

Cómo enviar un correo electrónico con un archivo adjunto desde la línea de comandos

Comando mailx en linux:enviar y recibir correo de Internet

Encontrar los archivos y carpetas más grandes en la línea de comandos de Linux

Enviar correo electrónico en Linux desde la línea de comandos

Mutt, Mail y Telnet:envíe correos electrónicos desde la línea de comando o terminal de Linux