Neomutt Versions Save

✉️ Teaching an Old Dog New Tricks -- IRC: #neomutt on irc.libera.chat

20230517

11 months ago

:book: Notes

This is a fixed version of last week's release. Sorry about that.

Some bug fixes and one big feature :-)

True Colour support.

To enable this, you need to export TERM=xterm-direct (shell) and set color_directcolor = yes (neomutt).

Then you can use RGB hex colours in your config:

color status #ffffff #ff8080
color index  #80c000 #007890 apple

:gem: Sponsors

  • P M Brown (@pbwn)
  • Scott Kostyshak (@scottkosty)
  • Ander Punnar (@4nd3r)
  • Mark Korondi (@kmARC)
  • Igor Serebryany (@igor47)

Become a sponsor of NeoMutt

:heart: Thanks

Many thanks to our new contributors:

  • André L C Moreira (@carvalhudo)
  • Sebastian Crane (@seabass-labrax)
  • @auouymous
  • @toonn
  • Baudouin Van Humbeck (@scriptor-pro)
  • Marcelo Ricardo Leitner (@marceloleitner)
  • Daniel Gröber (@danielg)

our regular contributors:

  • Steinar H Gunderson (@sesse)
  • Rayford Shireman (@rayfordshire)
  • наб (@nabijaczleweli)
  • Страхиња Радић (@strahinja)
  • Pietro Cerutti (@gahr)
  • @vuori
  • Gerrit Rüsing (@kbcb)
  • Marius Gedminas (@mgedmin)
  • Emir Sari (@bitigchi)
  • Róbert Horváth (@r001)

:gift: Features

  • #3699 - Support 24bit colors, aka truecolor
  • #3738 - Show complete MIME structure in attachments
  • #3842 - Allow percentages to be localized

:beetle: Bug Fixes

  • #3813 - Fix crash in op_browser_subscribe
  • #3844 - Select the first email when coming from an empty limit
  • #3848 - Fix counting new mails in maildir
  • #3759 - bind: fix incorrect conflict report
  • #3781 - index: only refresh the menu on non-focus window changes
  • #3856 - tunnel: fix reconnection with ssl_force=true
  • #3860 - maildir: stop parsing headers at the end of the headers section
  • #3864 - Fix handling of bright colours
  • Fix sorting of labels

:black_flag: Translations

  • 100% :serbia: Serbian
  • 100% :tr: Turkish
  • 100% :lithuania: Lithuanian
  • 100% :hungary: Hungarian
  • 100% :de: German
  • 99% :norway: Norwegian (Bokmål)
  • 99% :slovakia: Slovak
  • 99% :brazil: Portuguese (Brazil)
  • 99% :czech_republic: Czech
  • 95% :fr: French

:building_construction: Build

  • #3798 - Build with libidn2 by default, remove support for libidn1

:gear: Code

  • config: dynamically create/delete variables
  • config: unify handling of NeoMutt and user (my_) variables
  • config: cache config variables used often
  • speed: various speedups in parsing emails
  • cleanups: lots of code cleanups
  • Huge refactoring towards a separation of Mailbox/MailboxView

20230512

1 year ago

:book: Notes

This release is broken. Sorry. Please use NeoMutt 2023-05-17 instead.

20230407

1 year ago

:book: Notes

This is a Bug-Fix Release.

It also contains some speed improvements -- Thanks Steinar!

:gem: Sponsors

Special thanks to our sponsors:

  • Mark Korondi (@kmARC)
  • [private]
  • Marco Candrian
  • @pbwn
  • Scott Kostyshak (@scottkosty)
  • Ander Punnar (@4nd3r)
  • @angelus2014
  • Ingo Hoffmann
  • Andy Smith
  • Nick Price (@DominoTree)

:heart: Thanks

Many thanks to our new contributors:

  • Carlo Cabrera (@carlocab)
  • Haoyu Qiu (@timothyqiu)
  • Steinar H Gunderson (@sesse)
  • vuori (@vuori)

