What I would like to see
When an account has aliases, Stalwart creates one JMAP Identity per address and sets name on every one of them to the account’s description. Aliases have their own description field, but it is not consulted here.
The practical effect is that every alias signs outgoing mail with the mailbox owner’s name.
A concrete case from a small deployment: the mailbox [email protected] (description “Alice”) carries the alias [email protected], which belongs to a different person. Mail sent from that alias goes out as Alice <[email protected]> until the user edits the Identity by hand — and a fresh reader of the admin UI has no reason to expect that, because the alias has a description field sitting right there.
Proposal
When auto-creating an Identity for an alias, use the alias’s description as the initial name if it is set, falling back to the account’s description when it is empty.
This changes only the initial value. Identity.name remains a user-owned setting per RFC 8621 section 6.4, and Identity/set keeps overriding it — so the change cannot take a name away from anyone who has already chosen one.
Why this is not a duplicate
- #1688 (identity_get_or_create name field is inconsistent) made the format consistent — the principal name rather than Name . It was about formatting one value, not about which value to use per address.
- #506 (alias description & disable alias) added the description field to aliases, motivated by labelling randomly generated aliases. The field is stored and shown, but nothing reads it for the sending identity.
So the field exists, the identity exists, and they are simply not connected.
Current workaround
The mailbox owner can fix it themselves over JMAP:
Identity/get → [{id, email, name}, …]
Identity/set → update {“”: {“name”: “…”}}
Worth noting that this needs the user’s own credentials — an administrator cannot do it on their behalf, which makes it awkward to prepare mailboxes for other people.
Version
0.16.19, RocksDB store, Docker deployment.