v2.2.0

knadh/listmonkv2.2.0Jul 30, 2022by github-actions[bot]

AI Summary

v2.2.0 introduces transactional messaging, SMTP testing, and various UI improvements.

Key Highlights

  • Transactional messaging feature via /api/tx
  • Test connection feature for SMTP settings
  • One-click SMTP configuration shortcuts for popular providers
  • Insert HTML button in richtext editor
  • Major refactor with new core package
  • Spellchecker in campaign editor
  • New language packs: Chinese, Vietnamese, Finnish, Japanese

Breaking Changes

  • JSON response to POST /api/media has changed

New Features

  • Transactional messaging
  • SMTP test button
  • SMTP provider shortcuts
  • HTML insert button

Full Release Notes

[![listmonk-logo](https://user-images.githubusercontent.com/547147/134940003-1de03d83-8c7b-459b-8056-baa8d5f3b448.png)](https://listmonk.app)

Although delayed by a couple of months, v2.2.0 is here finally.

## New: transactional messaging
The biggest new addition is the new transactional messaging feature. [See docs](https://listmonk.app/docs/apis/transactional/).
- Define transactional templates (new template type: transactional)
- API to fire arbitrary transactional messages using predefined templates via any messenger.

## Improvements
- A new `Test connection` feature on the SMTP settings UI to quickly test SMTP settings by sending a test e-mail. I don't know how I missed this for so long!
- One-click SMTP configuration for popular providers.
- New `Insert HTML` button to quickly insert HTML blocks and snippets on the campaign richtext editor.
- New language packs, 名字 (Chinese) by @p1slave, Vietnamese by @mannm123, Suomi by @pucilpet, 日本語 (Japanese) by @t3hmrman
- Spellchecker in the campaign richtext editor.
- Major refactor and cleanup of the codebase. Database/CRUD functions that were scattered across handlers have been moved to a new, reusable `core` package.
- A number of minor bug fixes and improvements.

## Breaking changes

- The JSON response to the `POST /api/media` has changed. [See docs](https://listmonk.app/docs/apis/media/#post-apimedia).

## Changelog
* bbbf28c Create default tx template on upgrade.
* cd09c5a Remove MailerSend (no config available) from SMTP settings UI.
* 57dbb9e Add explicit warning on empty password to SMTP test UI.
* b497f52 Merge branch 'fix-analytics'
* bfc27de Fix regression of public subscriber page behaviour.
* 3550d54 Fix incorrect analytics count. Closes #712.
* d19a55b Bump terser from 4.7.0 to 4.8.1 in /frontend (#885)
* 2ef7e26 update FI translation (still partial) (#878)
* 71dd48b I18n fr translations update (#876)
* 6aa63fe Update cs-cz.json (#879)
* 3163f91 fix(i18n): update i18n/pt-BR for 2.2.0 release (#875)
* 54349ce Update fr.json (#877)
* fb3c429 Fix Chinese i18n language code.
* 08c7de1 updated german translation (#874)
* 650e23e Update de.json (#873)
* f607c0b Italian translations (#872)
* 300fb7f Update Spanish (es.json) translations (#871)
* a5ce226 Merge pull request #870 from TychoWerner/tychowerner_nlTranslations
* b5b6986 Translated new strings
* c742c91 Merge pull request #869 from t3hmrman/fix/i18n-jp-for-release-2.2.0
* f68af83 fix(i18n): two leftover replacements
* 96197b0 fix(i18n): JP language name tag and templated vars
* 641616e fix(i18n): update i18n/jp for 2.2.0 release
* 0cd41ed Add comment explicitly stating that DB has to be created externally. Closes #830.
* b44d0a6 Refresh newly added i18n langauge strings.
* df31426 Add button to insert HTML snippets into WYSIWYG editor.
* 77bc8a7 Send full media object in upload API response. Closes #770.
* c84837f Fix '&amp' encoding in tracked URLs before saving in the DB. Closes #844.
* 9107edf Add SMTP config shortcuts for popular providers in the settings UI.
* 278d5bf Merge branch 'test-smtp'
* ee44817 Add support for testing SMTP connections in the settings UI.
* e99c8ed Disable template type updation after creation to prevent breaking of campaign relations.
* 4de5d53 Refactor upgrade schema to remove column default.
* 5a5caca Refactor campaign/template preview functions and component.
* 2dcac57 Fix tx template delete query.
* f26f7c6 Refactor template tests.
* bc07a45 Fix clone tx template on the templates UI.
* d3774d6 Make tx DB upgrade schema consistent with install schema.
* 0574a1b Fix template compilation check on CRUD.
* 3f5a50f Fix header processing in tx send.
* 68da86a Fix redundant echo/http error wrapping.
* 4a6e041 Don't break boot on tx template compilation errors.
* 463e92d Add transactional (tx) messaging capability.
* 83a0e10 Add 'test' button to SMTP UI to test connections.
* 13603b7 Merge pull request #860 from p1slave/patch-1
* 6dfe4a0 Create zh-CN.json
* dc7b44a Merge pull request #858 from pucilpet/fi-translation
* c7c331e Added Finnish translation (partial, public fields)
* c7eb491 Merge pull request #847 from knadh/dependabot/npm_and_yarn/frontend/shell-quote-1.7.3
* a2d01b2 Merge pull request #854 from joeirimpan/postback
* 175770d fix: Use list append instead of indexing
* a1df02b feat(postback): Add attachment, from email to postback body
* 66499ac Bump shell-quote from 1.7.2 to 1.7.3 in /frontend
* 0834ab7 Merge pull request #824 from knadh/dependabot/npm_and_yarn/frontend/eventsource-1.1.1
* ffffdcf Bump eventsource from 1.0.7 to 1.1.1 in /frontend
* 97f8c35 Merge pull request #811 from rslonik/master
* d133cf2 Merge pull request #808 from sjoerdvanderhoorn/patch-1
* b2fc35a Fix pt-BR subscription form header
* 92d49fd Update nl.json
* e0b01a8 Fix UI elements not getting locked on finished campaigns. Closes #771
* 59c9441 Fix subscriber create query to not ignore duplicate e-mail error.
* fe5466d Remove test files committed accidentaly.
* a3fd461 Merge big refactor with the 'core' branch.
* b4f0c7e Fix ambiguous route name in frontend route definitions.
* fee2ef3 Upgrade axios lib.
* 959541f Rename unsub query to match the `core` method name.
* 9aef4f2 Enable browser spell check in the campaign editor UI. Closes #786.
* 19c1e51 Fix unsub status not showing for non-optin lists on the subscribers UI.
* b94da62 Fix broken public link redirect.
* d39816e Merge pull request #795 from knadh/dependabot/npm_and_yarn/frontend/axios-0.21.2
* 5fd4d7b Refactor paginated bounce query function to return DB total.
* d2ef23d Refactor paginated campaign query function to return DB total.
* e303850 Refactor paginated list query function to return DB total.
* aa19771 Refactor bounces package to remove db/queries dependency.
* b5cd949 Refactore all CRUD functions to a new `core` package.
* 12b845e Fix incorrect HTTP resp code on public page. Fixes #772.
* 89eca5f Changed email subject template from HTML to text. Fixes #785.
* 75190d9 Fix broken line in the JP language pack.
* a94f238 Sanitize HTML in Buefy dialogs.
* d5b912a Merge pull request #798 from t3hmrman/feat/add-jp-translation
* 6252a16 feat(i18n): add japanese translation
* f489573 Bump axios from 0.21.1 to 0.21.2 in /frontend
* 20cbeb7 Merge pull request #794 from knadh/dependabot/npm_and_yarn/frontend/async-2.6.4
* 8794c92 Bump async from 2.6.3 to 2.6.4 in /frontend
* c898ec2 Merge pull request #790 from nathanaelhoun/patch-1
* 1e8f8ab Updated some French translations
* 06e4b77 Merge pull request #788 from etcware/patch-1
* eb7c07b Update it.json
* 7ea523d Merge pull request #727 from yatish27/fix_typos_in_comments
* 8c9fccb Merge pull request #762 from knadh/dependabot/npm_and_yarn/frontend/minimist-1.2.6
* 73e4c1c Fix POP mail parsing in multipart bounce e-mails.
* 2b78702 Bump minimist from 1.2.5 to 1.2.6 in /frontend
* 2648333 Fix typos
* a714551 Merge pull request #726 from knadh/dependabot/npm_and_yarn/frontend/prismjs-1.27.0
* 61e1260 Merge pull request #728 from knadh/dependabot/npm_and_yarn/frontend/url-parse-1.5.10
* cd48262 Merge branch 'master' of github.com:knadh/listmonk
* 4e6410e Fix list_ids not being considered in bulk list change on the UI. Fixes #737.
* a7af9e3 Merge pull request #751 from TychoWerner/patch-1
* 2b0bb77 Update nl.json
* ef643a1 Add ability to export select subscriber ids.
* 8db8ecf Upgrade Cypress.
* bfce146 Hide confirmed/unconfirmed from single opt-in lists on the UI. Ref #741
* a7ac8ce Merge pull request #749 from an0nfunc/feat-tinymce-anchor
* 3eca66c activated anchor plugin for TinyMCE editor
* 9a0f762 Merge pull request #743 from jonathandhn/master
* d6318f9 Update fr.json
* f9854bc Remove redundant status from single opt-in list subscriptions on the UI. Closes #741.
* 8f45abe Remove Heroku buttons (as it has blocked listmonk without explanation).
* d02efee Merge pull request #735 from an0nfunc/patch-german-translation
* 6ebfb6f German translation mostly for Analytics
* 3b0c8b3 Fix updated settings/config init routine on settings UI.
* b4c7163 Don't show duration on scheduled campaigns that are finished. Closes #701.
* 8d6e475 Merge branch 'fix-i18n'
* c4f1bed Add missing i18n strings to dayjs. Closes #717.
* e87c80e Refactor app init routines to load config/i18n before main app mount.
* 174a48f Merge pull request #730 from ohyesgocool/fixtypos
* 04c4552 Fixed typos
* 28a8b96 Bump url-parse from 1.5.7 to 1.5.10 in /frontend
* ac8c568 Bump prismjs from 1.25.0 to 1.27.0 in /frontend
* 76a86fa Add i18n translation to document titles in the router.
* 45878db Change list UI status counts to i18n plural. Ref: #717
* 6fe36db Fix incorrect i18n tooltip in dashboard graph.
* 09f97c4 Merge pull request #721 from knadh/dependabot/npm_and_yarn/frontend/url-parse-1.5.7
* 028377c Merge pull request #722 from rhnvrm/bump-simples3
* 5dd5cb1 feat: bump simples3 for digitalocean support
* 4835a95 Bump url-parse from 1.5.3 to 1.5.7 in /frontend
* 3495af7 Merge pull request #714 from knadh/dependabot/npm_and_yarn/frontend/ajv-6.12.6
* caa27f3 Merge pull request #699 from yatish27/fix_typos
* 0a6f28a Bump ajv from 6.12.2 to 6.12.6 in /frontend
* 17e723a Merge pull request #700 from knadh/dependabot/npm_and_yarn/frontend/follow-redirects-1.14.8
* 6e45b0b Merge pull request #710 from m3nu/issue/705/empty-logo-url
* 6323737 Merge pull request #713 from marcinkunert/patch-4
* 048fbc2 Updated polish translations
* 9ed0ae7 Use empty logo_url as default
* 5167436 Merge pull request #709 from mannm123/patch-2
* fcb413f Create vi.json
* afdaf46 Bump follow-redirects from 1.14.7 to 1.14.8 in /frontend
* 6c90323 Fix typos
* d442de0 Merge pull request #696 from candideu/master
* ea6acdd Merge pull request #698 from yatish27/patch-2
* dc4e3a6 Fix typo in manager.go
* e623088 Added correct link to repo for docs contribution

## New Contributors
* @yatish27 made their first contribution in https://github.com/knadh/listmonk/pull/698
* @candideu made their first contribution in https://github.com/knadh/listmonk/pull/696
* @mannm123 made their first contribution in https://github.com/knadh/listmonk/pull/709
* @m3nu made their first contribution in https://github.com/knadh/listmonk/pull/710
* @ohyesgocool made their first contribution in https://github.com/knadh/listmonk/pull/730
* @an0nfunc made their first contribution in https://github.com/knadh/listmonk/pull/735
* @jonathandhn made their first contribution in https://github.com/knadh/listmonk/pull/743
* @TychoWerner made their first contribution in https://github.com/knadh/listmonk/pull/751
* @etcware made their first contribution in https://github.com/knadh/listmonk/pull/788
* @nathanaelhoun made their first contribution in https://github.com/knadh/listmonk/pull/790
* @t3hmrman made their first contribution in https://github.com/knadh/listmonk/pull/798
* @sjoerdvanderhoorn made their first contribution in https://github.com/knadh/listmonk/pull/808
* @rslonik made their first contribution in https://github.com/knadh/listmonk/pull/811
* @pucilpet made their first contribution in https://github.com/knadh/listmonk/pull/858
* @p1slave made their first contribution in https://github.com/knadh/listmonk/pull/860
* @srchlm made their first contribution in https://github.com/knadh/listmonk/pull/879

**Full Changelog**: https://github.com/knadh/listmonk/compare/v2.1.0...v2.2.0