and our regular contributors:

  • Pietro Cerutti (@gahr)
  • Rayford Shireman (@rayfordshire)
  • Anna (navi) Figueiredo Gomes (@navi-desu)
  • Страхиња Радић (@strahinja)
  • наб (@nabijaczleweli)
  • Marius Gedminas (@mgedmin)
  • Reto Brunner (@brunnre8)
  • Róbert Horváth (@r001)
  • Страхиња Радић (@strahinja)
  • Gerrit Rüsing (@kbcb)
  • Jakub Jindra (@jindraj)

:gift: Features

  • imap : support IMAP4 ID extension (RFC2971)
  • parse: query all changed (set) / all (set all) config variables

:beetle: Bug Fixes

  • lua: fix command registration
  • postpone: use colours from the right mailbox
  • smtp: ignore oauth if it isn't configured and not requested

:wrench: Changed Config

  • New: imap_send_id - Send IMAP ID command when logging in

:black_flag: Translations

  • 100% :czech_republic: Czech
  • 100% :de: German
  • 100% :hungary: Hungarian
  • 100% :lithuania: Lithuanian
  • 100% :brazil: Portuguese (Brazil)
  • 100% :serbia: Serbian
  • 100% :slovakia: Slovak
  • 99% :poland: Polish

:books: Docs

  • Recommend GPGME

:building_construction: Build

  • fix race condition in make install
  • fallback to detect SASL manually if pkg-config fails, e.g., homebew

:gear: Code

  • libmutt: eliminate use of config variables
  • fix ubsan warning
  • mutt: optimize and inline mutt_str_is_email_wsp()
  • progress: update ncurses only when there is actual progress
  • email: Read assumed_charset outside loops
  • hcache: do less work when not in use
  • pager: add helper for getting $pager
  • hcache: remove spurious +1 from Buffer serialization.

20230322

1 year ago

:book: Notes

This is a big release and a lot has changed.

If you find any problems, please let us know as soon as you can.

You can discuss the latest release, here,

Thanks :heart:

:gem: Sponsors

Special thanks to our sponsors:

  • Mark Korondi (@kmARC)
  • [private]
  • Marco Candrian
  • @pbwn
  • Scott Kostyshak (@scottkosty)
  • Ander Punnar (@4nd3r)
  • @angelus2014
  • Ingo Hoffmann
  • Andy Smith
  • Nick Price (@DominoTree)

:heart: Thanks

Many thanks to our new contributors:

  • Rayford Shireman (@rayfordshire)
  • Whitney Cumber (@whitney-cumber)
  • Paulo Matos (@pmatos)
  • Pierre Colin (@Pierre-Colin)
  • Ilya Kurdyukov (@ilyakurdyukov)
  • Anna (navi) Figueiredo Gomes (@navi-desu)
  • Michal Siedlaczek (@elshize)
  • Igor Serebryany (@igor47)
  • Mohammad AlSaleh (@MoSal)
  • Paul Dino Jones (@spacefreak18)
  • Carlos Henrique Lima Melara (@charles2910)
  • Leon Philman (@leonphilman)
  • Darrel Glud (@darrel-glud)
  • Frank Grüllich (@FrankGruellich)
  • Brett Holman (@holmanb)
  • Roberto Alvarado (@robdres)
  • Albert Kim (@alkim0)
  • raf (@raforg)
  • Andrij Mizyk (@andmzk)
  • Maarten van Gompel (@proycon)
  • Chris X Weichenberger (@the-x-at)

and our regular contributors:

  • Tobias Stoeckmann (@stoeckmann)
  • Austin Ray (@austin-ray)
  • Marius Gedminas (@mgedmin)
  • Gerrit Rüsing (@kbcb)
  • Emir Sari (@bitigchi)
  • Pietro Cerutti (@gahr)
  • Jakub Jindra (@jindraj)
  • Marco Sirabella (@mjsir911)
  • Jakub Wilk (@jwilk)
  • Róbert Horváth (@r001)
  • Страхиња Радић (@strahinja)
  • David Purton (@dcpurton)
  • Reto Brunner (@brunnre8)

