🐳 Docker · 🗄️ SQLite · 🌗 Light & Dark Mode · 🇩🇪 Deutsch · 🇬🇧 English
🇩🇪 Deutsche Anleitung · 🇬🇧 English documentation
Dein Postfach. Dein Platz.
Modernes Webmail mit einer blauen Oberfläche, flexiblen Ansichten und einer einfachen Anmeldung.
| Bereich | Funktionen |
|---|---|
| 🔐 Anmeldung | E-Mail-Adresse und Passwort oder App-Passwort; automatische IMAP-/SMTP-Erkennung |
| 📬 Postfach | Listenansicht, Lesebereich unten oder rechts |
| ↔️ Oberfläche | Verschiebbare Ordnerleiste, Lesebereiche und Spalten |
| 🌗 Darstellung | Heller und dunkler Modus |
| 🔍 Suche | Ordnerübergreifende Suche mit animierter Suchanzeige |
| ✍️ Nachrichten | HTML/Klartext, Antworten, Weiterleiten, Cc/Bcc und Anhänge |
| 📁 Ordner | Hierarchie, Unterordner, Erstellen, Löschen und Sichtbarkeit |
| 🗂️ Archiv | Frei wählbarer Archivordner und verschiedene Ablagestrukturen |
| 👥 Kontakte | Adressbücher, Gruppen, Kontaktbilder und erweiterte Kontaktinformationen |
| 📥 Import | Google-/Outlook-CSV, einschließlich Kontakten ohne E-Mail-Adresse |
| 📤 Export | Kontakte als CSV/vCard; Nachrichten als EML |
| ⚙️ Einstellungen | Sprache, Darstellung, Identität, Signatur, Spezialordner und Benachrichtigungen |
Voraussetzungen:
Die Datei docker-compose.yml herunterladen und in ihrem Verzeichnis ausführen:
docker compose up -d
Anschließend im Browser öffnen:
http://SERVER-IP:8886
Auf dem eigenen Rechner:
http://localhost:8886
Datenbank und Verschlüsselungsschlüssel werden beim ersten Start automatisch angelegt.
Für eine Docker-Standalone-Umgebung:
post-webmail.Danach die Webmail unter http://SERVER-IP:8886 öffnen.
Für Docker Compose eine .env neben der Compose-Datei erstellen:
WEBMAIL_PORT=8886
# Optional: eigener Datenordner auf dem Docker-Host
# WEBMAIL_DATA_DIR=/pfad/zu/webmail/data
| Variable | Bedeutung | Standard |
|---|---|---|
WEBMAIL_PORT | Port der Weboberfläche | 8886 |
WEBMAIL_DATA_DIR | Optionaler Datenordner auf dem Docker-Host | Persistentes Docker-Volume |
In Portainer diese Werte unter den Umgebungsvariablen des Stacks eintragen.
Ein eigener Datenordner muss für den Backend-Benutzer mit UID 1000 schreibbar sein.
Melde dich mit deiner E-Mail-Adresse und deinem Passwort oder App-Passwort an.
Die Anwendung ermittelt die IMAP- und SMTP-Einstellungen automatisch und prüft die Verbindung.
Bei Zwei-Faktor-Anmeldung wird häufig ein App-Passwort benötigt. IMAP muss beim Mailanbieter aktiviert sein.
Konten, die ausschließlich OAuth2 erlauben, werden derzeit nicht unterstützt. Individuelle Server ohne passende Autokonfiguration können möglicherweise nicht automatisch erkannt werden.
Wähle zwischen drei Ansichten:
| Ansicht | Beschreibung |
|---|---|
| 📋 Liste | Nachrichtenliste mit separatem Maildialog |
| ⬇️ Lesebereich unten | Nachrichtenliste oben, Vorschau darunter |
| ➡️ Lesebereich rechts | Nachrichtenliste links, Vorschau daneben |
Weitere Möglichkeiten:
| Bedienung | Funktion |
|---|---|
STRG / CMD + Klick | Einzelne Nachrichten auswählen oder abwählen |
SHIFT + Klick | Zusammenhängenden Bereich auswählen |
STRG + SHIFT + Klick | Bereich zur bestehenden Auswahl hinzufügen |
Das Auswahlmenü bietet Alle, Keine, Gelesene und Ungelesene für die aktuelle Seite.
Das Löschen verschiebt Nachrichten normalerweise in den Papierkorb. Endgültiges Löschen erfordert eine Bestätigung.
Anhänge werden derzeit nicht dauerhaft mit Entwürfen gespeichert. Nach erneutem Öffnen eines Entwurfs gegebenenfalls wieder anhängen.
Die Suche durchsucht alle auswählbaren Ordner, einschließlich ausgeblendeter Ordner.
Verfügbare Suchfelder:
Eine animierte Anzeige zeigt, dass die Suche läuft. Ergebnisse werden seitenweise angezeigt.
Die Suchdauer hängt von der Postfachgröße und der Geschwindigkeit des Mailservers ab.
Beim Löschen eines Ordners werden auch dessen Nachrichten und Unterordner entfernt. Systemordner sind geschützt.
Für das Archiv stehen verschiedene Strukturen zur Verfügung:
Ist noch kein Archivordner eingestellt, erscheint bei der ersten Verwendung ein Auswahldialog.
Die Kontaktansicht besteht aus drei Bereichen:
Adressbücher und Gruppen → Kontaktliste → Kontaktdetails
Das persönliche Standardadressbuch bleibt erhalten. Beim Löschen eines Adressbuchs werden dessen Kontakte nach Bestätigung entfernt. Das Löschen einer Gruppe entfernt nur die Gruppenzuordnung.
Kontaktinformationen:
Kontakte ohne E-Mail-Adresse werden ebenfalls unterstützt.
Unter Kontakte → CSV importieren:
| Eigenschaft | Unterstützung |
|---|---|
| Trennzeichen | Komma, Semikolon und Tabulator |
| Zeichencodierung | UTF-8, UTF-16 und Windows-1252 |
| Besondere Inhalte | Zitierte Felder und mehrzeilige Notizen |
| Maximale Dateigröße | 10 MB |
| Maximale Kontaktanzahl | 10.000 pro Import |
Kontakte ohne E-Mail-Adresse werden übernommen. Personen mit derselben E-Mail-Adresse bleiben getrennte Kontakte.
Die Option „Identische Kontakte überspringen“ verhindert den erneuten Import vollständig identischer Datensätze.
Nicht zugeordnete Angaben und ungültige E-Mail-Werte bleiben bei ansonsten gültigen Kontakten als Zusatzfelder erhalten.
| Bereich | Möglichkeiten |
|---|---|
| 🖥️ Benutzeroberfläche | Sprache, Zeitzone, Zeit- und Datumsformat, kurze Datumsanzeige |
| 📬 Postfachansicht | Layout, Seitengröße und Zeitpunkt der Lesemarkierung |
| 🔔 Benachrichtigungen | Hinweise in der Webmail, Desktop-Mitteilungen und Ton |
| 👁️ Nachrichtendarstellung | HTML/Klartext, externe Bilder, Emoticons und lange Zitate |
| ✍️ Nachrichtenerstellung | Formatierung, Entwurfsspeicherung, Antwort- und Signaturregeln |
| 👥 Kontakte | Standardadressbuch, Anzeige, Sortierung und Autovervollständigung |
| 📁 Spezialordner | Entwürfe, Gesendet, Spam, Papierkorb und Archiv |
| 🗂️ Archiv | Aufteilung und Ablagestruktur |
| 🛠️ Serververhalten | Löschen, Lesemarkierung und Bereinigung beim Abmelden |
| 👤 Absenderidentität | Anzeigename, Antwortadresse und Signatur |
Für externe Bilder stehen drei Einstellungen zur Verfügung:
Aktive Inhalte und externe Stylesheets bleiben blockiert.
Das Laden externer Bilder kann für den Absender erkennbar sein.
Hinweise in der Webmail, Desktop-Mitteilungen und Benachrichtigungston sind getrennt einstellbar.
Desktop-Mitteilungen benötigen eine Browserfreigabe. Die Webmail muss geöffnet bleiben; Browser können Prüfintervalle in Hintergrund-Tabs verzögern.
E-Mails und ihre Ordner bleiben auf dem IMAP-Server.
SQLite speichert unter anderem:
Die Anwendungsdaten werden persistent gespeichert. Datenbank und secret.key bei Sicherungen gemeinsam aufbewahren.
Zugangsdaten werden mit AES-256-GCM verschlüsselt. Mailserver-Verbindungen verwenden TLS. HTML-Nachrichten werden bereinigt und isoliert dargestellt.
Für Zugriff über das Internet HTTPS über einen Reverse-Proxy verwenden. Das Compose-Setup selbst liefert HTTP.
Über „Demo ansehen“ auf der Anmeldeseite lässt sich die Oberfläche mit Beispieldaten ausprobieren.
Die Demo verbindet sich mit keinem Mailserver und versendet keine Nachrichten.
Your inbox. Your space.
Modern webmail with a blue interface, flexible layouts and a simple sign-in experience.
| Area | Features |
|---|---|
| 🔐 Sign-in | Email address and password or app password; automatic IMAP/SMTP discovery |
| 📬 Mailbox | List view, bottom reading pane or right reading pane |
| ↔️ Interface | Resizable folder sidebar, reading panes and columns |
| 🌗 Appearance | Light and dark mode |
| 🔍 Search | Cross-folder search with an animated progress indicator |
| ✍️ Messages | HTML/plain text, replies, forwarding, Cc/Bcc and attachments |
| 📁 Folders | Hierarchy, subfolders, creation, deletion and visibility |
| 🗂️ Archive | Configurable archive folder and filing structures |
| 👥 Contacts | Address books, groups, contact pictures and detailed profiles |
| 📥 Import | Google/Outlook CSV, including contacts without email addresses |
| 📤 Export | Contacts as CSV/vCard; messages as EML |
| ⚙️ Settings | Language, appearance, identity, signature, special folders and notifications |
Requirements:
Download docker-compose.yml and run this command from its directory:
docker compose up -d
Then open:
http://SERVER-IP:8886
On your own computer:
http://localhost:8886
The database and encryption key are created automatically on first startup.
For a Docker Standalone environment:
post-webmail.Then open the webmail at http://SERVER-IP:8886.
For Docker Compose, create a .env file next to the Compose file:
WEBMAIL_PORT=8886
# Optional: custom data directory on the Docker host
# WEBMAIL_DATA_DIR=/path/to/webmail/data
| Variable | Purpose | Default |
|---|---|---|
WEBMAIL_PORT | Web interface port | 8886 |
WEBMAIL_DATA_DIR | Optional data directory on the Docker host | Persistent Docker volume |
In Portainer, enter these values in the stack’s environment variables.
A custom data directory must be writable by the backend user with UID 1000.
Sign in with your email address and password or app password.
The application automatically discovers the IMAP and SMTP settings and checks the connection.
Accounts with two-factor authentication often require an app password. IMAP must be enabled by your email provider.
Accounts requiring OAuth2 exclusively are not currently supported. Custom servers without suitable autoconfiguration may not be discovered automatically.
Choose between three views:
| View | Description |
|---|---|
| 📋 List | Message list with a separate message dialog |
| ⬇️ Bottom reading pane | Message list above, preview below |
| ➡️ Right reading pane | Message list on the left, preview on the right |
Additional options:
| Action | Result |
|---|---|
CTRL / CMD + click | Select or deselect individual messages |
SHIFT + click | Select a continuous range |
CTRL + SHIFT + click | Add a range to the current selection |
The selection menu provides All, None, Read and Unread for the current page.
Deleting normally moves messages to Trash. Permanent deletion requires confirmation.
Draft attachments are not currently stored permanently. You may need to attach them again after reopening a draft.
Search covers all selectable folders, including hidden folders.
Available search fields:
An animated indicator shows that a search is running. Results are displayed across pages.
Search duration depends on mailbox size and mailserver performance.
Deleting a folder also removes its messages and subfolders. System folders are protected.
Available archive structures:
If no archive folder has been configured, a selection dialog appears on first use.
The contact interface has three sections:
Address books and groups → Contact list → Contact details
The personal default address book is preserved. Deleting an address book removes its contacts after confirmation. Deleting a group only removes the group membership.
Contact information:
Contacts without email addresses are supported.
Under Contacts → Import CSV:
| Property | Support |
|---|---|
| Delimiters | Commas, semicolons and tabs |
| Encoding | UTF-8, UTF-16 and Windows-1252 |
| Special content | Quoted fields and multiline notes |
| Maximum file size | 10 MB |
| Maximum contact count | 10,000 per import |
Contacts without email addresses are included. People sharing an email address remain separate contacts.
“Skip identical contacts” prevents importing fully identical records again.
Unmapped details and invalid email values are retained as additional fields when the contact otherwise contains valid contact information.
| Area | Options |
|---|---|
| 🖥️ User interface | Language, timezone, time/date formats and short dates |
| 📬 Mailbox view | Layout, page size and read-marking delay |
| 🔔 Notifications | In-app notices, desktop notifications and sounds |
| 👁️ Message display | HTML/plain text, external images, emoticons and long quotations |
| ✍️ Message composition | Formatting, draft saving, reply and signature rules |
| 👥 Contacts | Default address book, display, sorting and autocomplete |
| 📁 Special folders | Drafts, Sent, Spam, Trash and Archive |
| 🗂️ Archive | Subdivision and filing structure |
| 🛠️ Server behavior | Deletion, read marking and cleanup on sign-out |
| 👤 Sender identity | Display name, reply-to address and signature |
Three settings are available:
Active content and external stylesheets remain blocked.
Loading external images may be visible to the sender.
In-app notices, desktop notifications and notification sounds can be configured separately.
Desktop notifications require browser permission. The webmail must remain open; browsers may delay checks in background tabs.
Emails and their folders remain on the IMAP server.
SQLite stores data including:
Application data is stored persistently. Keep the database and secret.key together when creating backups.
Credentials are encrypted using AES-256-GCM. Mailserver connections use TLS. HTML messages are sanitized and displayed in isolation.
For internet access, use HTTPS through a reverse proxy. The Compose setup itself serves HTTP.
Select “View demo” on the sign-in page to explore the interface using sample data.
The demo does not connect to a mailserver or send messages.
📬 post. — a calmer inbox.
Content type
Image
Digest
sha256:9b55c57f0…
Size
27.4 MB
Last updated
7 days ago
docker pull paquele/post-webmail-frontend