GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Senden und empfangen Sie Google Mail über die Linux-Befehlszeile

Ich bin ein Mutt-Benutzer. Ich mag es, E-Mails in der Bequemlichkeit meines Linux-Terminals anzuzeigen und zu verfassen. Mit einem leichten und minimalen Client wie Mutt weiß ich, dass ich meine E-Mails unabhängig von Systemspezifikationen oder Internetzugang verfügbar haben kann. Und da ich meistens ein Linux-Terminal geöffnet habe, hat mein E-Mail-Client im Wesentlichen keinen Fußabdruck auf meiner Desktop-Immobilie. Es ist in einer Terminal-Registerkarte oder einem Multiplexer-Fenster versteckt, sodass ich es ignorieren kann, wenn ich es nicht brauche, aber schnell darauf zugreifen kann, wenn ich es brauche.

Ein häufig wahrgenommenes Problem mit Mutt ist, dass die meisten von uns heutzutage gehostete E-Mail-Konten verwenden und nur oberflächlich mit tatsächlichen E-Mail-Protokollen interagieren. Mutt (und davor ELM) wurde in einfacheren Zeiten erstellt, als das Abrufen von E-Mails ein Aufruf von uucp war und ein Blick auf /var/mail . Es ist jedoch gut an die sich entwickelnde Technologie angepasst und funktioniert gut mit allen möglichen modernen Protokollen wie POP, IMAP und sogar LDAP, sodass Sie Mutt auch dann verwenden können, wenn Sie Gmail als Ihren E-Mail-Host verwenden.

Da es heutzutage relativ selten ist, einen eigenen E-Mail-Server zu betreiben, und da Gmail sehr verbreitet ist, wird in diesem Tutorial davon ausgegangen, dass Sie Mutt mit Gmail verwenden. Wenn Sie sich Sorgen um den Datenschutz bei E-Mails machen, sollten Sie erwägen, ein Konto bei ProtonMail oder Tutanota zu eröffnen, die beide vollständig verschlüsselte E-Mails anbieten. Tutanota verfügt über viele Open-Source-Komponenten, und ProtonMail bietet eine IMAP-Brücke für zahlende Benutzer, sodass Sie den Zugriff auf Ihre E-Mails außerhalb eines Browsers nicht umgehen müssen. Viele Unternehmen, Schulen und Organisationen betreiben jedoch keine eigenen E-Mail-Dienste und verwenden nur Google Mail, sodass Sie möglicherweise ein Google Mail-Konto haben, ob Sie eines möchten oder nicht.

Wenn Sie Ihren eigenen E-Mail-Server betreiben, ist das Einrichten von Mutt sogar noch einfacher als das, was ich in diesem Artikel demonstriere, also tauchen Sie einfach ein.

Mutt installieren

Unter Linux können Sie Mutt aus dem Software-Repository Ihrer Distribution installieren und dann eine .mutt erstellen Verzeichnis für die Konfigurationsdateien:

$ sudo dnf install mutt
$ mkdir ~/.mutt

Verwenden Sie unter macOS MacPorts oder Homebrew. Verwenden Sie unter Windows Chocolatey.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Mutt ist ein Mail User Agent (MUA), was bedeutet, dass seine Aufgabe darin besteht, E-Mails zu lesen, zu verfassen und an einen ausgehenden Mail-Spool zu senden. Es ist die Aufgabe einer anderen Anwendung oder eines anderen Dienstes, eine Nachricht tatsächlich zu oder von einem Mailserver zu übertragen (obwohl es viel Integration mit Mutt gibt, so dass es so aussieht, als würde es die ganze Arbeit erledigen, auch wenn dies nicht der Fall ist). Diese Trennung von Aufgaben verstehen kann helfen, die Konfiguration etwas sinnvoller zu machen.

Es erklärt auch, warum Sie Hilfsanwendungen (zusätzlich zu Mutt) haben müssen, je nachdem, mit welchem ​​Dienst Sie kommunizieren müssen. Für diesen Artikel verwende ich IMAP, damit meine lokale E-Mail-Kopie und die Remote-E-Mail-Kopie meines E-Mail-Anbieters synchronisiert bleiben. Sollten Sie sich stattdessen für die Verwendung von POP entscheiden, ist diese Konfiguration noch einfacher zu konfigurieren und kann ohne externe Tools durchgeführt werden. Die IMAP-Integration erfordert jedoch OfflineIMAP, eine Python-Anwendung, die im GitHub-Repository verfügbar ist.

