Mit jedem Body und Anhängen senden, das Postfach lesen und durchsuchen, antworten, Threads ablegen und Wegwerf-Postfächer nutzen.
Senden
openemail send --to [email protected] --subject "Lunch?" --text "Thursday at noon works for me."Der Body kommt aus der ersten dieser Quellen, die vorhanden ist:
--textund--html, auch beide zusammen, wenn Sie beide Teile wollen.--body-file <path>. Eine.html- oder.htm-Datei wird als HTML gesendet, alles andere als Text, und-liest stdin.- Was über stdin kommt. Eingabe, die mit einem HTML-Tag beginnt, wird als HTML gesendet.
- Ihr Editor (
$VISUAL, dann$EDITOR), wenn Sie ihn in einem Terminal ausführen.
Ohne --from sendet die CLI von der einzigen Adresse, von der Sie senden können, oder lässt Sie in einem Terminal eine wählen. Unbeaufsichtigt und mit mehr als einer bricht sie ab und verlangt --from. In einem Terminal sehen Sie eine Zusammenfassung und bestätigen, bevor etwas rausgeht, was --yes überspringt.
| Flag | Was es tut |
|---|---|
| --to, --cc, --bcc | Empfänger, durch Kommas getrennt oder wiederholt. Ada Lovelace <[email protected]> funktioniert auch |
| --from, --reply-to | Die Absenderadresse und der Reply-To-Header |
| -s, --subject | Die Betreffzeile |
| -a, --attach <path> | Eine Datei anhängen. Für weitere wiederholen |
| --at <when> | Später senden: eine ISO-Zeit wie 2026-10-01T09:00:00Z oder eine Verzögerung wie 10m, 2h, 1d oder PT1H |
| --undo <seconds> | Einen sofortigen Versand bis zu 900 Sekunden zurückhalten, damit er noch abgebrochen werden kann |
| --translate <language> | Die E-Mail vor dem Versand in diese Sprache übersetzen |
| --template <id>, --props <json> | Eine gespeicherte Vorlage mit ihren Props statt eines Bodys senden |
| --draft <id> | Einen gespeicherten Entwurf genau so senden, wie er geschrieben wurde |
| --thread <id> | Die gesendete E-Mail in diesen Thread einordnen |
| --tag <key=value> | Die E-Mail taggen. Für weitere wiederholen |
| --idempotency-key <key> | Den Befehl mit demselben Schlüssel erneut auszuführen, sendet nie doppelt |
cat report.md | openemail send --to [email protected] --subject "Weekly report" --attach chart.pngopenemail send --to [email protected] --subject "Invoice" --body-file invoice.html --translate de --at 2hopenemail send --to [email protected] --template welcome --props '{"name":"Ada"}' --tag campaign=onboardingEr gibt die E-Mail-ID und ihren Status aus. sent, partial und failed heißen, dass der Versand innerhalb der Anfrage versucht wurde, und queued und scheduled, dass er zurückgehalten wird. Ein failed-Versand endet mit Exit-Code 1, und --json gibt die ganze E-Mail aus.
Jeder Versand trägt einen Idempotenzschlüssel, Ihren oder einen von der CLI erzeugten, sodass ein erneuter Versuch nach einer abgebrochenen Verbindung die Nachricht nie doppelt sendet. Übergeben Sie Ihren eigenen, wenn eine Pipeline denselben Schritt erneut ausführen kann.
Anhänge
--attach nimmt bis zu 20 Dateien. Solange sie zusammen höchstens 5 MB groß sind, reisen sie in der Nachricht mit. Sind sie größer, wird jede zuerst in Dateien hochgeladen, und die Nachricht verweist darauf, sodass eine große Datei keinen zusätzlichen Schritt braucht. Der Inhaltstyp ergibt sich aus der Dateiendung.
Posteingang
openemail inboxopenemail inbox --unread --limit 50openemail inbox archive --sort oldestopenemail inbox --all --json | jq -r ".items[].id"Listet eine Seite Threads, neueste zuerst, mit dem Zeitpunkt der letzten Bewegung, wer zuletzt schrieb, dem Betreff, den Labels und der Thread-ID. Ein Punkt markiert ungelesene Mail. Der Ordner ist der Posteingang, außer Sie nennen einen anderen: sent, archive, starred, snoozed, spam, trash, draft oder eine Label-ID wie USER_RECEIPTS.
-u,--unreadbehält Threads mit ungelesener Mail,-l,--labelbehält Threads mit einem Label, und-q,--querygrenzt die Liste mit einer Suche ein.-n,--limitlegt die Seitengröße fest, von 1 bis 100 (25, wenn Sie nichts angeben). Bleibt mehr übrig, wird der nächste Cursor auf stderr für--cursorausgegeben, und--allliest jede Seite.--from-contactsbehält Threads, deren neueste Nachricht von einem gespeicherten Kontakt kam, und--sortordnet sie nachnewest,oldest,senderodersubject.--jsongibt{ items, hasMore, nextCursor }aus, mit jedem Thread vollständig.
Suche
openemail search invoice from:adaopenemail search "quarterly report" has:pdf newer_than:30dopenemail search in:anywhere from:me to:ada --limit 50openemail search -- invoice -from:adaDie Suche nimmt die Syntax des Suchfelds der App: einfache Wörter, Phrasen in Anführungszeichen und Operatoren wie from:, to:, subject:, has:pdf, is:unread, after:2026/01/31 und newer_than:7d. Sie durchsucht den Posteingang oder den Ordner in --folder, außer die Suchanfrage nennt einen mit in: oder is:, und in:anywhere durchsucht jeden Ordner. Sie nimmt die Flags von inbox und zeigt ihre Ergebnisse genauso.
Ein Wort, das mit einem Bindestrich beginnt, wird aus den Ergebnissen ausgeschlossen, und die CLI würde es als Flag lesen, setzen Sie also -- vor eine solche Suchanfrage.
Einen Thread lesen
openemail read CAHk7pQ2x9LmZ4openemail read CAHk7pQ2x9LmZ4 --message -1openemail read CAHk7pQ2x9LmZ4 --html --message 1 > first.htmlGibt jede Nachricht im Thread aus, älteste zuerst: wer sie an wen schickte, wann, den Betreff, die Anhänge mit Größe und ID und den Body. Ein Klartextteil wird so gezeigt, wie er ist, und eine reine HTML-Nachricht wird in lesbaren Text umgewandelt, der Listen, Zitate, Überschriften und Links behält. Lesen markiert den Thread als gelesen, außer Sie übergeben --no-mark-read.
-m,--message <n>zeigt eine Nachricht, von 1 an gezählt, oder mit einer negativen Zahl von der neuesten an.--htmlgibt stattdessen das rohe HTML aus.- Eine verschlüsselte Nachricht wird hier nicht entschlüsselt, öffnen Sie sie also in der Web-App.
Antworten
openemail reply CAHk7pQ2x9LmZ4 --text "Thanks, that works for me."openemail reply CAHk7pQ2x9LmZ4 --all --attach notes.pdfecho "Confirmed." | openemail reply CAHk7pQ2x9LmZ4 --yesAntwortet im selben Thread demjenigen, der die letzte Nachricht schickte, oder an deren Reply-To-Adresse. Ist die letzte Nachricht Ihre, geht die Antwort an die Personen, an die sie ging. --all setzt alle anderen auf dieser Nachricht in Kopie und lässt Ihre eigenen Adressen weg. Der Betreff bekommt Re:, wenn er es noch nicht hat, und die Antwort geht von der Adresse, an die der Thread zugestellt wurde, wenn Sie von ihr senden können.
Sie nimmt die Body-, Anhang-, Planungs-, Übersetzungs-, Tag- und Idempotenz-Flags von send, dazu --from und --subject, und --to, --cc und --bcc überschreiben die Empfänger.
Threads ablegen
| Befehl | Was es tut |
|---|---|
| archive <thread-id...> | Aus dem Posteingang, weiter durchsuchbar |
| unarchive <thread-id...> | Zurück in den Posteingang |
| trash <thread-id...> | In den Papierkorb. Er bittet um Bestätigung, weil kein Aufruf einen Thread wieder herausholt |
| star, unstar | Den Stern setzen oder entfernen |
| mark read, mark unread | Threads als gelesen oder ungelesen markieren |
| snooze <thread-id...> --until <when> | Threads bis zu einer Zeit ausblenden oder für eine Dauer wie 3h oder 1w. Sie kommen innerhalb von etwa einer Stunde danach zurück |
| unsnooze | Zurückgestellte Threads jetzt zurückholen |
| label add, remove --label <id> | Labels an Threads setzen oder entfernen. openemail labels list zeigt die IDs |
Jeder nimmt mehrere Thread-IDs und meldet jede einzeln. Der erste Fehler bestimmt den Exit-Code, und --json gibt { results, succeeded, failed } aus. IDs aus einer Suche lassen sich direkt anschließen:
openemail inbox --query "newer_than:30d from:alerts" --json | jq -r ".items[].id" | xargs openemail archiveWegwerf-Postfächer
openemail temp erstellt kurzlebige Adressen, die weder Konto noch Anmeldung brauchen, passend für Registrierungstests und Einmalcodes. Jedes Postfach-Token wird in ~/.openemail/temp-mail.json aufbewahrt, sodass spätere Befehle ein Postfach über seine ID oder Adresse finden, oder von selbst, wenn Sie nur eines haben.
ADDRESS=$(openemail temp new --ttl 15)openemail temp watch --first --json | jq -r .snippetopenemail temp listopenemail temp readopenemail temp read tinb_4f2a tmail_91c3openemail temp delete --yestemp newgibt nur die Adresse auf stdout aus. Sie lebt 60 Minuten, außer--ttlsagt etwas anderes, höchstens 24 Stunden, und--nameund--domainwählen die Adresse.temp watchgibt aus, was angekommen ist, und prüft dann alle 3 Sekunden, bis Sie abbrechen oder das Postfach abläuft.--firsthört bei der ersten Nachricht auf, und--jsongibt eine JSON-Zeile pro Nachricht aus.temp readlistet die Nachrichten mit einer kurzen Vorschau oder gibt eine ganze Nachricht aus.temp deletelöscht das Postfach und seine Mail sofort. Die Adresse bleibt 7 Tage über das Ende ihrer Laufzeit hinaus reserviert.--inbox-tokenerreicht ein Postfach, das diese CLI nicht angelegt hat, intemp read,watchunddelete.- Der Absender von Mail in einem Wegwerf-Postfach ist nie verifiziert.