GNU/Linux >> Linux Esercitazione >  >> Linux

Invia e ricevi Gmail dalla riga di comando di Linux

Sono un utente Mutt. Mi piace visualizzare e comporre e-mail nella comodità del mio terminale Linux. Con un client leggero e minimale come Mutt, so che posso avere la mia e-mail disponibile indipendentemente dalle specifiche del sistema o dall'accesso a Internet. E poiché ho un terminale Linux aperto il più delle volte, il mio client di posta elettronica essenzialmente non ha alcuna impronta sul mio spazio desktop. È nascosto in una scheda del terminale o in un pannello multiplexer, quindi posso ignorarlo quando non ne ho bisogno ma arrivarci rapidamente quando ne ho bisogno.

Un problema comunemente percepito con Mutt è che la maggior parte di noi utilizza account di posta elettronica ospitati in questi giorni e interagisce con i protocolli di posta elettronica effettivi solo superficialmente. Mutt (e prima ELM) è stato creato in tempi più semplici, quando il controllo della posta elettronica era una chiamata a uucp e uno sguardo a /var/mail . Tuttavia, si adatta perfettamente allo sviluppo della tecnologia e funziona bene con tutti i tipi di protocolli moderni come POP, IMAP e persino LDAP, quindi puoi utilizzare Mutt anche se stai utilizzando Gmail come host di posta elettronica.

Poiché oggi è relativamente raro eseguire il proprio server di posta elettronica e poiché Gmail è molto comune, questo tutorial presuppone che tu stia utilizzando Mutt con Gmail. Se sei preoccupato per la privacy delle e-mail, considera l'apertura di un account con ProtonMail o Tutanota, che forniscono entrambi e-mail completamente crittografate. Tutanota ha molti componenti open source e ProtonMail fornisce un bridge IMAP per utenti a pagamento in modo che tu non debba aggirare l'accesso alla tua posta elettronica al di fuori di un browser. Tuttavia, molte aziende, scuole e organizzazioni non gestiscono i propri servizi di posta elettronica e utilizzano solo Gmail, quindi potresti avere un account Gmail che tu lo voglia o meno.

Se stai utilizzando il tuo server di posta elettronica, configurare Mutt è ancora più semplice di quanto mostro in questo articolo, quindi tuffati subito.

Installa Mutt

Su Linux, puoi installare Mutt dal repository del software della tua distribuzione e quindi creare un .mutt directory per contenere i suoi file di configurazione:

$ sudo dnf install mutt
$ mkdir ~/.mutt

Su macOS, usa MacPorts o Homebrew. Su Windows, usa Chocolatey.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Mutt è un mail user agent (MUA), il che significa che il suo compito è leggere, comporre e inviare e-mail a uno spool di posta in uscita. È compito di qualche altra applicazione o servizio trasferire effettivamente un messaggio da o verso un server di posta (sebbene ci sia molta integrazione con Mutt in modo che sembri che stia facendo tutto il lavoro anche quando non lo è). Comprendere questa separazione dei compiti può aiutare la configurazione ad avere un po' più senso.

Spiega anche perché devi avere applicazioni di supporto (oltre a Mutt) a seconda del servizio con cui devi comunicare. Per questo articolo, utilizzo IMAP in modo che la mia copia locale dell'e-mail e la copia remota della posta del mio provider di posta elettronica rimangano sincronizzate. Se invece decidi di utilizzare POP, quella configurazione è ancora più semplice da configurare e può essere eseguita senza strumenti esterni. L'integrazione IMAP, tuttavia, richiede OfflineIMAP, un'applicazione Python disponibile dal suo repository GitHub.

Alla fine, sarai in grado di installarlo con python3 -m pip comando, ma al momento della stesura di questo articolo, devi installare OfflineIMAP manualmente perché è ancora in corso il porting da Python 2 a Python 3.

OfflineIMAP richiede imaplib2 , anch'esso in forte sviluppo, quindi preferisco eseguire anche un'installazione manuale di quello. Il processo è lo stesso:clona il repository del codice sorgente con Git, cambia nella directory e installa con pip .

Innanzitutto, installa rfc6555 dipendenza:

$ python3 -m pip install --user rfc6555

Quindi, installa imaplib2 dalla fonte:

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

Infine, installa OfflineIMAP dal sorgente:

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

Se stai usando Cygwin su Windows, devi installare anche Portalocker.

Configura OfflineIMAP

OfflineIMAP legge il file di configurazione ~/.offlineimaprc per impostazione predefinita. Un modello per questo file, denominato offlineimap.conf , è incluso nel repository Git che hai clonato per installare OfflineIMAP. Sposta il file di esempio nella tua home directory:

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

Apri il file nel tuo editor di testo preferito e leggilo. È un file ben commentato ed è utile familiarizzare con le opzioni disponibili.

Ecco il mio .offlineimaprc ad esempio, con i commenti rimossi per brevità. Alcuni valori potrebbero essere leggermente diversi per te, ma questo ti dà un'idea ragionevole di come dovrebbe essere il tuo prodotto finale:

[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',
                                             ]

