GNU/Linux >> Znalost Linux >  >> Linux

Odesílejte a přijímejte Gmail z příkazového řádku systému Linux

Jsem uživatel Mutt. Rád si prohlížím a píšu e-maily v pohodlí svého linuxového terminálu. S lehkým a minimálním klientem, jako je Mutt, vím, že mohu mít svůj e-mail dostupný bez ohledu na systémové specifikace nebo přístup k internetu. A protože mám linuxový terminál otevřený častěji než ne, můj e-mailový klient v podstatě nemá žádnou stopu na mé ploše. Je skrytá v záložce terminálu nebo podokně multiplexeru, takže ji mohu ignorovat, když ji nepotřebuji, ale rychle se k ní dostanu, když ji potřebuji.

Běžně vnímaný problém s Mutt je, že většina z nás dnes používá hostované e-mailové účty a komunikuje se skutečnými e-mailovými protokoly pouze povrchně. Mutt (a před ním ELM) byl vytvořen v jednodušších dobách, kdy kontrola e-mailu byla voláním uucp a pohled na /var/mail . Je však dobře přizpůsoben vývojovým technologiím a funguje dobře se všemi druhy moderních protokolů, jako je POP, IMAP a dokonce i LDAP, takže můžete Mutt používat, i když jako hostitele e-mailů používáte Gmail.

Protože je dnes relativně vzácné provozovat vlastní e-mailový server a protože Gmail je velmi běžný, předpokládá tento tutoriál, že používáte Mutt s Gmailem. Pokud máte obavy o soukromí e-mailů, zvažte otevření účtu u ProtonMail nebo Tutanota, které oba poskytují plně šifrovaný e-mail. Tutanota má mnoho komponent s otevřeným zdrojovým kódem a ProtonMail poskytuje placeným uživatelům most IMAP, takže nemusíte pracovat s přístupem k e-mailu mimo prohlížeč. Mnoho společností, škol a organizací však neprovozuje své vlastní e-mailové služby a používá pouze Gmail, takže můžete mít účet Gmail, ať už ho chcete nebo ne.

Pokud provozujete svůj vlastní e-mailový server, je nastavení Mutt ještě jednodušší než to, co předvádím v tomto článku, takže se do toho rovnou ponořte.

Instalovat Mutt

V systému Linux můžete nainstalovat Mutt ze softwarového úložiště vaší distribuce a poté vytvořit .mutt adresář pro uložení jeho konfiguračních souborů:

$ sudo dnf install mutt
$ mkdir ~/.mutt

V systému macOS použijte MacPorts nebo Homebrew. V systému Windows použijte Chocolatey.

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Mutt je poštovní uživatelský agent (MUA), což znamená, že jeho úkolem je číst, psát a odesílat e-maily do odchozí pošty. Úkolem nějaké jiné aplikace nebo služby je skutečně přenést zprávu na nebo z poštovního serveru (ačkoli je zde mnoho integrace s Mutt, takže se zdá, že dělá veškerou práci, i když tomu tak není.) Pochopení tohoto oddělení úkolů může pomoci konfiguraci dát trochu větší smysl.

Vysvětluje také, proč musíte mít pomocné aplikace (kromě Mutt) podle toho, s jakou službou potřebujete komunikovat. V tomto článku používám protokol IMAP, aby moje místní kopie e-mailu a vzdálená kopie pošty mého poskytovatele e-mailu zůstaly synchronizovány. Pokud se místo toho rozhodnete použít POP, je konfigurace ještě jednodušší a lze ji provést bez jakýchkoli externích nástrojů. Integrace IMAP však vyžaduje OfflineIMAP, aplikaci Python dostupnou z jejího úložiště GitHub.

Nakonec jej budete moci nainstalovat pomocí python3 -m pip příkaz, ale v době psaní tohoto článku musíte OfflineIMAP nainstalovat ručně, protože se stále přenáší z Pythonu 2 do Pythonu 3.

OfflineIMAP vyžaduje imaplib2 , který je také ve velkém vývoji, takže preferuji ruční instalaci i toho. Proces je stejný:naklonujte úložiště zdrojového kódu pomocí Git, přejděte do adresáře a nainstalujte pomocí pip .

Nejprve nainstalujte rfc6555 závislost:

$ python3 -m pip install --user rfc6555 

Dále nainstalujte imaplib2 ze zdroje:

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

Nakonec nainstalujte OfflineIMAP ze zdroje:

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

Pokud používáte Cygwin ve Windows, musíte si také nainstalovat Portalocker.

Konfigurace OfflineIMAP

OfflineIMAP čte konfigurační soubor ~/.offlineimaprc ve výchozím stavu. Šablona pro tento soubor s názvem offlineimap.conf , je součástí úložiště Git, které jste naklonovali pro instalaci OfflineIMAP. Přesuňte ukázkový soubor do svého domovského adresáře:

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

