Unified view of ALL mailboxes directly from the Maildir (no IMAP, no user passwords): read-only list + full message view (MIME unfolded) + admin UI page.
GET /admin/api/messages — unified inbox, newest first; filters ?mailbox= (full address or localpart), ?q= (subject/from, case-insensitive), ?limit= (default 100, max 500)
URL safety: mailbox validated (^[a-z0-9._-]+@[a-z0-9.-]+$), filename resolved against the real cur/new listing — no traversal, no symlink escape
UI: /admin/messages unified inbox (grouped by mailbox, client-side search), /admin/message// with text/html toggle, no external CDN
Tests offline vs testdata Maildir fixtures (simple + multipart): go vet ./... && go test -race ./... green
Verified against real data via container: counts info=13, postmaster=31, ano=1, andriy.oblivantsev=1, postman=0; "ano self-test 1334" body readable; filters and UI work
Closes #76
Unified view of ALL mailboxes directly from the Maildir (no IMAP, no user passwords): read-only list + full message view (MIME unfolded) + admin UI page.
- GET /admin/api/messages — unified inbox, newest first; filters ?mailbox= (full address or localpart), ?q= (subject/from, case-insensitive), ?limit= (default 100, max 500)
- GET /admin/api/messages/<mailbox>/<filename> — decoded headers + text/plain + text/html + attachments (filename/size/cid)
- URL safety: mailbox validated (^[a-z0-9._-]+@[a-z0-9.-]+$), filename resolved against the real cur/new listing — no traversal, no symlink escape
- UI: /admin/messages unified inbox (grouped by mailbox, client-side search), /admin/message/<mailbox>/<filename> with text/html toggle, no external CDN
- Tests offline vs testdata Maildir fixtures (simple + multipart): go vet ./... && go test -race ./... green
- Verified against real data via container: counts info=13, postmaster=31, ano=1, andriy.oblivantsev=1, postman=0; "ano self-test 1334" body readable; filters and UI work
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #76
Unified view of ALL mailboxes directly from the Maildir (no IMAP, no user passwords): read-only list + full message view (MIME unfolded) + admin UI page.
Pull request closed