πŸ“ˆ GH Trending Explorer 🎲 Surprise me

← all repos

karatektus / pl_mail

git clone https://github.com/karatektus/pl_mail.git v0.3.7 Β· today πŸ”₯ on GitHub Trending today

Self-hosted, Gmail-style mail client. Multi-account IMAP, threaded conversations, real-time push via IMAP IDLE + Mercure. Built with Symfony, FrankenPHP, Hotwire Turbo. Clone and docker compose up.

β€”
stars, 24h
+90
stars, 7 days Β· #586
β€”
stars, 30 days
388
β˜… total Β· +30% this week
31
forks Β· 41 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguagePHP
LicenseAGPL-3.0
Created2026-07-02 (3mo ago)
Last pushtoday
Watchers2
OwnerUser

Seen on GitHub Trending

  • 2026-10-20 β€” #7 weekly in php Β· +90 β˜…

Links

README excerpt
# plMail
Self-hosted mail with a calendar beside it. Connect the mailboxes you already have β€” IMAP, Gmail,
Outlook β€” and read them side by side in one inbox, on a server you own.
### πŸ“– Read the handbook β†’
Installing on Docker, Linux, WSL2, macOS or a NAS Β· every feature in detail Β· connecting Gmail and
Outlook, with the exact permissions to tick Β· how the internals work.
Also on the wiki and in `docs/` β€” all three
are built from the same files.
### πŸ“± Apps for your phone
- **Android** β€” karatektus/pl_mail_android
- **iOS** β€” karatektus/pl_mail_ios
Both connect to your own plMail server.
---
## What it is
A mail client you host yourself. It connects to the mailboxes you already have β€” IMAP, Gmail,
Outlook β€” syncs them into your own PostgreSQL database, and gives them one inbox, one search box and
one set of labels in the browser.
It is **not** a mail server: it doesn't receive mail from the internet or host your domain. Because
everything is synced locally, search runs against your database, and your mail stays readable when a
provider doesn't.
## Highlights
- **Every account in one place** β€” IMAP, Gmail and Outlook side by side, sending aliases included.
 Credentials are encrypted before they touch the database.
- **New mail arrives on its own** β€” IMAP IDLE, Gmail and Outlook push, browser notifications.
- **Search that means it** β€” full text plus `from:`, `subject:`, `label:`, `has:`, `before:` and
 friends, completed as you type. Every hit shows the words it matched on, marked, in a window of
 the message around them. What the words found comes first; what the model merely thought looked
 similar follows, labelled, and never pushes a real match off the page.
- **Filters as a tree** β€” any/all/none, nested, restated in plain English and counted against real
 mail before you save. Apply one to mail that arrived before it existed.
- **Filed where you drop it** β€” drag a conversation onto a folder, a label or one of the inbox tabs,
 several at once if they are ticked. A folder moves it and a label just adds itself, so dropping on
 "Receipts" does not take the mail out of your inbox; **Starred** stars it and **Unread** β€” an
 optional list of every unread conversation, whatever folder it is in β€” marks it unread, both where
 it lies. Only the targets that will accept it light up, and a tab you choose by hand stays chosen
 when the next message in the thread arrives.
- **A calendar beside the mail** β€” two-way sync with Google, Microsoft and CalDAV, a drag-to-move
 week grid that pans rather than squeezes on a phone, invitations answered in place and landing in
 the calendar as you answer them, share and booking links. The time is always in view β€” on the Happening Soon button, under the name, or at
 the foot of the sidebar with the next thing coming up.
- **Files where you keep them** β€” attach from and save to Drive, Photos, OneDrive, Dropbox,
 Nextcloud, Immich and Paperless-ngx.
- **A language model, if you want one** β€” point plMail at an Ollama box on y