Otevřete soubor ve svém oblíbeném textovém editoru a přečtěte si jej. Je to dobře okomentovaný soubor a je dobré se seznámit s dostupnými možnostmi.

Zde je můj .offlineimaprc například s odstraněnými komentáři pro stručnost. Některé hodnoty se pro vás mohou mírně lišit, ale díky tomu získáte rozumnou představu o tom, jak by měl váš konečný produkt vypadat:

[obecné]
ui =ttyui
účty =%vaše uživatelské jméno-gmailu%
pythonfile =~/.mutt/password_prompt.py
fsync =False

[Účet %your-gmail-username%]
místní úložiště =%vaše-uživatelské-jméno-gmailu%-Local
vzdálené úložiště =%vaše-uživatelské jméno-gmailu%-Vzdálené
stavový_základ =sqlite
postsynchook =nic moc nového

[Úložiště %your-gmail-username%-Local]
type =Maildir
localfolders =~/.mail/%your -gmail-username%-gmail.com
nametrans =složka lambda:{'koncepty': '[Gmail]/Drafts',
                            'sent',<   '[Gmail]/Sent Mail' />                            'označeno':'[Gmail]/Označeno hvězdičkou',
                                        'odpad', < ]   '[Gmail] br'/Koš:      '[Gmail] />  ,    Všechny>                            }.get(složka, složka)

[Repository %your-gmail-username%-Remote]
maxconnections =1
type =Gmail
remoteuser =% your-gmail-username%@gmail.com
remotep asseval ='%vaše-gmail-API-heslo%'
## remotepasseval =get_api_pass()
sslcacertfile =/etc/ssl/certs/ca-bundle.crt
realdelete =no
nametrans =složka lambda:{'[Gmail]/Drafts':   'koncepty',
                            '[Gmail]/Sent Mail':'sent',
'       ]                 "označené",
"[gmail] / odpadky":"odpadky",
"[gmail] / all pošty":"Archiv",
} .get (složka, složka)
FolderFilter =Lambda Složka:Složka není v ['[Gmail] / Trash',
'[gmail] / Důležité',
'[gmail] / spam',
]

V tomto souboru jsou dvě nahraditelné hodnoty:%your-gmail-username% a %your-gmail-API-password% . První nahraďte svým uživatelským jménem Gmailu. To je část vaší e-mailové adresy vlevo od @gmail.com část. Druhou hodnotu musíte získat od společnosti Google prostřednictvím procesu nastavení dvoufaktorové autentizace (2FA) (i když ke kontrole e-mailů nemusíte používat 2FA).

Nastavit 2FA pro Gmail

Google očekává, že jeho uživatelé budou používat web Gmail pro e-mail, takže když se pokusíte získat přístup k e-mailu mimo rozhraní Gmailu, děláte tak v podstatě jako vývojář (i když se za vývojáře nepovažujete). Jinými slovy, vytváříte to, co Google považuje za „aplikaci“. Chcete-li získat heslo aplikace na úrovni vývojáře , musíte nastavit 2FA; tímto procesem získáte heslo aplikace, které může Mutt použít k přihlášení mimo obvyklé rozhraní prohlížeče.

Pro jistotu můžete přidat i sekundární e-mailovou adresu. Chcete-li to provést, přejděte na stránku Zabezpečení účtu Google a přejděte dolů na E-mail pro obnovení .

Chcete-li nastavit 2FA, vraťte se na stránku Zabezpečení účtu a klikněte na Dvoufázové ověření pro jeho aktivaci a konfiguraci. Nastavení vyžaduje mobilní telefon.

Po aktivaci 2FA získáte novou možnost zabezpečení účtu Google:Hesla aplikací . Kliknutím na něj vytvoříte nové heslo aplikace pro Mutt. Google vygeneruje heslo za vás, takže ho zkopírujte a vložte do souboru .offlineimaprc soubor na místě %your-gmail-API-password% hodnotu.

Umístění hesla API do vašeho .offlineimaprc soubor jej ukládá jako prostý text, což může být nebezpečné. Dlouho jsem to dělal a cítil jsem se v tom dobře, protože můj domovský adresář je šifrovaný. V zájmu lepšího zabezpečení však nyní své heslo API šifruji pomocí GnuPG. To je poněkud nad rámec tohoto článku, ale napsal jsem článek demonstrující, jak nastavit integraci hesla GPG.

Povolení protokolu IMAP v Gmailu

Než se budete moci navždy rozloučit s webovým rozhraním Gmailu, zbývá ještě jedna věc:Ke svému účtu Gmail musíte povolit přístup IMAP.

