12 February 2022

listmonk v2.1.0

Repository: @knadh/listmonk

GitHub release page: v2.1.0


listmonk-logo

This version contains a number of fixes, improvements, (small) feature additions, and performance improvements.

Improvements

  • An improved mobile UI and CSS/JS customization for admin and public pages from the settings UI under the new “Appearance” tab. This reduces the need for loading custom templates with --static-dir. Contributed by @sweetppro

  • Accurate, realtime messages / minute counter on running campaigns.

  • --passive mode (that doesn’t process campaigns) for running multiple instances of the app.

  • Per-campaign custom SMTP headers.

  • TLS (in addition to STARTTLS) support for SMTP servers.

  • Accurate unconfirmed / confirmed / unsubscribed counts on the lists UI.

  • Search lists like campaigns.

  • Support for public CDN endpoints in media uploads.

  • {{ TrackLink }} now accepts dynamic arguments, such as a link from subscriber’s attributes.

  • Campaign analytics now shows unique counts if individual tracking is turned on.

  • New Dutch (@Jjagg) and Hungarian (@bohemtucsok) language packs.

Fixes

  • POP3 bounce mail scanning on mail envelopes.

  • S3/IAM blocking indefinitely on bad configuration in non-AWS environments.

  • Richtext / HTML conversion adding stray spaces to links in the editor.

  • A number of other minor UX fixes.

Shoutout to @NicoHood for patiently reporting a number of UX glitches and suggesting improvements.

How to upgrade

As always, take a backup of your database before upgrading.

Binary

Download the latest binary. Stop and replace the old binary. Run ./listmonk --upgrade. Start the app again.

Docker


# cd /directory/with/docker-compose.yml



docker-compose down

docker-compose pull && docker-compose run --rm app ./listmonk --upgrade

docker-compose up -d app db

Changes to public templates

The near Appearance tab in settings adds the following two lines to the <head> tag of static/public/templates/index.html:


	<link href="/public/custom.css" rel="stylesheet" type="text/css">

	<script src="/public/custom.js" async defer></script>

If your installation has custom static templates with --static-dir, please add these two lines to use the new customization feature.

What’s next?

  • Transactional e-mails and messages.

  • (Multi) user management system.

