Funktionen
Ein Postfach im Browser, das nichts anderes kennt als deinen Bucket: Ordner sind S3-Prefixe, Zustand liegt neben den Mails, und was du sortierst, sieht der zweite Rechner auch.
- Lesen: Index per Range-GET, HTML in der Sandbox, Bilder blockiert, SPF/DKIM/DMARC-Marke nur bei Fehlschlag
- Schreiben: Antworten im Faden, Blindkopie, Anhänge, kein Doppelversand nach einem Absturz
- Sortieren: Ordner, Tags, Regeln mit belegten Vorschlägen, Suche mit Filtern, mehrere Postfächer
Ordner sind echte S3-Prefixe
--prefix mail/ ist die Wurzel. Was direkt darunter liegt, ist der Posteingang; Unterordner sind Mailordner:
mail/ ← Prefix aus der SES-Receipt-Rule = Posteingang
mail/archiv/ ← Archiv
mail/spam/ ← Spam
mail/trash/ ← Papierkorb
mail/sent/ ← Kopie jeder verschickten Mail
mail/drafts/ ← Entwürfe, samt Blindkopie und Anhängen
mail/kunden/ ← selbst angelegt
mail/.s3mail-state.json ← Tags, gelesen/ungelesen, Stern, Regeln (Snapshot)
mail/.s3mail-state/ ← die einzelnen Änderungen seit dem Snapshot
Verschieben ist CopyObject + DeleteObject. Du siehst die Ordner in der S3-Konsole, und der Papierkorb lässt sich per Lifecycle-Regel leeren. Die Message-Id ist der Basename, nicht der volle Key; deshalb überlebt alles, was du über eine Mail weißt, das Verschieben zwischen Ordnern.
Lesen
- Beim Indexieren holt s3mail pro Mail nur die ersten 64 KB per Range-GET, genug für Header und Vorschautext. Abgleich über ETags, acht parallele Requests. „Neu laden“ holt nur Neues.
- HTML-Mails rendern in einem
sandbox=""-iframe mit CSP. Externe Bilder sind blockiert, bis du sie nachlädst: sie würden jedem Absender eine Lesebestätigung schicken. - Anhänge einzeln herunterladbar, die Rohmail als
.eml. Bilder und PDF öffnen sich in einer Vorschau, alles andere gibt es nur zum Herunterladen, SVG ausdrücklich eingeschlossen: es sieht aus wie ein Bild, ist aber XML mit Skriptunterstützung. - SES-Verdicts (
X-SES-Spam-Verdict,X-SES-Virus-Verdict) als Badge. - SPF, DKIM und DMARC aus
Authentication-Results: eine Marke erscheint, wenn eine der drei Prüfungen fehlgeschlagen ist. Kein Haken auf jeder Mail, denn eine Marke, die immer da ist, sieht bald niemand mehr an. Geglaubt wird nur der oberste Kopf, deramazonses.comnennt; jeder Absender kann sich selbst einen mitdkim=passhineinschreiben.
Schreiben
- Antworten, Weiterleiten, neue Nachricht. Antworten hängen per
In-Reply-ToundReferencesam Faden des Originals. - Die Signatur steht über dem Zitat und landet im Textfeld statt beim Versand, damit sie vorher kürzbar ist.
- Adressen werden beim Tippen vorgeschlagen, aus dem Index, nicht aus einem Adressbuch: ein zweiter Ort für Adressen ist ein zweiter Ort, an dem sie falsch stehen.
- Anhänge, Cc und Blindkopie. Die Blindkopie geht über die Empfängerliste an SES und steht nie im Kopf der Mail. Mehr als 10 MB lehnt s3mail ab, bevor hochgeladen wird; das ist die Grenze von SES.
- Jede verschickte Mail liegt als Kopie in
sent/. - Kein Doppelversand nach einem Absturz. Bevor SES gefragt wird, legt s3mail einen Vermerk neben den Entwurf und streicht ihn erst durch, wenn Kopie und Entwurf erledigt sind. Stirbt das Programm dazwischen, holt der nächste Start nach, was feststeht; bleibt offen, ob SES die Mail genommen hat, fragt ein Balken über dem Postfach, statt sie ein zweites Mal zu verschicken.
- Entwürfe liegen als echte Mail in
drafts/, samt Blindkopie und Anhängen, und sind auch vom zweiten Rechner aus zu sehen. - Textbausteine je Postfach in der Konfiguration, eingesetzt an der Cursorposition.
Sortieren, Regeln, Suche
Sortieren
- Ordner anlegen und verschieben, Papierkorb, Spam, Archiv. Endgültiges Löschen nur aus dem Papierkorb und nur nach Bestätigung, serverseitig erzwungen.
- Tags mit Farben, mehrere pro Mail; gelesen/ungelesen mit Zähler pro Ordner; Stern.
- Mehrfachauswahl mit Shift-Klick. Das Kästchen in der Werkzeugleiste wählt alle Treffer der aktuellen Suche: „alles von news@shop.io ins Archiv“ ist zwei Klicks. Bleibt eine Mail hängen, ziehen die anderen trotzdem um, und die Meldung nennt die Zahl, die wirklich angekommen ist.
Regeln
„Enthält X im Feld Von/An/Betreff/irgendwo → Ordner + Tags“, angewandt beim Indexieren auf neue Mails, erste passende Regel gewinnt. Eine Mail wird nur einmal automatisch einsortiert; wenn du sie zurückschiebst, bleibt sie liegen. Papierkorb und Spam fasst die Automatik nie an.
Regelvorschläge zeigen, was du ohnehin von Hand tust: „Du hast 11 von 12 Mails von news@shop.io nach Werbung verschoben.“ Das stützt sich auf Belege, nicht auf Geschmack: mindestens vier Mails desselben Absenders und mindestens 80 % davon im selben Ordner, die Zahlen stehen dabei. Ausgewertet werden Absender, Ordner und Tags, nie der Inhalt einer Mail, ohne Netzverbindung und ohne API-Schlüssel. Regeln und Tagfarben lassen sich als JSON exportieren; der Import fügt zusammen und ersetzt nie.
Suche
Freie Wörter in Von/An/Betreff/Vorschau/Tags, dazu kombinierbare Filter:
rechnung from:kunde@x.de subject:"Angebot" after:2026-01-01 before:2026-08-01
has:anhang has:spam is:ungelesen is:stern tag:wichtig in:archiv
Eigene Filter merkt das + in der Seitenleiste unter einem Namen. Sie liegen wie Tags und Regeln im Bucket: der zweite Rechner sieht sie, und nichts davon verschwindet, wenn jemand den Browser-Cache leert.
Für die Arbeit am Kunden
Wartet auf Antwort: was vor mindestens fünf Tagen rausging und worauf niemand geantwortet hat, längste Wartezeit zuerst. Beantwortet gilt über die Adresse, nicht über den Faden: eine Antwort kommt oft als neue Mail, von einer Kollegin der angeschriebenen Person oder mit einem Faden, den ein Ticketsystem abgeschnitten hat. Verlauf in der Mailansicht zeigt alle Mails mit dieser Adresse über alle Ordner.
Tastatur:n neue Nachricht · j/k blättern · x auswählen · s Stern · e archivieren · Entf Papierkorb · / Suche.
Mehrere Postfächer, drei Sprachen
Ein s3mail bedient beliebig viele Postfächer, info@ und support@ im selben Bucket oder in verschiedenen AWS-Konten, jedes mit eigenem Absender, eigener Signatur und eigenem Zustand. Scheitert eines beim Start, kommen die übrigen trotzdem hoch. Die Oberfläche spricht Deutsch, Englisch und Spanisch; die Suchbegriffe funktionieren in allen drei (from: wie von: wie de:). Ordnernamen sind echte S3-Prefixe und werden nur angezeigt, nicht übersetzt.
Weiter
Zugang, Verschlüsselung, Zustand
Die drei Prüfungen bei jeder Anfrage, verschlüsselte Buckets, geteilter Zustand ohne Sperre.