Schließlich können Sie es mit python3 -m pip installieren Befehl, aber zum jetzigen Zeitpunkt müssen Sie OfflineIMAP manuell installieren, da es immer noch von Python 2 auf Python 3 portiert wird.

OfflineIMAP erfordert imaplib2 , das sich ebenfalls in intensiver Entwicklung befindet, daher bevorzuge ich auch eine manuelle Installation. Der Prozess ist der gleiche:Quellcode-Repository mit Git klonen, in das Verzeichnis wechseln und mit pip installieren .

Installieren Sie zuerst den rfc6555 Abhängigkeit:

$ python3 -m pip install --user rfc6555

Als nächstes installieren Sie imaplib2 aus Quelle:

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

Installieren Sie schließlich OfflineIMAP von Quelle:

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

Wenn Sie Cygwin unter Windows verwenden, müssen Sie auch Portalocker installieren.

OfflineIMAP konfigurieren

OfflineIMAP liest die Konfigurationsdatei ~/.offlineimaprc standardmäßig. Eine Vorlage für diese Datei namens offlineimap.conf , ist im Git-Repository enthalten, das Sie geklont haben, um OfflineIMAP zu installieren. Verschieben Sie die Beispieldatei in Ihr Home-Verzeichnis:

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

Öffnen Sie die Datei in Ihrem bevorzugten Texteditor und lesen Sie sie durch. Es ist eine gut kommentierte Datei und es ist gut, sich mit den verfügbaren Optionen vertraut zu machen.

Hier ist mein .offlineimaprc als Beispiel, wobei Kommentare der Kürze halber entfernt wurden. Einige Werte können für Sie etwas anders sein, aber das gibt Ihnen eine vernünftige Vorstellung davon, wie Ihr Endprodukt aussehen sollte:

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

In dieser Datei gibt es zwei ersetzbare Werte:%your-gmail-username% und %your-gmail-API-password% . Ersetzen Sie den ersten durch Ihren Google Mail-Benutzernamen. Das ist der Teil Ihrer E-Mail-Adresse links von @gmail.com Teil. Sie müssen den zweiten Wert von Google über einen Einrichtungsprozess für die Zwei-Faktor-Authentifizierung (2FA) erwerben (auch wenn Sie 2FA nicht zum Abrufen von E-Mails verwenden müssen).

Richten Sie 2FA für Gmail ein

Google erwartet von seinen Nutzern, dass sie die Gmail-Website für E-Mails verwenden. Wenn Sie also versuchen, außerhalb der Gmail-Benutzeroberfläche auf Ihre E-Mails zuzugreifen, tun Sie dies im Wesentlichen als Entwickler (auch wenn Sie sich selbst nicht als Entwickler betrachten). Mit anderen Worten, Sie erstellen das, was Google als „App“ bezeichnet. So erhalten Sie ein App-Passwort auf Entwicklerebene , müssen Sie 2FA einrichten; Durch diesen Vorgang erhalten Sie ein App-Passwort, mit dem sich Mutt außerhalb der üblichen Browseroberfläche anmelden kann.

Aus Sicherheitsgründen können Sie auch eine Wiederherstellungs-E-Mail-Adresse hinzufügen. Rufen Sie dazu die Kontosicherheitsseite von Google auf und scrollen Sie nach unten zu Wiederherstellungs-E-Mail .

Um 2FA einzurichten, gehen Sie zurück zur Seite Kontosicherheit und klicken Sie auf Bestätigung in zwei Schritten aktivieren und konfigurieren. Dies erfordert ein Mobiltelefon für die Einrichtung.

Nach der Aktivierung von 2FA erhalten Sie eine neue Sicherheitsoption für Ihr Google-Konto:App-Passwörter . Klicken Sie darauf, um ein neues App-Passwort für Mutt zu erstellen. Google generiert das Passwort für Sie, also kopieren Sie es und fügen Sie es in Ihre .offlineimaprc ein Datei anstelle von %your-gmail-API-password% Wert.

