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
@@ -170,6 +170,31 @@ export const catalog: Catalog = {
"Your organisation has reached the number of groups it is allowed.": "Uw organisatie heeft het toegestane aantal groepen bereikt.",
"This group no longer exists. Someone may have deleted it.": "Deze groep bestaat niet meer. Iemand heeft hem mogelijk verwijderd.",
"The server did not say whether the group was created.": "De server heeft niet gemeld of de groep is aangemaakt.",
"Mailing lists": "Mailinglijsten",
"Mailing list": "Mailinglijst",
"A list needs an address.": "Een lijst heeft een adres nodig.",
"New mailing list": "Nieuwe mailinglijst",
"Your role lets you view mailing lists but not change them.": "Met uw rol kunt u mailinglijsten bekijken, maar niet wijzigen.",
"No domains are available to create a list on.": "Er zijn geen domeinen waarop een lijst kan worden aangemaakt.",
"Mail to these addresses goes to the list too. Changes apply when you save.": "E-mail aan deze adressen gaat ook naar de lijst. Wijzigingen gelden zodra u opslaat.",
"Create list": "Lijst aanmaken",
"Filter recipients": "Ontvangers filteren",
"No recipients match": "Geen ontvangers gevonden",
"Add recipients": "Ontvangers toevoegen",
"Addresses, separated by commas": "Adressen, gescheiden door komma's",
"Not added, as they aren't addresses: {items}": "Niet toegevoegd, want dit zijn geen adressen: {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-mail aan de lijst wordt doorgestuurd naar elke ontvanger, op deze server of elders. U kunt er meerdere tegelijk plakken. Wijzigingen gelden zodra u opslaat.",
"Mail to this address stops being passed on. The recipients' own mail is untouched.": "E-mail aan dit adres wordt niet meer doorgestuurd. De eigen e-mail van de ontvangers blijft ongemoeid.",
"Delete list…": "Lijst verwijderen…",
"Delete list": "Lijst verwijderen",
"Mail to this address is no longer passed on to anyone. It can't be undone.": "E-mail aan dit adres wordt aan niemand meer doorgestuurd. Dit kan niet ongedaan worden gemaakt.",
"Addresses that pass mail on to everyone on them.": "Adressen die e-mail doorsturen naar iedereen die erop staat.",
"Search mailing lists": "Mailinglijsten zoeken",
"No mailing lists match": "Geen mailinglijsten gevonden",
"No mailing lists yet": "Nog geen mailinglijsten",
"Your organisation has reached the number of mailing lists it is allowed.": "Uw organisatie heeft het toegestane aantal mailinglijsten bereikt.",
"This mailing list no longer exists. Someone may have deleted it.": "Deze mailinglijst bestaat niet meer. Iemand heeft hem mogelijk verwijderd.",
"The server did not say whether the list was created.": "De server heeft niet gemeld of de lijst is aangemaakt.",
"User": "Gebruiker",
"Administrator": "Beheerder",
"Custom role": "Aangepaste rol",
@@ -1565,6 +1590,7 @@ export const catalog: Catalog = {
"{n} groups": { one: "{n} groep", other: "{n} groepen" },
"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: "Het {n} lid wordt eerst uit de groep gehaald en verliest wat ermee gedeeld was. De e-mail van de groep wordt op de achtergrond verwijderd, en dit kan niet ongedaan worden gemaakt.", other: "De {n} leden worden eerst uit de groep gehaald en verliezen wat ermee gedeeld was. De e-mail van de groep wordt op de achtergrond verwijderd, en dit kan niet ongedaan worden gemaakt." },
"{n} mailing lists": { one: "{n} mailinglijst", other: "{n} mailinglijsten" },
"{n} recipients": { one: "{n} ontvanger", other: "{n} ontvangers" },
"{n} DKIM keys": { one: "{n} DKIM-sleutel", other: "{n} DKIM-sleutels" },
"{n} other items": { one: "{n} ander item", other: "{n} andere items" },
// ── Administration ────────────────────────────────────────────────