Ci sono due valori sostituibili in questo file:%your-gmail-username% e %your-gmail-API-password% . Sostituisci il primo con il tuo nome utente Gmail. È la parte del tuo indirizzo email a sinistra di @gmail.com parte. Devi acquisire il secondo valore da Google tramite un processo di configurazione dell'autenticazione a due fattori (2FA) (anche se non è necessario utilizzare 2FA per controllare la posta).

Imposta 2FA per Gmail

Google si aspetta che i suoi utenti utilizzino il sito Web di Gmail per la posta elettronica, quindi quando tenti di accedere alla tua posta al di fuori dell'interfaccia di Gmail, lo stai essenzialmente facendo come sviluppatore (anche se non ti consideri uno sviluppatore). In altre parole, stai creando ciò che Google considera un'"app". Per ottenere una password per l'app a livello di sviluppatore , devi impostare 2FA; attraverso questo processo, ottieni una password per l'app, che Mutt può utilizzare per accedere al di fuori della normale interfaccia del browser.

Per sicurezza, puoi anche aggiungere un indirizzo email di recupero. Per farlo, vai alla pagina Sicurezza dell'account di Google e scorri verso il basso fino a Email di recupero .

Per impostare la 2FA, torna alla pagina Sicurezza dell'account e fai clic su Verifica in due passaggi per attivarlo e configurarlo. Ciò richiede un telefono cellulare per la configurazione.

Dopo aver attivato la 2FA, ottieni una nuova opzione per la sicurezza dell'account Google:Password per le app . Fare clic su di esso per creare una nuova password per l'app per Mutt. Google genera la password per te, quindi copiala e incollala nel tuo .offlineimaprc file al posto di %your-gmail-API-password% valore.

Inserendo la tua password API nel tuo .offlineimaprc file lo memorizza in testo normale, il che può essere pericoloso. Per molto tempo, l'ho fatto e mi sono sentito bene perché la mia home directory è crittografata. Tuttavia, nell'interesse di una maggiore sicurezza, ora crittografo la mia password API con GnuPG. Questo va un po' oltre lo scopo di questo articolo, ma ho scritto un articolo che mostra come impostare l'integrazione della password GPG.

Abilita IMAP in Gmail

C'è un'ultima cosa prima di poter dire addio per sempre all'interfaccia web di Gmail:devi abilitare l'accesso IMAP al tuo account Gmail.

Per fare ciò, vai all'interfaccia web di Gmail, fai clic sull'icona "ingranaggio" nell'angolo in alto a destra e seleziona Visualizza tutte le impostazioni . Nelle Impostazioni di Gmail , fai clic su POP/IMAP scheda e attiva il pulsante di opzione accanto a Abilita IMAP . Salva le tue impostazioni.

Ora Gmail è configurato per darti accesso alla tua posta elettronica al di fuori di un browser web.

Configura Mutt

Ora che sei pronto per Mutt, sarai felice di apprendere che configurare Mutt è la parte facile. Come con i file .bashrc, .zshrc ed .emacs, ci sono molti esempi di ottimi file .muttrc disponibili su Internet. Per il mio file di configurazione, ho preso in prestito opzioni e idee da Kyle Rankin, Paul Frields e molti altri, quindi ho abbreviato il mio file .muttrc solo all'essenziale nell'interesse della semplicità:

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"

Niente in questo file richiede modifiche, ma considera di sostituire il nome falso Tux Example e l'indirizzo falso example.com con qualcosa che ti riguarda. Copia e incolla questo testo in un file e salvalo come ~/.mutt/muttrc .

Avvia Mutt

Prima di avviare Mutt, esegui offlineimap da un terminale per sincronizzare il tuo computer con il server remoto. La prima esecuzione di questa operazione richiede molto tempo , quindi lascialo in funzione durante la notte.

Una volta sincronizzato il tuo account, puoi avviare Mutt:

$ mutt

Mutt ti chiede l'autorizzazione per creare le directory di cui ha bisogno per organizzare la tua attività e-mail e quindi mostra una vista della tua casella di posta.

Impara Mutt

Imparare Mutt è un misto di esplorare l'applicazione e trovare i tuoi hack preferiti per la tua configurazione .muttrc. Ad esempio, il mio file di configurazione integra Emacs per la composizione di messaggi, LDAP in modo da poter cercare tra i contatti, GnuPG in modo da poter crittografare e decrittografare i messaggi, raccolta di link, visualizzazioni HTML e molto altro. Puoi rendere Mutt qualsiasi cosa tu voglia (a patto che sia un client di posta elettronica) e più sperimenti, più scopri.


Linux
  1. Utilizzo di Stratis per gestire l'archiviazione Linux dalla riga di comando

  2. 4 modi per inviare allegati e-mail dalla riga di comando di Linux

  3. Utilizzo di Google Drive dalla riga di comando di Linux

  4. Come utilizzare Alpine per utilizzare l'e-mail iCloud/GMail dalla riga di comando

  5. Come posso inviare un messaggio al mio socket.io websocket dalla riga di comando in Linux?

Padroneggia la riga di comando di Linux

Come inviare un'e-mail con allegato file dalla riga di comando

comando mailx in linux – invia e ricevi posta Internet

Trovare i file e le cartelle più grandi nella riga di comando di Linux

Invia e-mail in Linux dalla riga di comando

Mutt, Mail e Telnet – Invia e-mail dalla riga di comando o dal terminale di Linux