:gift: Features

  • Use DT_SLIST for charset variables
  • Support viewing html with embedded images
  • Account command, see the feature page
  • Check that sendmail and inews don't contain shell meta characters
  • Browser: add mailbox_folder_format config variable
  • Enter: add function kill-whole-line
  • Account command: add macOS keychain sample provider
  • Account command: add GPG+JSON sample provider
  • Expose italics attribute for colour scheme
  • Allow source in hooks to point to relative paths
  • Resolve alternates when subscribing/unsubscribing
  • Notmuch: allow specifying configuration file
  • Notmuch: allow usage of notmuch profiles
  • Add GNU SASL support for authentication (--gsasl configure option)
  • Extend colour objects to support patterns
  • Detect and fixup maildirs with missing "new" and "tmp" directories
  • Generate standard MIME types as application/pkcs7-* instead of legacy application/x-pkcs7-*
  • Compose: add Smime: pseudo header
  • Handle more X-Mutt pseudo-headers with edit_headers
  • Use socket_timeout to time out read/write operations
  • Allow %[fmt] in $folder_format
  • Respect attribution_locale in indent_string and post_indent_string
  • Pattern: add ~K to search Bcc, include Bcc in ~C, %C, ~L, and ~p
  • Colour postponed emails list
  • Allow querying user-defined variables ($my_var) with -Q
  • Dump user-defined variables ($my_var) with -D
  • Generate purely random Message-ID headers
  • Allow an empty sidebar_divider_char
  • Fix handling and display of group addresses

:beetle: Bug Fixes

  • Fix status_on_top to work on complex windows, e.g., attach
  • Imap: fix off-by-one error causing bogus "Progress message 10/9" message
  • Attach: fix segfault when viewing HTML attachment in compose mode
  • Allow for longer expansions in e.g., index_format
  • Accept unpadded base64-encoded data, as some mailers produce
  • Fix hangup when trying to add email address from help screens
  • Handle corrupted header caches
  • Fix slowdown when changing folders
  • Improve error detection for invalid color regexes
  • Distinguish between old/new with mark_old unset
  • Parse mboxes with unconventional From lines
  • Fix hostname detection for hostname ending with a "."
  • Fix truncated SMTP lines in case of very long lines
  • Use smime_sign_as instead of pgp_sign_as when signing S/MIME messages
  • Set smime_sign_as instead of smime_default_key when signing
  • Fix wrong message being marked as read with $pager_read_delay = 1
  • Fix negative new-mail count on maildir
  • Skip zero width non-joiner character in the pager
  • Handle text/vcard as not being an attachment, same as for text/x-vcard
  • Fix hdr_order not sorting last header correctly
  • Make exiting via SIGINT more graceful
  • Fix unhook index-format-hook
  • Send: delete signature when sending fails
  • SMTP: try all available methods even if SASL is not compiled in
  • Fix decryption issue when postponing S/MIME encrypted mails
  • Avoid unnecessary refreshes
  • Fixed a number of memory leaks and crashes

:wrench: Changed Config

  • New

    • $account_command - Shell command to retrieve account credentials
    • $mailbox_folder_format - printf-like format string for the browser's display of mailbox folders
    • $nm_config_file - Configuration file for notmuch. Use 'auto' to detect configuration.
    • $nm_config_profile - Configuration profile for notmuch.
  • Renamed for consistency (old names still work)

    • $ask_follow_up -> $ask_followup_to
    • $attribution -> $attribution_intro
    • $connect_timeout -> $socket_timeout
    • $implicit_autoview -> $implicit_auto_view
    • $message_cachedir -> $message_cache_dir
    • $post_indent_string -> $attribution_trailer
    • $tmpdir -> $tmp_dir
    • sidebar_whitelist -> sidebar_pin
    • unsidebar_whitelist -> sidebar_unpin
  • Changed default

    • attach_format = "%u%D%I %t%4n %T%d %> [%.7m/%.10M, %.6e%?C?, %C?, %s] " More space for the attachment filename
    • sidebar_divider_char = "|" Allow an empty divider char
  • Deprecated

    • $vfolder_format use $folder_format

:black_flag: Translations

  • 100% :czech_republic: Czech
  • 100% :de: German
  • 100% :hungary: Hungarian
  • 100% :lithuania: Lithuanian
  • 100% :brazil: Portuguese (Brazil)
  • 100% :serbia: Serbian
  • 100% :slovakia: Slovak
  • 100% :tr: Turkish
  • 99% :es: Spanish
  • 99% :ukraine: Ukrainian
  • 94% :poland: Polish
  • 72% Catalan