Chcete-li to provést, přejděte do webového rozhraní Gmailu, klikněte na ikonu ozubeného kolečka v pravém horním rohu a vyberte možnost Zobrazit všechna nastavení . V Nastavení Gmailu , klikněte na POP/IMAP a aktivujte přepínač vedle možnosti Povolit protokol IMAP . Uložte nastavení.

Nyní je Gmail nakonfigurován tak, aby vám umožnil přístup k e-mailu mimo webový prohlížeč.

Konfigurovat Mutt

Nyní, když jste vše nastavili pro Mutt, budete rádi, když zjistíte, že konfigurace Mutt je ta snadná část. Stejně jako u souborů .bashrc, .zshrc a .emacs existuje na internetu mnoho příkladů velmi dobrých souborů .muttrc. Pro svůj konfigurační soubor jsem si vypůjčil možnosti a nápady od Kylea Rankina, Paula Frieldse a mnoha dalších, takže jsem v zájmu jednoduchosti zkrátil svůj soubor .muttrc jen na to nejpodstatnější:

set ssl_starttls=yes
set ssl_force_tls=yes

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

nastavit složku =imaps://imap.gmail.com/
nastavit spoolfile =imaps://imap.gmail.com/INBOX
nastavit odloženo="imaps://imap.gmail.com /[Gmail]/Drafts"
set smtp_url="smtp://smtp.gmail.com:25"
nastavit přesun =ne
nastavit imap_keepalive =900
nastavit záznam="imaps://imap.gmail.com/[Gmail]/Sent Mail"

# Cesty
nastavit složku           =~/.mail
nastavit alias_file       =~/.mutt /alias
set header_cache     ="~/.mutt/cache/headers"
set message_cachedir ="~/.mutt/cache/bodies"
set certificate_file =~/.mutt/certificates
nastavit cestu_mailcap     =~/.mutt/mailcap
nastavit tmpdir           =~/.mutt/temp
nastavit podpis        =~/.mutt/sig
nastavit sig_on_top       =ano

# Basic Options
set wait_key =no
set mbox_type =Maildir
nenastavený přesun               # gmail to dělá

# Oprava postranního panelu
s et sidebar_visible =yes
nastavit sidebar_width   =16
barva sidebar_new color221 color233

## Nastavení účtu
# Výchozí doručená pošta
nastavit spoolfile ="+příklad. com/INBOX"

# Poštovní schránky, které se mají zobrazit na postranním panelu.
poštovní schránky +PŘÍJEMNÁ \
          +odeslané \
          +koncepty

# Jiná speciální složka
set odložená ="+example.com/koncepty"

# navigace
index makra gi "=example.com/INBOX " "Přejít do doručené pošty"
index makra gt "=example.com/sent" "Zobrazit odesláno"

Nic v tomto souboru nevyžaduje změnu, ale zvažte nahrazení falešného názvu Tux Example a falešnou adresu example.com s něčím, co se vás týká. Zkopírujte a vložte tento text do souboru a uložte jej jako ~/.mutt/muttrc .

Spustit Mutt

Před spuštěním Mutt spusťte offlineimap z terminálu pro synchronizaci počítače se vzdáleným serverem. První spuštění tohoto trvá dlouho , takže jej nechte běžet přes noc.

Jakmile se váš účet synchronizuje, můžete spustit Mutt:

$ mutt 

Mutt vás požádá o povolení k vytvoření adresářů, které potřebuje k uspořádání vaší e-mailové aktivity, a poté zobrazí pohled na vaši doručenou poštu.

Naučte se Mutt

Learning Mutt je směsí prozkoumávání aplikace a hledání oblíbených hacků pro vaši konfiguraci .muttrc. Například můj konfigurační soubor integruje Emacs pro vytváření zpráv, LDAP, abych mohl prohledávat kontakty, GnuPG, abych mohl šifrovat a dešifrovat zprávy, sklízení odkazů, zobrazení HTML a mnoho dalšího. Mutt si můžete vytvořit cokoli chcete (pokud chcete, aby to byl e-mailový klient), a čím více budete experimentovat, tím více objevíte.


Linux
  1. Jak nainstalovat software z příkazového řádku Linuxu

  2. 4 způsoby, jak odeslat e-mailovou přílohu z příkazového řádku systému Linux

  3. 9 příkladů příkazů mail/mailx pro odesílání e-mailů z příkazového řádku v systému Linux

  1. Nakonfigurujte pracovní prostor Linuxu vzdáleně z příkazového řádku

  2. Použití Stratisu ke správě linuxového úložiště z příkazového řádku

  3. Linux Základy příkazového řádku – Spouštění příkazů z příkazového řádku

  1. Hlášení I/O z příkazového řádku Linuxu

  2. Používání Disku Google z příkazového řádku systému Linux

  3. Jak používat Alpine k používání iCloud/GMail e-mailu z příkazového řádku