Guide
E-Mail von der Linux-Kommandozeile senden ohne SMTP-Server oder Postfix
Die meisten Kommandozeilen-E-Mail-Tools erfordern einen lokalen SMTP-Server oder Relay wie Postfix oder sendmail, oder funktionieren nur mit einem Anbieter. Nylas CLI sendet E-Mails von Linux-, Ubuntu-, macOS- und Windows-Terminals mit integriertem OAuth2, JSON-Ausgabe und ohne SMTP-Server-Konfiguration.
Written by Aaron de Mello Senior Engineering Manager
Reviewed by Caleb Geene
Wie sendet man E-Mails von der Linux-Kommandozeile ohne SMTP-Server?
Verwenden Sie ein CLI, das über eine authentifizierte E-Mail-API sendet statt über einen lokalen Mail Transfer Agent. Mit Nylas CLI besteht der Linux-Workflow aus einer Installation, einer Authentifizierung und einem nylas email send-Befehl. Kein Postfix-Daemon, keine sendmail-Warteschlange und kein SMTP-Passwort in Ihrer Shell-History.
Der mail-Befehl ist seit 1977 auf Unix-Systemen verfügbar, mailx seit Anfang der 1980er — aber keiner unterstützt OAuth2. Das ist ein Problem: Google hat „weniger sichere App"-Passwörter für Gmail im September 2024 deaktiviert, und Microsoft hat Basic Auth für Exchange Online im Oktober 2022 abgeschafft. Wenn Ihr CLI-Tool den OAuth2-Token-Refresh nicht handhabt (Gmail-Zugriffstoken laufen alle 3.600 Sekunden ab, laut Googles OAuth-2.0-Dokumentation), kann es keine E-Mails zuverlässig über diese Anbieter senden.
Nylas CLI umgeht all dies. Es kommuniziert direkt mit der Nylas-API, die OAuth2-Token-Refresh, Anbieter-Abstraktion und Verbindungsmanagement übernimmt. Einmal authentifizieren, dann funktionieren alle 72+ Befehle mit Gmail, Outlook, Exchange, Yahoo, iCloud und IMAP auf jeder Plattform.
Was bedeutet „E-Mail ohne SMTP-Server senden"?
E-Mail ohne SMTP-Server senden bedeutet, dass Ihr Skript sich nicht mit einem lokalen MTA, einem Relay-Host oder SMTP-Ports des Anbieters wie 25, 465 oder 587 verbindet. Stattdessen sendet das CLI über HTTPS auf Port 443 durch eine authentifizierte API. Das vermeidet Postfix-Konfiguration, blockierte ausgehende SMTP-Ports, App-Passwörter und Relay-Zugangsdaten in Shell-Skripten.
Das passt für Linux-Server, Ubuntu-Cronjobs, GitHub-Actions-Runner und KI-Sandboxen, in denen SMTP blockiert oder nicht wartungswürdig ist. Wenn ein Workflow nur einen Bericht, eine Warnung, eine Testnachricht oder eine Bestätigungs-E-Mail senden muss, ist die Konfiguration eines vollständigen Mailservers unnötiger operativer Aufwand.
Wie sendet man E-Mails von der Ubuntu-Kommandozeile?
Um E-Mails von der Ubuntu-Kommandozeile zu senden, installieren Sie das CLI, authentifizieren das Postfach einmal und rufen nylas email send aus Bash, Cron, systemd-Timern oder CI auf. Der Befehl benötigt kein apt install postfix, mailutils, sendmail und keine SMTP-Relay-Konfiguration.
1. Installation
Die Installation von Nylas CLI dauert unter 60 Sekunden auf macOS, Linux oder WSL. Homebrew ist der schnellste Weg — es lädt eine vorkompilierte Binärdatei mit SHA-256-Prüfung herunter. Die Go-Option kompiliert aus dem Quellcode und erfordert Go 1.23 oder neuer. Beide Methoden platzieren die nylas-Binary automatisch in Ihrem $PATH.
# macOS / Linux (Homebrew)
brew install nylas/nylas-cli/nylas
# Oder aus dem Quellcode kompilieren (erfordert Go 1.23+)
go install github.com/nylas/cli/cmd/nylas@latest2. Postfach authentifizieren
Die Authentifizierung dauert unter 60 Sekunden. Erstellen Sie eine Anwendung unter dashboard-v3.nylas.com, verbinden Sie Ihr Postfach per OAuth und kopieren Sie Ihren API-Schlüssel. Das CLI speichert Zugangsdaten in Ihrem System-Schlüsselbund (macOS Keychain, GNOME Keyring oder Windows Credential Manager), verschlüsselt im Ruhezustand. Führen Sie dies einmal aus — alle 72 Befehle verwenden die gleichen gespeicherten Zugangsdaten:
nylas auth config
# Fügen Sie Ihren API-Schlüssel ein, wenn Sie dazu aufgefordert werden
# Überprüfen Sie die Verbindung
nylas auth whoami
# => Authenticated as you@company.com (Google Workspace)Der Befehl nylas auth config speichert Zugangsdaten in Ihrem System-Schlüsselbund. Sie können die Verbindung jederzeit überprüfen:
Authentication Status
Current Account:
Email: dev@example.com
Provider: google
Grant ID: d3f4a5b6-c7d8-9e0f-a1b2-c3d4e5f6g7h8
Status: ✓ Valid
Configuration:
Region: us
Config Path: /home/dev/.config/nylas/config.yaml
Secret Store: system keyring3. E-Mail senden
Der Befehl nylas email send stellt eine Nachricht über die Nylas-API in einem einzigen Aufruf zu. Er akzeptiert --to, --subject und --body als erforderliche Flags, mit optionalem --cc und --bcc für weitere Empfänger. Das CLI fragt vor dem Senden nach Bestätigung, es sei denn, Sie übergeben --yes — nützlich in Skripten ohne angeschlossenes Terminal. Die Zustellung dauert in der Regel unter 3 Sekunden für Nachrichten bis 25 MB.
nylas email send \
--to "kollege@unternehmen.de" \
--subject "Quartalsbericht angehängt" \
--body "Hallo -- bitte prüfen Sie die Q4-Zahlen bis Freitag."
# Bestätigungsabfrage überspringen
nylas email send --to user@example.com --subject "Kurze Notiz" --body "..." --yes
# CC und BCC
nylas email send \
--to alice@team.com \
--cc bob@team.com \
--bcc manager@team.com \
--subject "Sprint-Update" \
--body "Alle Aufgaben im Zeitplan."Nach erfolgreichem Versand bestätigt das CLI die Zustellung:
✓ Email sent successfully
Message ID: abc123def456
To: jamie@example.com
Subject: Deployment complete
Sent at: 2026-03-25T15:30:00-04:00Kann man E-Mails von der Kommandozeile unter Linux, macOS oder Windows senden?
Ja. Dieselbe nylas email send-Syntax funktioniert unter Linux, Ubuntu, macOS, Windows PowerShell, WSL und CI-Runnern, sobald das CLI installiert und authentifiziert ist. Suchanfragen wie E-Mail von der Kommandozeile Mac senden und E-Mail von der Kommandozeile Windows senden sind plattformspezifische Varianten desselben Workflows: Binary installieren, Postfach authentifizieren, dann über HTTPS statt SMTP senden.
Wenn Sie E-Mails von der Linux-Kommandozeile mit Anhängen senden möchten, verwenden Sie den Versandpfad auf dieser Seite zusammen mit der nylas email send-Befehlsreferenz für die genauen Flags Ihrer installierten CLI-Version. Der wichtige operative Unterschied: Die Nachricht wird weiterhin über die Anbieter-API gesendet, nicht über einen lokalen Postfix- oder SMTP-Relay.
4. Posteingang lesen und durchsuchen
Der Posteingang-Zugriff vom Terminal umfasst vier Operationen: aktuelle Nachrichten auflisten, nach Lesestatus filtern, nach Stichwort suchen und einzelne Nachrichtentexte lesen. Der Befehl nylas email list gibt standardmäßig die 50 neuesten Nachrichten zurück. Fügen Sie --unread hinzu, um nur ungelesene anzuzeigen, oder --limit, um die Anzahl der Ergebnisse zu steuern (maximal 200 pro Anfrage).
# Aktuelle E-Mails auflisten
nylas email list --limit 10
# Nur ungelesene
nylas email list --unread
# Nach Stichwort suchen
nylas email search "Rechnung" --limit 5
# Bestimmte Nachricht lesen
nylas email read msg_abc123
# MIME-Quelltext anzeigen
nylas email read msg_abc123 --mimeDas Hinzufügen von --json zu jedem List-Befehl gibt RFC-8259-konformes JSON aus, das Sie mit jq filtern oder direkt an einen KI-Agenten übergeben können. Jedes Nachrichtenobjekt enthält 12 Felder: id, grant_id, thread_id, subject, from, to, snippet, date, unread, starred, folders und object.
nylas email list --limit 1 --json[
{
"id": "a1b2c3d4e5f6g7h8",
"grant_id": "d3f4a5b6-c7d8-9e0f-a1b2-c3d4e5f6g7h8",
"thread_id": "a1b2c3d4e5f6g7h8",
"subject": "Re: Projekt Atlas — Q2-Startzeitplan",
"from": [{"name": "Sarah Chen", "email": "sarah@example.com"}],
"to": [{"name": "Alex Rivera", "email": "alex@example.com"}],
"snippet": "Die Staging-Umgebung ist bereit. Die Testergebnisse vom Freitag sind angehängt...",
"date": "2026-03-25T14:22:18-04:00",
"unread": true,
"starred": false,
"folders": ["INBOX"],
"object": "message"
}
]5. E-Mails zeitversetzt senden
Die E-Mail-Planung reiht eine Nachricht serverseitig ein, sodass sie zu einem zukünftigen Zeitpunkt gesendet wird, ohne dass Ihr Terminal geöffnet bleiben muss. Das --schedule-Flag akzeptiert relative Zeitangaben wie 2h oder 30m, natürlichsprachliche Zeiten wie "tomorrow 9am" und ISO-8601-Zeitstempel. Geplante Nachrichten unterstützen Verzögerungen von 1 Minute bis 30 Tage, und Sie können einen geplanten Versand vor dem Zustellungsfenster durch Löschen des Entwurfs abbrechen.
# In 2 Stunden senden
nylas email send --to team@company.com --subject "Erinnerung" --body "..." --schedule 2h
# Morgen früh senden
nylas email send --to team@company.com --subject "Standup" --body "..." --schedule "tomorrow 9am"
# An einem bestimmten Datum senden
nylas email send --to client@example.com --subject "Nachfass" --body "..." --schedule "2026-03-01 14:30"6. Öffnungen und Klicks verfolgen
Open- und Click-Tracking bettet ein 1x1-Tracking-Pixel ein und schreibt Links um, sodass die Nylas-API Interaktionsereignisse aufzeichnet. Das --track-opens-Flag aktiviert Pixel-Tracking, --track-links umschließt jede URL mit einer Weiterleitung, und --track-label weist ein Kampagnen-Tag zur Filterung zu. Tracking-Ereignisse werden innerhalb von 5 Sekunden nach der Aktion des Empfängers ausgelöst und als Webhook-Payloads über die message.opened- und message.link_clicked-Trigger zugestellt.
nylas email send \
--to interessent@unternehmen.de \
--subject "Angebot angehängt" \
--body "Hier ist unser Angebot für Q2." \
--track-opens \
--track-links \
--track-label "q2-akquise"
# Tracking-Ereignisse werden per Webhook zugestellt:
nylas webhook create \
--url https://your-server.com/hooks \
--triggers message.opened,message.link_clicked7. Mit GPG signieren und verschlüsseln
GPG-Signierung und -Verschlüsselung funktionieren nativ — keine zusätzlichen Tools außer einem GPG-Schlüsselbund. Das CLI implementiert RFC 3156 PGP/MIME mit etwa 200 Millisekunden Overhead pro Nachricht für die Signierung und 400 Millisekunden für die Verschlüsselung. Öffentliche Schlüssel werden beim ersten Verschlüsseln an einen Empfänger automatisch von Schlüsselservern abgerufen:
# Mit Ihrem GPG-Schlüssel signieren
nylas email send --to recht@partner.de --subject "Vertrag" --body "..." --sign
# Mit dem öffentlichen Schlüssel des Empfängers verschlüsseln (automatisch von Schlüsselservern abgerufen)
nylas email send --to recht@partner.de --subject "Vertrag" --body "..." --encrypt
# Beides (empfohlen für maximale Sicherheit)
nylas email send --to recht@partner.de --subject "Vertrag" --body "..." --sign --encrypt
# Empfangene Nachricht entschlüsseln und verifizieren
nylas email read msg_xyz789 --decrypt --verifySiehe die vollständige Anleitung für GPG-verschlüsselte E-Mails für Schlüsselverwaltung, Fehlerbehebung und Verschlüsselung mit mehreren Empfängern.
8. KI-gestütztes Smart Compose
Smart Compose generiert E-Mail-Entwürfe aus einer natürlichsprachlichen Eingabe, ohne das Terminal zu verlassen. Der Befehl nylas email smart-compose sendet Ihre Eingabe an den Nylas-KI-Endpunkt und gibt einen formatierten Entwurf in unter 2 Sekunden zurück. Mit --message-id generieren Sie eine kontextbezogene Antwort auf einen bestimmten Thread. Der Unterbefehl ai analyze scannt ungelesene Nachrichten und liefert Zusammenfassungen, Kategorien und Dringlichkeitsstufen.
# Entwurf aus einer Eingabe generieren
nylas email smart-compose --prompt "Bedanke dich für das Meeting und bestätige die nächsten Schritte"
# Antwort auf eine bestimmte Nachricht generieren
nylas email smart-compose --message-id msg_abc123 --prompt "Nimm die Einladung höflich an"
# KI-Posteingangsanalyse
nylas email ai analyze --unread
# => Zusammenfassung, Kategorien, Aufgaben, Dringlichkeitsstufen9. Skripting und Automatisierung
Shell-Skripting mit dem Nylas CLI macht E-Mail-Operationen zu kombinierbaren Bausteinen. Jeder Unterbefehl unterstützt --json, das strukturierte Daten ausgibt, die Sie mit jq, awk oder jedem anderen Verarbeitungstool weiterleiten können. Das folgende Beispiel zeigt ein morgendliches Posteingangs-Zusammenfassungsskript, das ungelesene Nachrichten zählt, dringende nach Betreffzeilen-Stichwörtern markiert und personalisierte E-Mails aus einer CSV-Datei versendet. Ein 2-Sekunden-sleep zwischen CSV-Versendungen vermeidet das Standardratelimit von 50 Anfragen pro Minute.
# Morgendliches Posteingangs-Zusammenfassungsskript
#!/bin/bash
echo "=== Posteingang-Zusammenfassung ==="
unread=$(nylas email list --unread --json | jq length)
echo "Ungelesen: $unread"
# Dringlichkeitsprüfung
nylas email list --unread --json \
| jq '[.[] | select(.subject | test("dringend|asap"; "i"))]' \
| jq 'length' \
| xargs -I{} echo "Dringend: {}"
# Massenversand aus CSV
while IFS=, read -r email name; do
nylas email send \
--to "$email" \
--subject "Hallo $name" \
--body "Ihr Konto ist bereit." \
--yes
sleep 2
done < kontakte.csv10. An KI-Agenten weiterleiten
Die Weiterleitung von CLI-Ausgaben an KI-Agenten macht das Terminal zu einer E-Mail-Automatisierungsschicht. Jeder nylas email-Unterbefehl unterstützt --json, das RFC-8259-konformes JSON ausgibt, das Agenten ohne Transformation verarbeiten können. Sie können Posteingangsdaten an einen Triage-Agenten übergeben, Antworten mit einem LLM generieren oder den integrierten MCP-Server installieren, damit Tools wie Claude Code und Cursor CLI-Befehle direkt aufrufen.
# Agent triagiert Ihren Posteingang
nylas email list --unread --json | agent triage --rules ./posteingang-regeln.yml
# Agent erstellt Antwort, CLI sendet sie
nylas email send \
--to sarah@team.io \
--subject "Re: Nachfass" \
--body "$(agent draft --context msg_a1f2)" \
--yes
# Integrierten MCP-Server für Claude, Cursor oder VS Code starten
nylas mcp install --assistant claude-codeModel Context Protocol (MCP) ermöglicht KI-Assistenten, CLI-Tools direkt aufzurufen. Siehe die vollständige Anleitung für KI-Agent-E-Mail-Zugriff für MCP-Einrichtung und Tool-Konfiguration.
11. Cronjobs, Here-Docs und shell-native Automatisierung
Cron-basierte E-Mail-Automatisierung ermöglicht geplante Warnungen, Berichte und Health-Checks ohne laufenden Daemon oder GUI. Bash-Here-Docs lösen das Problem mehrzeiliger Nachrichtentexte — cat <<'EOF' übergibt beliebigen Text an --body ohne Anführungszeichen oder Zeilenumbrüche zu escapen. Das CLI beendet mit Code 0 bei Erfolg und ungleich null bei Fehler, sodass das Einbetten in if !-Blöcke Cronjobs eine zuverlässige Fehlerbehandlung gibt. Ein typischer nächtlicher Bericht-Cronjob benötigt etwa 4 Zeilen in Ihrer Crontab.
# Here-Doc für längere E-Mail-Texte in Shell-Skripten
nylas email send \
--to ops@unternehmen.de \
--subject "Nächtlicher Backup-Bericht" \
--body "$(cat <<'EOF'
Backups erfolgreich abgeschlossen.
- Cluster: prod-a
- Dauer: 18m
- Snapshot-Alter: 24h
EOF
)" \
--yesBei Cronjobs stellt das Einbetten in einen if !-Block sicher, dass Fehler sichtbar werden statt stillschweigend zu verschwinden. Das CLI gibt Exit-Code 1 bei Authentifizierungsfehlern, Netzwerk-Timeouts und API-Ablehnungen zurück.
# Cron-freundliche Prüfung mit expliziter Fehlerbehandlung
if ! nylas email send --to warnungen@unternehmen.de --subject "Festplattenwarnung" --body "Festplattenauslastung > 90%" --yes; then
echo "E-Mail-Versand fehlgeschlagen" >&2
exit 1
fi12. mailx, sendmail und Postfix ersetzen
Das Ersetzen von mailx, sendmail oder Postfix durch Nylas CLI eliminiert den lokalen MTA-Stack vollständig. Ein Postfix-Relay erfordert die Pflege von TLS-Zertifikaten, die Verwaltung einer Mail-Warteschlange und die Überwachung eines dauerhaft laufenden Daemons — etwa 15-20 Konfigurationsdateien in /etc/postfix/ für ein Produktionssetup. Der mailx-Befehl setzt einen funktionierenden MTA voraus, und sendmails Konfigurationssyntax (sendmail.cf) hat sich seit den 1990er Jahren nicht wesentlich verändert. Das CLI ersetzt all dies durch eine einzige Binary und einen API-Schlüssel.
Wenn Ihre Skripte derzeit Text in mailx -s "betreff" user@example.com pipen, ist die Migration einfach: Ersetzen Sie mailx durch nylas email send --to user@example.com --subject "betreff" --body "$(cat)". Kein Relay, keine Warteschlange, kein Daemon-Neustart nach Konfigurationsänderungen.
Wie schneidet Nylas CLI im Vergleich zu anderen CLI-E-Mail-Tools ab?
| Funktion | mail / mailx | mutt | Nylas CLI |
|---|---|---|---|
| E-Mail senden | Ja (braucht MTA) | Ja (braucht SMTP) | Ja (ein Befehl) |
| Posteingang lesen | Nur lokal | Ja | Ja |
| Gmail OAuth2 | Nein | Komplex | Integriert |
| Microsoft 365 | Nein | Komplex | Integriert |
| GPG Signieren/Verschlüsseln | Manuell | Integriert | Integriert |
| Kalenderzugriff | Nein | Nein | Ja |
| JSON-Ausgabe | Nein | Nein | Ja (--json) |
| KI-Verfassen | Nein | Nein | Ja |
| MCP-Server | Nein | Nein | Integriert |
Nächste Schritte
- Gmail von der Kommandozeile senden -- Gmail-spezifischer Versandworkflow ohne Gmail-API-Client-Code
- Outlook-E-Mail von der CLI senden -- Microsoft 365 und Exchange-spezifische Muster
- Yahoo Mail von der CLI senden -- App-spezifische Passwörter und SMTP-Konfiguration überspringen
- iCloud Mail von der CLI senden -- eigene Domains, „E-Mail-Adresse verbergen", keine App-Passwörter
- E-Mail von PowerShell senden -- PowerShell-spezifische Muster, Planung und Skripting
- E-Mail von Python ohne SMTP senden -- Subprocess-Versand ohne App-Passwörter oder Postfix
- GitHub Actions E-Mail-Benachrichtigungen -- CI-Fehlerwarnungen mit Workflow-Secrets senden
- E-Mail-Signatur-Extraktion mit der CLI -- gespeicherte Signaturen verwalten und mit Signatur-IDs senden
- E-Mail vom Terminal durchsuchen -- Gmail-, Graph- und IMAP-Suchsyntax vergleichen
- E-Mail-Berichte vom Terminal automatisieren -- tägliche Zusammenfassungen und wöchentliche Digests mit Cron
- Gmail SMTP-Einstellungen 2026 -- Ports, TLS, App-Passwörter, OAuth und Sendelimits
- CLI-E-Mail-Tools im Vergleich -- Wahl zwischen mailx, mutt, msmtp, swaks und einer anbieterneutralen E-Mail-CLI
- KI-Agent-CLI für E-Mail und Kalender -- E-Mail- und Kalenderbefehle als JSON-Tools für LLM-Agenten
- Gmail-E-Mails auflisten -- Gmail-Posteingang vom Terminal lesen und durchsuchen
- Exchange-E-Mails auflisten -- Exchange Online und On-Premises vor EWS-Abschaltung
- IMAP-E-Mails auflisten -- Fastmail, Zoho, Self-Hosted und ISP-E-Mail
- Kalender vom Terminal verwalten -- Termine, Planung, Zeitzonen-Tools
- Eingehende E-Mails empfangen -- verwaltete Adressen und Webhooks
- E-Mails vom Terminal planen -- Nachrichten für späteren Versand mit --schedule einreihen
- Vollständige Befehlsreferenz -- jedes Flag und jeder Unterbefehl dokumentiert