Changelog

  • 0ecfb89 Remember appearance sub tab in settings UI.

  • 481d6ef Move bundled fonts to a better location.

  • 93366f4 Remember last chosen tab on the settings UI.

  • 0f6a037 Add accurate realtime message rate counter.

  • 1b163d1 Fix next-subscribers batch query for a ~210x speedup.

  • 02eaa66 Fix lists test to accommodate new UI yes/no campaign prompts.

  • 8fb459d Fix custom DB type scan failing when nil.

  • 48ef3dc Support status in bulk subscriber list update API. Closes #604.

  • 251c1ea Fix campaign start throwing error when disabling schedule on the UI.

  • da30d46 Add subscriber status counts to the lists UI.

  • 182795e Refactor table stats field set styles.

  • 1b017c0 Merge branch ‘master’ of github.com:knadh/listmonk

  • 2614b07 Refactor campaign analytics to show unique / non-unique data.

  • 1c37732 Merge pull request #683 from sanketsaurav/master

  • 0d88bd8 Fix spelling for “compatible”

  • d0b32b9 Allow unsubscribed users to re-subscribe. Closes #588

  • d2cf6e0 Fix TrackLink template code to accept Go template variables. Closes #667.

  • 9551f54 Merge branch ‘master’ of github.com:knadh/listmonk

  • 636db20 Fix editor HTML beautification in incorrectly adding breaks to links.

  • f46ab23 Merge pull request #679 from marcinkunert/patch-3

  • 3b1614b Added end of line config for git

  • 6a5ed43 Change Heroku button repo.

  • 5c2005d Merge pull request #668 from avanier/upkeep/spiffy-up-docker-dev-stack

  • c7c04c5 Provide a default configuration file for containerized development

  • 5a6b338 Use –idempotent and –yes flags when bootstrapping the dev db

  • 4ecd044 Spiffy up the continerized dev README

  • 64d2c5a Add support for custom public S3 URLs. Closes #505.

  • 7955a4f Fix media upload S3 IAM init blocking outside non-AWS environments.

  • 4ddd3e8 Add ‘View in browser’ link to the default email template. Closes #540.

  • c6d5d86 Warn of unsaved changes on the campaign editor on navigation. Closes #551.

  • 4c09cc1 Auto-focus TinyMCE editor area on load.

  • 3f02609 Add unsubscribe link to opt-in confirmation e-mail. Closes #573.

  • 28efe27 Merge branch ‘master’ of github.com:knadh/listmonk

  • 04ea18c Refactor opt-in confirmation behaviour in subscriber update API.

  • 740373d Merge pull request #664 from nikochiko/spaces-in-filenames

  • be1d048 Replace whitespace with dash in names of uploaded files

  • c95427e Merge branch ‘master’ of github.com:knadh/listmonk

  • a2458cf Merge pull request #663 from knadh/dependabot/npm_and_yarn/frontend/follow-redirects-1.14.7

  • a314eb5 Bump follow-redirects from 1.13.1 to 1.14.7 in /frontend

  • e62dc24 Re-order SMTP auth protocols in the settings UI by popularity.

  • 2f56057 Close burger ‘menu’ when clicking items in mobile view.

  • b0787f7 Merge pull request #649 from joeirimpan/fix/msgr-persist

  • 4c48c32 fix(frontend): Persist messenger selection

  • e200ab0 Add support for additional POP3 mail charsets. Closes #644.

  • f266f55 Tidy go.mod

  • e1d3dd4 Merge branch ‘master’ of github.com:knadh/listmonk

  • d8ed404 Make tls_enabled key migratin idempotent.

  • 583dab4 Add support for per-campaign custom headers.

  • 9e9ea0e Refactor automatic camel casing of API response fields.

  • d42c676 Merge pull request #646 from ldidry/add-autoheadingid-option-to-markdown-parser

  • 73e6668 Add AutoHeadingID option to Markdown parser

  • dd061f5 Add support for direct SSL/TLS (non-STARTTLS) SMTP connections.

  • e46a5cd Merge pull request #640 from rhnvrm/feat-s3-put

  • c003aec feat: switch from s3 POST to s3 put

  • d523d0a Merge pull request #639 from mr-karan/tz

  • e4d8286 feat: Add timezone config in app container

  • b48a15c Fix incorrect ’nice date’ formatting. Closes #635.

  • e982e6b Don’t warn on format change when campaign content is empty. Closes #634.

  • c1c2b67 Add a link to more language packs to the language settings UI.

  • fabe06e Add support for custom CSS/JS in settings for admin and public pages.

  • 920645f Fix typo in Makefile.

  • 13edf42 Merge pull request #625 from mr-karan/master

  • c9189a1 fix(install-prod.sh): Make tr work with macOS

  • ca128df Add support for searching lists + search UI. Closes #618.

  • e9709e5 Upgrade labstack/echo webserver to major version v4.

  • 02c1408 Fix broken Cypress UI tests.

  • 4cb5eb7 Fix settings form input validation.

  • e9dded7 Merge pull request #608 from mr-karan/dev_docker

  • e977b90 feat: Add dev docker setup

  • e6c1f1e Merge pull request #605 from Jjagg/i18n-nl

  • 1c8ab5c Add dutch (nl) translation

  • 3386de4 Fix GET /subscribers calls not accepting multiple list_ids.

  • d32c11a Merge pull request #603 from NicoHood/patch-2

  • 8a70595 Fix #601 german translation

  • 575d007 Fix alert email urls (#595)

  • 903330b Create hu.json (#591)

  • a7fa97a Add scanning of full bounce email body for bounce headers. Closes #492.

  • c8c135e Fix broken test mail due to missing tpl param.

  • 35ac1cc Embed Inter font files and remove Google font links. Closes #547.

  • 46f13bf Fix broken logout link in desktop nav view (#580)

  • 2388a05 Update fr.json (#581)

  • 7b9ba2e improved mobile navbar/sidebar (#574)

  • 125d51f Merge pull request #576 from MickGe/patch-1

  • a2c885b Add a note on Postgres min version.

  • ebf6af2 Clear placeholder on focus

  • 19e0ea5 Fix scheduling params being ignored on the create campaign UI. Fixes #516.

  • 0bd13fe Fix response content type in plaintext campaign previews. Closes #568

  • d00a1a1 Merge branch ‘master’ of github.com:knadh/listmonk

  • 738c8e9 Merge pull request #569 from ChrisTG742/patch-2

  • 34915f1 Merge pull request #570 from jorge-vitrubio/patch-1

  • 58bd242 Updated es.json

  • bfefb0f German translation needed for #526

  • 88d0c77 Merge pull request #567 from knadh/dependabot/npm_and_yarn/frontend/tinymce-5.10.0

  • 2819ca8 Bump tinymce from 5.9.2 to 5.10.0 in /frontend

  • 1ece738 Fix incorrect container width on public page responsive view.

  • 5bfbe15 Fix campaign template preview not working without saving. Closes #553.

  • 644f98f Fix typo

  • ef4de09 Add contribution and participation guidelines and code of conduct.

  • 1054c01 Hide ‘Back’ button when it is superfluous on public pages.

  • 1101039 Add “passive” mode with --passive flag.

  • 9dd8592 Prevent images from being squished in the default e-mail template. Closes #548.

  • f39ee4e Fix TinyMce campaign editor toolbar to the top on scroll. Closes #549.

  • b290d27 Add support for plaintext system e-mail templates.

  • 1c8ac0f Add ‘preconfirm subscription’ option to subscriber UI. Closes #526.

  • 76cd4d3 Merge branch ‘master’ of github.com:knadh/listmonk

  • ed8d68b Add anti-bot nonce field to generated forms. Closes #541.

  • 151b86a Merge pull request #538 from NicoHood/patch-1

  • fb3da6b Add german back button translation

  • b163b13 Add a “Back” button the public subscription/message page.

  • bc9252f Autogenerate subscriber name from e-mail on the UI if it’s empty. Closes #525.

  • 0f896c1 Fix email field in generated form HTML. Closes #529.

  • ca51c48 Fix duplicate class attr in optin e-mail. Closes #524.

  • f91b27d Merge pull request #518 from mr-karan/script_fix

  • 6cd7d66 fix: Add a check for existing docker db volume

  • 3064844 Merge branch ‘master’ of github.com:knadh/listmonk

  • a017597 Fix strings on the UI missed in i18n translation. Closes #506.

  • 469f392 Merge pull request #507 from marcinkunert/patch-2

  • d6703f2 Updated polish translations

  • 823f11e Remove redundant GitHub issue template.

  • b46ab6d Fallback to default S3 URL on empty media upload URL in settings.

  • d91d6e5 Merge branch ‘go-deps’

  • 6053b09 Merge branch ‘master’ of github.com:knadh/listmonk

  • 7aa8508 Add explicit public-read ACL to public S3 uploads. Closes #496.

  • 4ec4a1b Merge pull request #494 from marcofucito/master

  • 7015c04 Italian translation

  • 443ba18 Merge pull request #491 from citrus-it/makedep

  • ecc3516 pack-bin is missing dependency on build-frontend

  • 0d8c036 Merge pull request #490 from citrus-it/touch

  • ac69f6c Use POSIX standard -c flag for “touch”

  • d0f1a27 Update Go deps.

  • b45baaa Merge pull request #485 from tachyons/patch-1

  • 30dbe88 Fix typo