EVEMAIL is a full EVE Online mail client in your browser. Read, compose, label, bulk-delete, and send mail from every connected character without leaving your MelTuc dashboard. Persistent drafts, contacts, keyboard shortcuts, CSV export — and a one-click AI rewrite pass that polishes corp comms before they ever hit the wire. Interactive only, no schedulers, no background jobs — you open it, you act, you close it.
EVEMAIL is a fully interactive EVE Online mail client — no schedulers, no background jobs. You connect your characters once, then read, compose, polish, and send right inside your MelTuc dashboard. Here is the whole flow.
No background jobs, no scheduler — everything happens the moment you click it. EVEMAIL proxies CCP's ESI in real time and writes an audit entry for every action.
eve_sso module with four mail scopes. EVEMAIL reads active_char_id from evemail_prefs on every request, falling back to the platform's main character.GET /characters/{id}/mail/. Sender and recipient IDs are batch-resolved to names via a single POST /universe/names/ call — no numeric IDs ever shown in the UI.PUT /characters/{id}/mail/{mid}/ if evemail_prefs.auto_mark_read is on. Compose modal auto-saves keystrokes into evemail_drafts keyed by (user_id, character_id).evemail_rewrite_log.evemail_events with user_id, character_id, kind, detail JSON, and created_at — a fully auditable trail. Label changes and preference saves are not separately logged.
A clean three-column layout: labels down the left, header list in the middle, selected body on
the right. Sender and recipient IDs are resolved to names in a single batch through the public
/universe/names/ endpoint, so you never see numeric IDs. Opening a mail auto-marks it
read when you have that preference enabled. Switch characters from the header and the whole view
re-queries against that alt's mailbox — no reloads, no duplicate tabs.
The compose modal auto-saves every keystroke into evemail_drafts, keyed by character,
so you never lose a mail to a closed tab. Recipients autocomplete against an exact-name character
lookup. When your first pass feels rough, hit Rewrite
— the draft goes to the platform LLM helper, returns polished in one of four tones, and
renders side-by-side so you can accept, re-run, or discard before firing. Every call is logged to
evemail_rewrite_log for a full audit trail.
EVEMAIL pulls your full contacts list via esi-characters.read_contacts.v1, resolves
every ID to a name in a single batched call, and displays them with their current standing. Use
the contacts page to find recipients fast, filter by standing, or export your book for off-site
backup. Corps, alliances, and mailing lists all resolve the same way — one unified directory.
A single settings page controls how EVEMAIL behaves for you. Set a default signature that gets
appended to every outgoing body, pick the tone the AI should default to when you hit Rewrite,
and flip auto-mark-read on or off. Everything lives in evemail_prefs, one row per user,
upserted on save. No server-side mutation happens anywhere else — this page is the whole control
surface.
Every EVE mail operation you actually do, in one place, with the rough edges smoothed over. No scheduler, no background workers — everything happens the moment you click it, logged the moment it finishes.
evemail_prefs.active_char_id so you land in the same mailbox next session. No re-auth, no reload.esi.evetech.net API through the shared eve_sso token module. Zero scraping, zero third-party mirrors — it's the same endpoint the in-game client uses.evemail_rewrite_log for usage auditing. Rate-limited to 20 rewrites per minute.evemail_prefs that gets appended to outgoing bodies, and a default tone for AI rewrite. Change either from /evemail/settings at any time.(user_id, character_id). Close the tab, reboot, come back later — the compose body is exactly where you left it, per alt.evemail_events with user, character, action, and timestamp. AI rewrite calls are logged separately to evemail_rewrite_log.C anywhere outside a text field to jump straight into compose. Press ? for the shortcuts cheat sheet. Reply and delete are one click from the reader pane./evemail/api/export.csv or export.json. Useful for diplomatic archives, corp compliance, or off-site backups./universe/ids/ for the To field. Three-character minimum. Resolves EVE characters only — corp, alliance, and mailing-list mail is still deliverable, just not autocompleted here.
EVEMAIL borrows tokens from the shared eve_sso module — connect your character once
in your MelTuc account settings and every EVE app on the platform reuses the same grant. Four scopes
cover the whole feature set; the app redirects you to re-authorise if any are missing.
POST /characters/{id}/mail/./api/contacts endpoint. Optional — the rest of the app works without it.
EVEMAIL's persistence layer is deliberately thin. Mail itself lives on CCP's servers — we never
cache bodies, we just proxy ESI calls and render results. Locally, only preferences, drafts, and the audit
log are stored, all in Postgres through the shared db helper.
ON CONFLICT on every settings save.(user_id, character_id). Auto-saved on every keystroke, persistent across sessions.user_id, character_id, kind, detail JSON, and created_at.One inbox for every alt, AI polish for every draft, keyboard shortcuts for every power-user reflex. All running on your MelTuc account, all sharing one EVE SSO grant, all fully audited.
Requires a MelTuc account. Create one free.