:books: Docs

  • Lots of updates and cleanups

:building_construction: Build

  • Support building with Undefined Behaviour Sanitizer (--ubsan configure option)
  • Generate compile_commands.json (--compile-commands configure option)
  • Use pkg-config to locate most of the 3rd party dependencies
  • Fix curses for netbsd
  • Improve our CI stack
  • Create libparse - parsing functions that can be easily tested
  • Refactor commands / icommands

:gear: Code

  • Lots of refactoring to make the code more organized, especially in these areas: windowing, menu, browser, enter, function dispatching, key handling, auto-completion
  • Fewer global variables
  • Removal of some unmaintained contrib code
  • New maintained sample config and examples are in the data directory
  • The contrib script mutt_oauth2.py received a lot of love

20220429

2 years ago

:book: Notes

This is a Bug-Fix Release.

:heart: Thanks

Many thanks to our new contributor:

  • Christian Lütke-Stetzkamp (@clkamp)

our regular contributors:

  • Pietro Cerutti (@gahr)
  • Jakub Jindra (@jindraj)
  • Marius Gedminas (@mgedmin)
  • Róbert Horváth (@r001)
  • Gerrit Rüsing (@kbcb)
  • Ramkumar Ramachandra (@artagnon)
  • Zero King (@l2dy)
  • Emir Sari (@bitigchi)
  • Страхиња Радић (@strahinja)

and our sharp-eyed testers:

  • Ricardo Correia (@wizeman)
  • Gennaro Tortone (@gtortone)
  • Ankur Sinha (@sanjayankur31)
  • @Ram-Z
  • @nimipona

:beetle: Bug Fixes

  • Do not crash on an invalid use_threads/sort combination
  • Fix: stuck browser cursor
  • Resolve (move) the cursor after
  • Index: fix menu size on new mail
  • Don't overlimit LMDB mmap size
  • OpenBSD y/n translation fix
  • Generic: split out OP_EXIT binding
  • Fix parsing of sendmail cmd
  • Fix: crash with menu_move_off=no
  • Newsrc: bugfix; nntp_user and nntp_pass ignored
  • Menu: ensure config changes cause a repaint
  • Mbox: fix sync duplicates
  • Make sure the index redraws all that's needed

:black_flag: Translations

  • 100% :cn: Chinese (Simplified)
  • 100% :czech_republic: Czech
  • 100% :de: German
  • 100% :hungary: Hungarian
  • 100% :lithuania: Lithuanian
  • 100% :serbia: Serbian
  • 100% :tr: Turkish

:books: Docs

  • add missing pattern modifier ~I for external_search_command

:gear: Code

  • menu: eliminate custom_redraw()
  • modernise mixmaster
  • Kill global and Propagate display attach status through State

20220415

2 years ago

:book: Notes

This is a Bug-Fix Release.

After last week's enormous release, it's a great relief that few bugs have been found.

The biggest change in this release is the colour handling. I'd hoped the last release would be a stepping stone to improved colour handling. Lots of you explained, in detail, how that wasn't the case.

Sorry!

All colours should now work correctly. In particular, "default" means transparent.

# Emails with subject "work" are blue
color index blue    default "~s work"

# Emails from "boss" have background red
color index default red     "~f boss"

Emails that match both conditions will be blue with a red background. Before this release, only the last matching color line would be applied.

If you have any questions, please:

:heart: Thanks

Many thanks to our regular contributors:

  • Pietro Cerutti (@gahr)
  • Róbert Horváth (@r001)
  • David Purton (@dcpurton)
  • Martin Mitáš (@mity)

and our valiant testers:

  • Jan Palus (@jpalus)
  • Scott Kostyshak (@scottkosty)
  • Nick Wynja (@nickwynja)
  • Chuck Anderson (@cranderson)
  • Thomas Klausner (@0-wiz-0)
  • Mathias Sablé-Meyer (@mathias-sm)
  • @lemmerk
  • @balejk

:lock: Security

  • Fix uudecode buffer overflow (CVE-2022-1328)

:gift: Features

  • Colours, colours, colours