Platzieren Sie Ihr API-Passwort in Ihrer .offlineimaprc Datei speichert sie im Klartext, was gefährlich sein kann. Lange Zeit habe ich das gemacht und mich gut dabei gefühlt, weil mein Home-Verzeichnis verschlüsselt ist. Allerdings verschlüssele ich im Interesse einer besseren Sicherheit mein API-Passwort jetzt mit GnuPG. Das würde den Rahmen dieses Artikels etwas sprengen, aber ich habe einen Artikel geschrieben, der zeigt, wie man die GPG-Passwortintegration einrichtet.

IMAP in Google Mail aktivieren

Es gibt noch eine letzte Sache, bevor Sie sich für immer von der Gmail-Weboberfläche verabschieden können:Sie müssen den IMAP-Zugriff auf Ihr Gmail-Konto aktivieren.

Rufen Sie dazu die Gmail-Weboberfläche auf, klicken Sie oben rechts auf das Zahnradsymbol und wählen Sie Alle Einstellungen anzeigen aus . In den Google Mail-Einstellungen , klicken Sie auf POP/IMAP und aktivieren Sie das Optionsfeld neben IMAP aktivieren . Speichern Sie Ihre Einstellungen.

Jetzt ist Google Mail so konfiguriert, dass Sie außerhalb eines Webbrowsers auf Ihre E-Mails zugreifen können.

Mutt konfigurieren

Jetzt, wo du alles für Mutt eingerichtet hast, wirst du froh sein zu erfahren, dass die Konfiguration von Mutt der einfache Teil ist. Wie bei .bashrc-, .zshrc- und .emacs-Dateien gibt es im Internet viele Beispiele für sehr gute .muttrc-Dateien. Für meine Konfigurationsdatei habe ich mir Optionen und Ideen von Kyle Rankin, Paul Frields und vielen anderen ausgeliehen, also habe ich meine .muttrc-Datei der Einfachheit halber auf das Wesentliche gekürzt:

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"

Nichts in dieser Datei muss geändert werden, aber erwägen Sie, den falschen Namen Tux Example zu ersetzen und die gefälschte Adresse example.com mit etwas, das auf dich zutrifft. Kopieren Sie diesen Text, fügen Sie ihn in eine Datei ein und speichern Sie ihn als ~/.mutt/muttrc .

Mutt starten

Führen Sie vor dem Start von Mutt offlineimap aus von einem Terminal aus, um Ihren Computer mit dem Remote-Server zu synchronisieren. Der erste Durchlauf davon dauert lange , also lass es über Nacht laufen.

Sobald dein Konto synchronisiert ist, kannst du Mutt starten:

$ mutt

Mutt fragt Sie nach der Erlaubnis, die Verzeichnisse zu erstellen, die es zum Organisieren Ihrer E-Mail-Aktivitäten benötigt, und zeigt dann eine Ansicht Ihres Posteingangs an.

Mutt lernen

Das Erlernen von Mutt ist eine Mischung aus dem Erkunden der Anwendung und dem Finden Ihrer Lieblings-Hacks für Ihre .muttrc-Konfiguration. Zum Beispiel integriert meine Konfigurationsdatei Emacs zum Verfassen von Nachrichten, LDAP, damit ich Kontakte durchsuchen kann, GnuPG, damit ich Nachrichten ver- und entschlüsseln kann, Link-Harvesting, HTML-Ansichten und vieles mehr. Du kannst Mutt machen, was du willst (solange es ein E-Mail-Client sein soll), und je mehr du experimentierst, desto mehr entdeckst du.


Linux
  1. Konfigurieren Sie einen Linux-Arbeitsbereich remote über die Befehlszeile

  2. So installieren Sie Software über die Linux-Befehlszeile

  3. Verwenden von Stratis zum Verwalten von Linux-Speicher über die Befehlszeile

  4. 4 Möglichkeiten zum Senden von E-Mail-Anhängen über die Linux-Befehlszeile

  5. E/A-Berichte über die Linux-Befehlszeile

Meistern Sie die Linux-Befehlszeile

So senden Sie eine E-Mail mit Dateianhang von der Befehlszeile aus

mailx-Befehl unter Linux – Internet-Mail senden und empfangen

Die größten Dateien und Ordner in der Linux-Befehlszeile finden

Senden Sie E-Mail in Linux von der Befehlszeile aus

Mutt, Mail und Telnet – Senden Sie E-Mails von der Linux-Befehlszeile oder dem Terminal