Read and unread in mutt

Solution 1:

Regarding the nomenclature, there are 3 states for an email in mutt:

  • New - message is new and unread (indicated by a N in the first column of the index)
  • Old - message is old and unread (indicated by an O in the first column of the index)
  • Read - message has been presented to the user (nothing in the first column of the index)

If you start mutt and several new messages are in your inbox and you close mutt before you have read them, then those messages will get flagged as old (by default). The behavior can be controlled via the mark_old configuration variable, i.e. writing

set mark_old=no

in .muttrc does removes the disctinction between old and new. I.e. new messages are always new until they have been read.

However, note that the status you see in the mutt index is not immediately synchronized to the IMAP server - by default this synchronization is triggered by either quitting mutt or pressing $. Therefore, if you access the IMAP mailbox with another client, changes will appear in this client only after a synchronization has been performed from mutt. Furthermore, if you open a mailbox with mutt and then make changes with another client to that mailbox, mutt will complain about this when synchronizing.