:beetle: Bug Fixes

  • Pager: fix pager_stop
  • Merge colours with normal
  • Color: disable mono command
  • Fix forwarding text attachments when honor_disposition is set
  • Pager: drop the nntp change-group bindings
  • Use mailbox_check flags coherently, add IMMEDIATE flag
  • Fix: tagging in attachment list
  • Fix: misalignment of mini-index
  • Make sure to update the menu size after a resort

:black_flag: Translations

  • 100% :hungary: Hungarian

:building_construction: Build

  • Update acutest

:gear: Code

  • Unify pipe functions
  • Index: notify if navigation fails
  • Gui: set colour to be merged with normal
  • Fix: leak in tls_check_one_certificate()

:recycle: Upstream

  • Flush iconv() in mutt_convert_string()
  • Fix integer overflow in mutt_convert_string()
  • Fix uudecode cleanup on unexpected eof

20220408

2 years ago

:book: Notes

It's been nearly six months since our last release, but we've been really busy. We've made over 500 commits and attracted lots of new contributors.

There are lots of ways you could help NeoMutt. Or perhaps you could buy @flatcap a beer :smile:

Compose Multi-part Emails

Composing multi-part emails is easier than ever.

Compose shows you the layout of your attachments and allows you to make and break groups, and reorder the parts in an understandable way.

More details...

Colours

For the last few releases, the colours have been neglected. Now, they should be working correctly again.

:heart: Thanks

Many thanks to our new contributors:

  • David Purton (@dcpurton)
  • Claes Nästén (@pekdon)
  • Matteo Riondato (@rionda)
  • Emir Sari (@bitigchi)
  • Jakub Kaczor (@jakubkaczor)
  • Adam Dinwoodie (@me-and)
  • Oliver Bandel (@klartext)
  • Cody Brownstein (@cbrownstein)
  • Austin Lund (@aplund)
  • Charalampos Kardaris (@ckardaris)
  • Adam Korcz (@adamkorcz)
  • James Cook (@falsifian)
  • John Wood (@john-at-charpa)
  • Thomas Bracht Laumann Jespersen (@laumann)
  • Ramkumar Ramachandra (@artagnon)
  • Róbert Horváth (@r001)

and our regular contributors:

  • Pietro Cerutti (@gahr)
  • наб (@nabijaczleweli)
  • Scott Kostyshak (@scottkosty)
  • Marius Gedminas (@mgedmin)
  • Gerrit Rüsing (@kbcb)
  • Tobias Stoeckmann (@stoeckmann)
  • Страхиња Радић (@strahinja)
  • Zero King (@l2dy)
  • Austin Ray (@austin-ray)
  • Reto Brunner (@brunnre8)
  • Jakub Jindra (@jindraj)

:gift: Features

:beetle: Bug Fixes

  • Fix screen mode after attempting decryption
  • imap: increase max size of oauth2 token
  • Fix autocrypt
  • Unify Alias/Query workflow
  • Fix colours
  • Say which file exists when saving attachments
  • Force SMTP authentication if smtp_user is set
  • Fix selecting the right email after limiting
  • Make sure we have enough memory for a new email
  • Don't overwrite with zeroes after unlinking the file
  • Fix crash when forwarding attachments
  • Fix help reformatting on window resize
  • Fix poll to use PollFdsCount and not PollFdsLen
  • regex: range check arrays strictly
  • Fix Coverity defects
  • Fix out of bounds write with long log lines
  • Apply fast_reply to 'to', 'cc', or 'bcc'
  • Prevent warning on empty emails

:wrench: Changed Config

  • New default: set rfc2047_parameters = yes

:black_flag: Translations

  • 100% :de: German
  • 100% :lithuania: Lithuanian
  • 100% :serbia: Serbian
  • 100% :czech_republic: Czech
  • 100% :tr: Turkish
  • 72% :hungary: Hungarian

:books: Docs

  • Improve header cache explanation
  • Improve description of some notmuch variables
  • Explain how timezones and !s work inside %{}, %[] and %()
  • Document config synonyms and deprecations

:building_construction: Build

  • Create lots of GitHub Actions
  • Drop TravisCI
  • Add automated Fuzzing tests
  • Add automated ASAN tests
  • Create Dockers for building Centos/Fedora
  • Build fixes for Solaris 10
  • New libraries: browser, enter, envelope
  • New configure options: --fuzzing --debug-color --debug-queue

