# 14-May-2026 - Email composer: send plain, unbranded emails to anyone ([#265](https://github.com/nbarrett/ngx-ramblers/issues/265))

A large batch of email composer improvements, delivered across [commit bd611b0](https://github.com/nbarrett/ngx-ramblers/commit/bd611b0aec0bc7ee3a13e71f47c0e01c85d76abc) and [commit 21e6da5](https://github.com/nbarrett/ngx-ramblers/commit/21e6da582485a66b6e14c1d5469e6e8bd5d27aed). The highlights:

- A new **Unbranded** option sends a plain, personal-style email - no group banner, no event list, no footer - good for replies and one-to-few correspondence.
- Unbranded emails go out from your committee role address, not your personal email, so they are not silently rejected.
- You can send to **any email address**, not just members, and the composer remembers addresses for next time.
- Paste a forwarded email straight into the editor and the headers are tidied up for you.
- Password-reset links in bulk-composer emails now work.
- A clearer step-by-step layout, one tidy list of what needs fixing, and it all works on a phone.


## A clearer layout and one list of what to fix

The step-by-step bar across the top of the composer has been tidied up: the steps are evenly spaced, the connecting line runs continuously between them, and each step's hint reflects the real recipient count rather than a stale label.

Error messages have been pulled together too. Instead of the same warning appearing in two places, each step now shows a single **Before you can continue** list covering everything outstanding, with "go and fix it" buttons where useful.

The full step bar for a branded send:

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/e1ab92b3-54ad-4ea5-8862-905446e447e1.png)

*The email composer step bar, from Sender & Template through to Send.*

## Branded or Unbranded - a new choice

The first step of the composer, **Sender & Template**, now offers two formats:

- **Branded** - the full Ramblers template, with banner, event blocks, social links and footer. This is the format for newsletters and anything sent to a list.
- **Unbranded** - a plain rich-text email that reads like a personal note. No banner, no event loop, no footer. Best for replies and one-to-few correspondence.

Choosing Unbranded keeps the composer simple: the banner picker, Brevo template selector, the Events step and the article-block buttons are all hidden, because none of them apply to a plain email.

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/c4a9b78c-14f7-4e9e-8373-f12286893690.jpeg)

*The Branded / Unbranded choice on the Sender & Template step.*

## Who an unbranded email comes from

In Unbranded mode, the composer looks up the committee role linked to your member record and uses that role's email as the From address. Committee role addresses are on the group's own verified domain, so they are accepted. The Sender & Template step shows you exactly which address will be used.

If the role's email is missing or invalid, the step shows a clear message and blocks the send before you can submit it.

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/f8d30e9f-e2bd-47cf-adff-ab292f20ed23.png)

*In Unbranded mode the composer confirms which committee role address the email will be sent from.*

## Sending as one of several committee roles

If you are recorded against more than one committee role - for example, an admin who also covers a colleague's role - the composer shows a picker listing every role attached to your member record, each with its email alongside. Whichever you pick is the role the email goes out as, and the sign-off on the later step follows the same choice so sender, reply-to and sign-off stay consistent.



![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/1fcd7d94-2ed3-47c8-bd09-52c7d07d7361.jpeg)



### A flag for shared member records

Being recorded against two roles is sometimes a mistake rather than intentional. **Admin > System Settings > Committee** now flags this directly: any row whose member is shared with another role shows a **Multiple role mappings** badge, and hovering it lists the shared member and the other role(s). That lets you tidy up accidental double-assignments at the source.

## Sending to people who aren't members

In Unbranded mode the Recipients step leads with a **Send to an email address** form. Type any address you want the message to go to - the name fills in automatically from the address and you can edit it - then press Enter or click Add.

Addresses are saved for re-use by default, stamped with your name and the date, so the list of saved addresses builds up over time and other committee members can pick from it later. Previously-saved addresses and the option to also include group members are tucked away below, so the simple case stays simple.

![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/b6f191be-e118-4814-b5c3-d7d5b65179f4.png)

*The Send to an email address form, shown first on the Recipients step in Unbranded mode.*

## Paste a forwarded email and reply to it

If you paste a forwarded email into the editor - one with `From:` / `Date:` / `To:` / `Subject:` header lines at the top - the composer recognises it and:

- pulls those header lines into a tidy block between two dividing lines, so the recipient can see what you forwarded;
- places your cursor above that block, ready for you to type your reply;
- uses a leading `# Heading` line as the email subject if you have not set one yet.

It copes with the usual clutter too - "Sent from Outlook" lines, forwarded-message banners and blank lines between headers. In Unbranded mode you can go straight to the Compose step and paste a forwarded email there to fill everything in at once.

## Unbranded is for replies, not big lists

An unbranded email has no unsubscribe link and no formal sender identity, so it is not suitable for marketing-style sends to a list. The composer now watches for that:

- Sending an entire mailing list in Unbranded mode is not possible - the option is removed.
- If an unbranded send starts to look like a broadcast (several recipients, picked from a list, subject not a reply), a warning appears with a **Switch to Branded** button explaining that the law requires the unsubscribe link and sender identity that only Branded provides.
- Above 50 recipients that warning becomes a hard block - the Send button is disabled.

## Password-reset links in bulk emails now work

**What was wrong**

For templates that include a password-reset link (welcome-to-the-group, website-and-login-details and similar), the link came out empty, so anyone who clicked it landed on a broken page.

**What changed**

Branded sends now generate a fresh, recipient-specific reset link whenever the chosen template needs one. The standalone "Forgot password" page was never affected - this was only the bulk composer.

## Smaller improvements

- **Recycled tracking links** - if your draft contains a wrapped tracking link recycled from another email, the composer can show you where it really points, so you can spot stale or broken links before sending.
- **Member spreadsheet import** - the importer no longer aborts with a confusing message when the workbook has no sheet named "Full List"; it lists every sheet it found and falls back to the first one.
- **Saved drafts** remember the branding mode and chosen role, so an unbranded draft comes back as unbranded.
- **On a phone**, the step bar scrolls sideways showing only the active step, the action buttons stack neatly, and the Add Recipient form drops to a single column.

## Who is affected

Committee members who send emails. Branded sends behave as before; the new Unbranded option is there when you want to send a plain reply or a quick note to a handful of people, including non-members.