An article is published in a chosen category, and the people subscribed to that topic receive an email. That is all the Formulus newsletter does, and it is what most sites need: a town hall announcing roadworks, an association its meetings, a blog its new posts. The content of the email is the article: no campaign editor, no layout to build.
1. Switch the newsletter on
Formulus → Options, Newsletter tab:
| Setting | What it does |
|---|---|
| Enable the newsletter | Off by default: a Formulus update never sends anything on its own. |
| Sender name and address | Empty: those of the site configuration. An address on another domain than the site may end up in spam. |
| Emails per run | How many emails go out each time the scheduled task runs (50 by default). |
Installation creates the scheduled task Formulus: send the newsletter, every 5 minutes (System → Scheduled Tasks). Without it, nothing is sent.
2. The sign-up form
Create a form from the Newsletter template. It sets, in this order: the email address, the Reading topics, the consent and the button.
The "Newsletter topics" field
This field says what the form offers. In the Fields tab, click its gear:
| Setting | What it does |
|---|---|
| Offered categories | The article categories offered to subscribers. Tick one or several. |
| Include subcategories | Yes: subcategories are offered too, and their articles are sent like those of their category. |
On the site:
- one category: there is nothing to choose. The field shows as a sentence, in its place: "You will receive an email for each new article published in: Blog.";
- several categories: the visitor ticks their topics. If they tick none, they receive them all.
The Sending and Mails tab
In the Newsletter box, set This form subscribes to the newsletter to Yes, and choose the Address field (the Email field; if empty, Formulus takes the first Email field when you save).
Settings that point to a field relink themselves: if you apply a template again, or remove a field, Formulus links the setting to the new field of the same type and tells you so.
Then place the form wherever you like: menu item, module (a sidebar, a footer) or inside an article (chapter 11.5).
3. What the subscriber goes through
- They fill in the form. The site tells them an email has just been sent.
- They receive "Confirm your subscription", with a button. The button opens a page where they confirm with one click. Until they confirm, they receive nothing; without confirmation, their address is deleted after 7 days.
- They are subscribed. The date of the click is kept: it is the proof of their consent.
Why two clicks? Business mail systems open links on their own to scan them. A link that subscribed by itself would subscribe anyone.
An address already subscribed that fills in the form again sees the same message (the site never reveals who is subscribed) and receives "Your newsletter", with its two buttons: Change my reading topics and Unsubscribe. It is also the way to get these links back without an email at hand.
Unsubscribing
- the Unsubscribe button at the bottom of every email: one page, one button, done;
- the Unsubscribe button that Gmail, Yahoo or Outlook show at the top of the email: no page at all;
- a new sign-up, which sends the email with the button again.
Unsubscribing deletes the address. There is no blocklist: someone who comes back goes through the confirmation again.
4. Publishing an article
In the article screen, the Newsletter tab holds Notify subscribers, set to Yes by default. An article is sent when it becomes published (Save, or the Publish button of the list), and if:
- its category is offered by at least one published sign-up form;
- its access is Public (a restricted article is never sent by email);
- its publishing date has come, and its finish date has not passed.
A message tells you how many subscribers will receive it. Fixing a typo and saving again sends nothing: an article goes out only once. A scheduled article goes out when its date comes.
The email gives the category, the date, the title, the introduction, the intro image and a Read the article button, then Change my reading topics and Unsubscribe. No tracking: no open pixel, no rewritten link to count clicks.
5. Administration
Formulus → Newsletter: Subscribers: the list, the count of active and pending subscriptions, filters (status, topic, source form), deletion and Excel or CSV export.
Invite a group
Visitors who already have an account on the site (customers, members, registered residents) can be invited without typing their address again. In Newsletter: Subscribers, button Invite a group:
- Choose the user group. Its child groups are included, blocked accounts are skipped.
- Choose the subscription form: its categories become the topics offered, and its language is used for accounts that have not chosen theirs.
- Click Send the invitations.
Each account receives its own email, in its language, with a Yes, subscribe me button. The button opens the usual page where it confirms in one click, with its account address. Without a click, it is not subscribed and receives no article. The link is valid for 30 days.
In the list, an invited person has the Invited status. It becomes Active once confirmed. An address already subscribed, pending or already invited is never invited again: inviting the same group again only reaches new accounts. If an invited person later signs up through a form, the normal sign-up takes over.
The emails go out while the page works: about twenty take about twenty seconds. For a very large group, invite it in parts (child groups).
Formulus → Newsletter: Sendings: one article per row, with its recipients, sent, pending and failed emails (the detail gives the server message). Three buttons:
| Button | What it does |
|---|---|
| Send me a test | The article email, to your own address only, without touching subscribers. |
| Retry failures | Failed emails go out again at the next run. |
| Send again | The article goes out again to all its current subscribers (with confirmation). |
At the top of both screens, a warning if the newsletter is off, if no form offers a category, or if the scheduled task has not run for 24 hours.
6. The email texts
The four emails are Joomla mail templates, one per language: Formulus → Mail Templates. They have an HTML version (with the buttons) and a text version, sent together.
| Template | Tags |
|---|---|
| Confirm subscription | {SITENAME} {EMAIL} {THEMES} {LIEN} {DELAI} |
| Preferences link | {SITENAME} {EMAIL} {THEMES} {LIEN} {DESABONNEMENT} |
| Invitation | {SITENAME} {EMAIL} {THEMES} {LIEN} {DELAI} |
| New article | {SITENAME} {TITRE} {INTRO} {IMAGE} {LIEN} {CATEGORIE} {DATE} {PREFERENCES} {DESABONNEMENT} |
7. A multilingual site
- A form only offers the categories of the page language: tick Blog (fr) and Blog (en) in the same field, each visitor only sees their own.
- Field labels are not translated: make one form per language (a copy is enough) and one module per language.
- The subscriber keeps the language of their sign-up. An article in one language only goes to subscribers of that language; an article in "All" goes to everyone.
- Emails and the subscriber's pages are in their language.
8. GDPR
- Only the address, topics, language, source form and the sign-up and confirmation dates are kept.
- A Joomla access request (Users → Privacy) exports the subscription; a removal request deletes it.
- An invitation subscribes nobody: the person's dated click proves their consent, as for a form sign-up. Only invite people you already have a relationship with (customers, members).
- The action log records invitations, confirmations, unsubscriptions, sendings, resendings, exports and deletions.
A subscriber has no account on the site, and the Joomla request form requires being logged in: if they write to you, create their request yourself in the administration. Remember to describe the newsletter in your privacy policy.
9. What to tell your client
- Beyond a few hundred subscribers, set up a real mail server (SMTP) in System → Global Configuration → Server. Otherwise emails end up in spam, or the host blocks them.
- The Joomla scheduler only runs when the site has visits. For a quiet site, have it called by a cron job or a webcron: otherwise emails wait.
Up to date for Formulus 1.0.733.