:gear: Code

  • Split Index/Pager GUIs/functions
  • Add lots of function dispatchers
  • Eliminate menu_loop()
  • Refactor function opcodes
  • Refactor cursor setting
  • Unify Alias/Query functions
  • Refactor Compose/Envelope functions
  • Modernise the Colour handling
  • Refactor the Attachment View
  • Eliminate the global Context
  • Upgrade mutt_get_field()
  • Refactor the color quoted code
  • Fix lots of memory leaks
  • Refactor Index resolve code
  • Refactor PatternList parsing
  • Refactor Mailbox freeing
  • Improve key mapping
  • Factor out charset hooks
  • Expose mutt_file_seek API
  • Improve API of strto* wrappers

:recycle: Upstream

  • imap QRESYNC fixes
  • Allow an empty To: address prompt
  • Fix argc==0 handling
  • Don't queue IMAP close commands
  • Fix IMAP UTF-7 for code points >= U+10000
  • Don't include inactive messages in msgset generation

20211029

2 years ago

:book: Notes

This is a Bug-Fix Release.

:heart: Thanks

Many thanks to our new contributor:

  • Jonas Witschel (@diabonas)

and our regular contributors:

  • Pietro Cerutti (@gahr)
  • Austin Ray (@austin-ray)
  • Christian Ludwig (@luchr)

:gift: Features

  • Notmuch: support separate database and mail roots without .notmuch

:lady_beetle: Bug Fixes

  • fix notmuch crash on open failure
  • fix crypto crash handling pgp keys
  • fix ncrypt/pgp file_get_size return check
  • fix restore case-insensitive header sort
  • fix pager redrawing of long lines
  • fix notmuch: check database dir for xapian dir
  • fix notmuch: update index count after <entire-thread>
  • fix protect hash table against empty keys
  • fix prevent real_subj being set but empty
  • fix leak when saving fcc
  • fix leak after <edit-or-view-raw-message>
  • fix leak after trash to hidden mailbox
  • fix leak restoring postponed emails

20211022

2 years ago

:book: Notes

This is a Bug-Fix Release.

Most notably, it fixes the problems with new mail. You should now get notifications again and change-folder will prompt you with folders containing new mail.

We have removed the Slang GUI from the build. It doesn't work; it isn't understood; it's seldom used.

:heart: Thanks

Many thanks to our regular contributors:

  • Pietro Cerutti (@gahr)
  • Austin Ray (@austin-ray)
  • Björn Ketelaars (@bket)
  • Gerrit Rüsing (@kbcb)
  • Lars Haalck (@larshaalck)
  • Marius Gedminas (@mgedmin)
  • Страхиња Радић (@strahinja)

:lady_beetle: Bug Fixes

  • fix new mail notifications
  • fix pattern compilation error for ~( !~>(~P) )
  • fix menu display on window resize
  • Stop batch mode emails with no argument or recipients
  • Add sanitize call in print mailcap function
  • fix hdr_order to use the longest match
  • fix (un)setenv to not return an error with unset env vars
  • fix Imap sync when closing a mailbox
  • fix segfault on OpenBSD current
  • sidebar: restore sidebar_spoolfile colour
  • fix assert when displaying a file from the browser
  • fix exec command in compose
  • fix check_stats for Notmuch mailboxes
  • Fallback: Open Notmuch database without config
  • fix gui hook commands on startup

:wrench: Changed Config

  • Re-enable $ssl_force_tls

:black_flag: Translations

  • 100% :serbia: Serbian
  • 100% :lithuania: Lithuanian
  • 100% :de: German

:building_construction: Build

  • Remove Slang from the build
  • Warn about deprecated configure options

20211015

2 years ago

:book: Notes

There hasn't been a NeoMutt release for eight months, but we haven't been idle. We've spent the time making some huge architectural improvements to the code. Of course, big changes come with the risk that we might have broken things.

We're happy that NeoMutt is stable and ready for general use, once again, and we encourage you to upgrade.

If you find any problems please let us know as soon as possible. (There will probably be a bug-fix release in a week or two)

