Add Mailing lists to Administration

A mailing list is an address that passes mail on to everyone on it. To
Stalwart it is its own object, x:MailingList, behind sysMailingList*, so
it gets its own section under Directory after Groups: search, fifty to a
page with each list's recipient count, and a panel to create, edit and
delete one.

Recipients are a property of the list, so unlike a group's members they
save with the rest of the panel. What Save sends for them is only what was
added and removed, one recipients/<address> pointer each -- the patch the
live server accepted -- so a recipient added elsewhere while the panel was
open is not taken out. They can be pasted several at a time, from a
spreadsheet column, a comma-separated line or Name <address>; anything with
an @ that is not an address stays in the box with a note. Past a dozen, a
filter narrows them.

That is all a list is in Stalwart -- no owners, moderation or posting
rules -- so that is all the panel offers.

The mock answers x:MailingList with two lists, the recipient set's live
shape, and the refusals a wrong address, a clash with an account and a
missing permission get.

Twenty-five new strings and one plural, in all nine catalogues.
This commit is contained in:
2026-09-15 08:47:04 -07:00
parent 79afc334ab
commit 627422d794
25 changed files with 1113 additions and 13 deletions
+26
View File
@@ -182,6 +182,31 @@ export const catalog: Catalog = {
"Your organisation has reached the number of groups it is allowed.": "Ihre Organisation hat die erlaubte Anzahl an Gruppen erreicht.",
"This group no longer exists. Someone may have deleted it.": "Diese Gruppe existiert nicht mehr. Jemand hat sie möglicherweise gelöscht.",
"The server did not say whether the group was created.": "Der Server hat nicht mitgeteilt, ob die Gruppe angelegt wurde.",
"Mailing lists": "Mailinglisten",
"Mailing list": "Mailingliste",
"A list needs an address.": "Eine Liste braucht eine Adresse.",
"New mailing list": "Neue Mailingliste",
"Your role lets you view mailing lists but not change them.": "Ihre Rolle erlaubt es, Mailinglisten anzusehen, aber nicht zu ändern.",
"No domains are available to create a list on.": "Es gibt keine Domains, auf denen eine Liste angelegt werden kann.",
"Mail to these addresses goes to the list too. Changes apply when you save.": "E-Mails an diese Adressen gehen ebenfalls an die Liste. Änderungen gelten beim Speichern.",
"Create list": "Liste anlegen",
"Filter recipients": "Empfänger filtern",
"No recipients match": "Keine passenden Empfänger",
"Add recipients": "Empfänger hinzufügen",
"Addresses, separated by commas": "Adressen, durch Kommas getrennt",
"Not added, as they aren't addresses: {items}": "Nicht hinzugefügt, da es keine Adressen sind: {items}",
"Mail to the list is passed on to every recipient, on this server or anywhere else. Paste several at once if you like. Changes apply when you save.": "E-Mails an die Liste werden an alle Empfänger weitergeleitet, auf diesem Server oder anderswo. Sie können mehrere auf einmal einfügen. Änderungen gelten beim Speichern.",
"Mail to this address stops being passed on. The recipients' own mail is untouched.": "E-Mails an diese Adresse werden nicht mehr weitergeleitet. Die eigenen E-Mails der Empfänger bleiben unberührt.",
"Delete list…": "Liste löschen…",
"Delete list": "Liste löschen",
"Mail to this address is no longer passed on to anyone. It can't be undone.": "E-Mails an diese Adresse werden an niemanden mehr weitergeleitet. Das lässt sich nicht rückgängig machen.",
"Addresses that pass mail on to everyone on them.": "Adressen, die E-Mails an alle weiterleiten, die darauf stehen.",
"Search mailing lists": "Mailinglisten durchsuchen",
"No mailing lists match": "Keine passenden Mailinglisten",
"No mailing lists yet": "Noch keine Mailinglisten",
"Your organisation has reached the number of mailing lists it is allowed.": "Ihre Organisation hat die erlaubte Anzahl an Mailinglisten erreicht.",
"This mailing list no longer exists. Someone may have deleted it.": "Diese Mailingliste existiert nicht mehr. Jemand hat sie möglicherweise gelöscht.",
"The server did not say whether the list was created.": "Der Server hat nicht mitgeteilt, ob die Liste angelegt wurde.",
"User": "Benutzer",
"Administrator": "Administrator",
"Custom role": "Eigene Rolle",
@@ -1596,6 +1621,7 @@ export const catalog: Catalog = {
"{n} groups": { one: "{n} Gruppe", other: "{n} Gruppen" },
"Its {n} members are taken out of the group first, and lose what was shared with it. The group's own mail is removed in the background, and it can't be undone.": { one: "Sein {n} Mitglied wird zuerst aus der Gruppe entfernt und verliert, was mit ihr geteilt wurde. Die E-Mails der Gruppe werden im Hintergrund entfernt, und das lässt sich nicht rückgängig machen.", other: "Ihre {n} Mitglieder werden zuerst aus der Gruppe entfernt und verlieren, was mit ihr geteilt wurde. Die E-Mails der Gruppe werden im Hintergrund entfernt, und das lässt sich nicht rückgängig machen." },
"{n} mailing lists": { one: "{n} Mailingliste", other: "{n} Mailinglisten" },
"{n} recipients": { one: "{n} Empfänger", other: "{n} Empfänger" },
"{n} DKIM keys": { one: "{n} DKIM-Schlüssel", other: "{n} DKIM-Schlüssel" },
"{n} other items": { one: "{n} weiteres Objekt", other: "{n} weitere Objekte" },
// ── Administration ────────────────────────────────────────────────