Die Kommandozeilen-Mailsoftware Himalaya 2.0.0 unterstützt Gmail über die Gmail REST API sowie Outlook- und Microsoft-365-Postfächer über Microsoft Graph. Neben den klassischen Verfahren IMAP und SMTP erhält das Projekt so Zugriff auf Funktionen wie Gmail-Labels und -Threads sowie Graph-spezifische Ordner-, Nachrichten- und Anhangsoperationen.
Himalaya ist ein in Rust geschriebener, zustandsloser E-Mail-Client für die Shell. Er bündelt mehrere Backends hinter einer gemeinsamen Befehlsoberfläche, darunter IMAP, SMTP, JMAP, Maildir und m2dir. Die Software richtet sich vor allem an Nutzer, die E-Mail-Funktionen aus Skripten, Terminal-Workflows oder eigenen Frontends heraus nutzen wollen; eine separate TUI befindet sich in Entwicklung.
Gmail- sowie Outlook- und Microsoft-365-Postfächer ließen sich schon vor Version 2.0.0 über IMAP und SMTP einrichten. Neu ist daher nicht die grundsätzliche Kompatibilität mit diesen Anbietern, sondern der Zugriff auf deren jeweilige API. Die einheitlichen Mail-Befehle bleiben erhalten. Für Funktionen eines bestimmten Protokolls oder Anbieters stellt Himalaya zusätzliche Unterbefehle wie gmail und msgraph bereit.
Die Gmail-Anbindung deckt unter anderem Profile, Labels, Nachrichten, Anhänge, Entwürfe, Threads, Verlauf und Einstellungen ab. Das Graph-Backend bietet Zugriff auf Profile, Mail-Ordner, Nachrichten und Anhänge. Beide Backends authentifizieren sich mit einem OAuth-2.0-Bearer-Token.
Einrichtungsassistent prüft Verbindungen direkt
Die Entwickler haben den Einrichtungsassistenten deutlich ausgebaut. Er erkennt erreichbare Dienste wie IMAP/SMTP, JMAP, Gmail und Microsoft Graph und fragt die passende Anmeldemethode anschließend in einem separaten Schritt ab. Bei IMAP und SMTP wählt der Nutzer einen SASL-Mechanismus wie PLAIN, LOGIN, SCRAM-SHA-256 oder OAUTHBEARER; bei JMAP stehen HTTP-Authentifizierungsarten wie Basic und Bearer zur Wahl.
Der Wizard testet IMAP- und SMTP-Verbindungen bereits während der Konfiguration. Schlägt die Anmeldung fehl, gibt Himalaya keine Konfiguration aus, die später ohnehin nicht funktioniert. Außerdem kann der Assistent bekannte Postfachrollen als Aliase vorbelegen. Bei JMAP ermittelt er sie direkt am Server, für Gmail und Microsoft Graph kennt er die festen Systemordner. Bei IMAP setzt er derzeit nur den Inbox-Alias automatisch.
Dadurch funktionieren Befehle ohne explizite Postfachangabe mit dem voreingestellten Inbox-Alias. Soweit das jeweilige Backend die Ordner kennt, lassen sich auch Ziele wie Gesendet, Entwürfe oder Papierkorb über sprechende Aliase angeben.
Der Aufruf ohne Unterbefehl hat sich allerdings geändert: himalaya startet nun den Wizard, statt wie bisher die Nachrichtenübersicht des Standardkontos anzuzeigen. Die erzeugte Kontokonfiguration gibt das Tool als TOML auf der Standardausgabe aus. Nutzer müssen sie selbst in ihre Konfigurationsdatei umleiten, etwa mit himalaya > ~/.config/himalaya/config.toml. Bestehende Installationen sollten daher bisherige Aufrufe und Skripte prüfen.
Bessere Grundlage für Skripte und externe Werkzeuge
Für Automatisierungen führt Himalaya den Befehl json-schema ein. Er erzeugt für jeden Befehl mit strukturierter Ausgabe eine JSON-Schema-Datei, sofern das zugehörige Backend in die verwendete Himalaya-Version einkompiliert ist. Andere Programme können damit die JSON-Ausgabe validieren und daraus etwa in Python, Rust oder TypeScript typisierte Datenmodelle erzeugen.
Auch die Übergabe vollständiger MIME-Nachrichten vereinheitlicht die neue Version. Befehle zum Senden oder Speichern akzeptieren Nachrichten nun konsistent aus einer Datei, als direkt übergebenen Rohtext oder über die Standardeingabe. Externe Werkzeuge lassen sich dadurch leichter einbinden: Ein MIME-Generator kann eine Nachricht auf die Standardausgabe schreiben, Himalaya übernimmt anschließend den Versand oder speichert sie im gewünschten Ordner. Neu ist außerdem, dass messages send --save <POSTFACH> eine versandte Nachricht zusätzlich in einem ausgewählten Postfach ablegen kann. Mit messages add --send lässt sich eine eingelesene Nachricht speichern und zugleich versenden.
Für Spezialfälle bietet Version 2 zudem direkten Zugriff auf IMAP- und SMTP-Kommandos. Mit imap raw und smtp raw können Anwender Protokollbefehle ohne zusätzliche Verarbeitung an den Server senden. Das eignet sich für Tests, Fehlersuche oder proprietäre Erweiterungen, setzt aber genaue Kenntnisse der jeweiligen Protokolle voraus.
Mehr Modularität, aber auch Umstellungen
Himalaya kann nun über Unix-Sockets mit einem lokalen, bereits authentifizierten IMAP- oder SMTP-Proxy kommunizieren. Das eignet sich etwa für Setups mit einem vorgeschalteten Sitzungsproxy. Über den Unix-Socket handelt Himalaya keine eigene SASL-Authentifizierung aus. Ein Proxy wie sirup kann so eine bereits angemeldete Sitzung bereitstellen, sodass Himalaya für das Speicher-Backend keine zweite Verbindung aufbaut.
Die Entwickler haben außerdem die DNS-Auflösung im Wizard geändert. Bevor Himalaya auf Cloudflares Resolver 1.1.1.1 zurückfällt, nutzt es einen explizit konfigurierten Resolver oder den Resolver des Betriebssystems. Das kann verhindern, dass die für die Mailserver-Suche verwendete Domain an einen zusätzlichen externen DNS-Dienst geht. Zugleich hilft die Änderung in Netzen, die öffentliche Resolver sperren.
Version 2.0.0 streicht zugleich ältere Integrationswege. Himalaya entfernt die eingebauten Composer- und Reader-Konfigurationen sowie Befehle wie compose-with, reply-with und read-with. Für komplexere Entwürfe sollen Nutzer künftig externe Programme einsetzen, die MIME-Nachrichten erzeugen und ihre Ausgabe an messages send oder messages add übergeben.
Auch die IMAP-Befehlshierarchie wurde vereinfacht. Sie orientiert sich nun stärker an der flachen Befehlsliste des Protokolls. Statt tiefer verschachtelter Untergruppen stehen Verben wie select, create, append, store und fetch direkt zur Verfügung.
(fo)










English (US) ·