Mailing lists and groups
Mailing lists with owners, moderators, subscribers from outside and one-click unsubscribe, and groups whose members follow a rule on the directory.
A group delivers mail to its members. A mailing list is a group with more: owners who run it, moderators who let posts through, people who join and leave by themselves (from inside the organisation or outside it), the headers mail apps use to offer unsubscribing, and an archive. A group can also keep its own members, by a rule such as everybody in Sales in London.
The examples use the vsx shell function from the Quick start.
Making a list
On the console, open People and choose Add a mailing list. The list’s page is its group’s page, with cards for how it works, who is on it, and the posts waiting for a moderator.
From the command line:
vsx admin list add team@example.com --owner ada@example.com --posting members --moderate others --join request
vsx admin list all
vsx admin list show team@example.com
A list needs at least one owner. To make an existing group into a list, give the group’s address.
How a list works
| Choice | Command line | What it means |
|---|---|---|
| Who may post | --posting anyone|organisation|members | Anybody, anybody in the organisation, or the list’s members. |
| What waits for a moderator | --moderate none|others|all | Nothing (posts from anybody else are refused), posts from people who may not post, or every post. |
| How people join | --join open|request|closed | By themselves, by asking an owner, or only when an owner or administrator adds them. |
| Where replies go | --reply-to list|poster | To the whole list, or to whoever wrote. |
| Archive | --archive members|none | Whether members can read past posts. |
| Subject tag | --tag Team|none | A tag such as [Team] at the start of each subject. |
| Moderators | --moderator <address> | People who decide on held posts, besides the owners. |
Change any of them later with list set, which takes the same options:
vsx admin list set team@example.com --moderate all
Members and subscribers
Anybody can be on a list: people in the organisation, and subscribers at any other address.
vsx admin list add-member team@example.com friend@elsewhere.example
vsx admin list remove-member team@example.com friend@elsewhere.example
People join and leave by themselves, too:
- On the list’s page, at
https://<your server>/lists/team@example.com. - By mail, writing to
team+join@example.comorteam+unsubscribe@example.com.
Joining always sends a message to the address that joins, and only its confirmation link completes it, so nobody can put somebody else on a list. On a list people join by request, an owner then lets them in or refuses them.
An address whose mail keeps bouncing is paused after it bounces on three different days within two weeks. An owner or administrator resumes it by adding it again.
Held posts
A post that waits for a moderator is sent to the owners and moderators, who can reply to it to decide. On the console, the list’s page lists held posts. From the command line:
vsx admin list held team@example.com
vsx admin list decide team@example.com 3f2a9c approve
approve lets the post out, refuse refuses it, and always lets it out and lets its author post from now on. Mail the spam filter would have put in Junk or quarantine is always held, never sent to the list.
What people receive
Each post goes out as the list’s own message, signed with the list’s domain. It carries the standard list headers, so mail apps can show the list’s name and offer to unsubscribe:
- Subscribers outside the organisation get a one-click unsubscribe that works from the mail app’s own button.
- People inside the organisation can leave from the list’s page or by mail.
When the poster’s domain asks receiving servers to reject or quarantine mail that fails its checks (DMARC), the post’s sender becomes “Ada via Team”, with Ada’s address in Reply-To. That way it is delivered rather than refused.
A list’s own post coming back to it, and automatic replies, are dropped rather than sent round again.
Digests
A member can take a digest instead of each post: one message holding every post since the last, each post whole inside it, with a list of them at the top. A digest goes once a day unless the list says otherwise, and at once when 100 posts have gathered. An interval with no posts sends nothing, and a held post is in a digest only once a moderator lets it out.
A member switches by mail, from the address that is on the list, to team+digest@example.com for the digest and team+each@example.com for each post again. They are mailed a note saying so. From the list’s page, they can ask for a link that switches them. An administrator or the list’s owner can switch somebody, and set how often the digest goes, from 1 to 168 hours:
vsx admin list digest team@example.com ada@example.com
vsx admin list each team@example.com ada@example.com
vsx admin list set team@example.com --digest-hours 12
The archive
When a list keeps an archive, a member asks for it on the list’s page. A link to read it, good for seven days, is mailed to their address, so subscribers outside the organisation can read it too.
Groups that keep their own members
A group can follow a rule on the directory instead of a list of names. Its members change as people join, leave or move: when somebody’s department or office changes, they move in or out of every group whose rule matches, at once.
A rule names one or more of department, title, office, domain and plan, separated by commas; a person matches when all of them match. plan=Staff keeps everybody on the plan called Staff, whether it was chosen for them, came through one of their groups, or is the default. When somebody’s plan changes, they move in or out at once. A group kept by a plan rule cannot itself be named by a plan, so a plan never depends on its own members.
vsx admin group add sales-london@example.com --when 'department=Sales,office=London'
vsx admin group preview-rule sales-london@example.com 'department=Sales,office=Paris'
vsx admin group rule sales-london@example.com 'department=Sales,office=Paris'
vsx admin group show-rule sales-london@example.com
vsx admin group drop-rule sales-london@example.com
preview-rule shows who a rule would match before it is saved. Dropping a rule keeps the members it had, as an ordinary group. A group kept by a rule does not take members added by hand, and a list cannot have a rule. When people come from your identity provider over SCIM, their office comes from their work address.
Who can do what
Organisation administrators manage every list and group. A domain administrator manages those in their own domains, and a rule they save names one of those domains. A list’s owners change their own list, and its moderators decide on its held posts, whatever other role they have. Every change is in the audit log.
A list’s archive and held posts are included in backups.
Over the API
| Route | What it does |
|---|---|
GET · POST /api/v1/tenants/{tenant}/lists | Every list, and a new one. |
GET · PUT /api/v1/tenants/{tenant}/lists/{list} | A list: how it works and who is on it. |
GET · POST /api/v1/tenants/{tenant}/lists/{list}/held | The posts waiting for a moderator, and a decision on one. |
PUT · DELETE /api/v1/tenants/{tenant}/lists/{list}/members/{member} | Puts somebody on the list or takes them off. |
GET · PUT · DELETE /api/v1/tenants/{tenant}/groups/{address}/rule | A group’s rule. |
POST /api/v1/tenants/{tenant}/groups/{address}/rule/preview | Who a rule would match. |
Something unclear or out of date on this page? Tell us.