Config: If you want new mail to be detected automatically, make sure that you have the config set mail_check_stats = yes

This now applies in a few more places, including Notmuch mailboxes.

:heart: Thanks

Many thanks to our new contributors:

  • Eric Blake (@ebblake)
  • Страхиња Радић (@strahinja)
  • Christos Margiolis (@christosmarg)
  • Michael Constantine Dimopoulos (@michaeldim02)
  • Ryan Kavanagh (@ryanakca)
  • Ashish Panigrahi (@paniash)
  • Gerrit Rüsing (@kbcb)
  • Alexander Kuleshov (@onlyshk)
  • Allan Nordhøy (@comradekingu)
  • Eduardo Habkost (@ehabkost)
  • Freed-Wu (@wzy)
  • Ivan Shmakov
  • Viktor Cheburkin (@vcheburkin)
  • Zak D (@zakarouf)
  • Enno Nagel (@konfekt)
  • Gaël Dubois (@gaael)

and our regular contributors:

  • Pietro Cerutti (@gahr)
  • Austin Ray (@austin-ray)
  • Ihor Antonov (@ngortheone)
  • Marius Gedminas (@mgedmin)
  • наб (@nabijaczleweli)
  • Christian Ludwig (@luchr)
  • Jakub Jindra (@jindraj)
  • Marco Sirabella (@mjsir911)
  • R Primus (@rprimus)
  • Reto Brunner (@brunnre8)
  • Romeu Vieira (@romeug)
  • @ftilde
  • Steve Bennett (@msteveb)
  • Martin Mitáš (@mity)

:lock: Security

  • Fix CVE-2021-32055

:gift: Features

  • threads: implement the $use_threads feature https://neomutt.org/feature/use-threads
  • hooks: allow a -noregex param to folder and mbox hooks
  • mailing lists: implement list-(un)subscribe using RFC2369 headers
  • mailcap: implement x-neomutt-nowrap flag
  • pager: add $local_date_header option
  • imap, smtp: add support for authenticating using XOAUTH2
  • Allow <sync-mailbox> to fail quietly
  • imap: speed up server-side searches
  • pager: improve skip-quoted and skip-headers
  • notmuch: open database with user's configuration
  • notmuch: implement <vfolder-window-reset>
  • config: allow += modification of my_ variables
  • notmuch: tolerate file renames behind neomutt's back
  • pager: implement $pager_read_delay
  • notmuch: validate nm_query_window_timebase
  • notmuch: make $nm_record work in non-notmuch mailboxes
  • compose: add $greeting - a welcome message on top of emails
  • notmuch: show additional mail in query windows

:wrench: Changed Config

We've renamed a lot of config variables, adding underscores, for clarity and consistency, e.g. askbcc becomes ask_bcc.

The old names will continue to work for the foreseeable future.

:lady_beetle: Bug Fixes

  • imap: fix crash on external IMAP events
  • notmuch: handle missing libnotmuch version bumps
  • imap: add sanity check for qresync
  • notmuch: allow windows with 0 duration
  • index: fix index selection on <collapse-all>
  • imap: fix crash when sync'ing labels
  • search: fix searching by Message-Id in <mark-message>
  • threads: fix double sorting of threads
  • stats: don't check mailbox stats unless told
  • alias: fix crash on empty query
  • pager: honor mid-message config changes
  • mailbox: don't propagate read-only state across reopens
  • hcache: fix caching new labels in the header cache
  • crypto: set invalidity flags for gpgme/smime keys
  • notmuch: fix parsing of multiple type=
  • notmuch: validate $nm_default_url
  • messages: avoid unnecessary opening of messages
  • imap: fix seqset iterator when it ends in a comma
  • build: refuse to build without pcre2 when pcre2 is linked in ncurses

:black_flag: Translations

  • 100% :serbia: Serbian
  • 100% :lithuania: Lithuanian
  • 100% :de: German
  • 100% :czech_republic: Czech
  • 96% :es: Spanish
  • 92% :poland: Polish
  • 85% :norway: Norwegian
  • 80% :fr: French
  • 78% :ru: Russian
  • 74% :white_flag: Esperanto
  • 66% :greece: Greek