As we discussed in Folders and Dynamic folders, mu4e
recognizes a number of special folders: mu4e-sent-folder,
mu4e-drafts-folder, mu4e-trash-folder and
mu4e-refile-folder.
When you have a headers-buffer with messages that belong to different contexts (say, a few different accounts), it is desirable for each of them to use the specific folders for their own context — so, for instance, if you trash a message, it needs to go to the trash-folder for the account it belongs to, which is not necessarily the current context.
To make this easy to do, whenever mu4e needs to know the value for
such a special folder for a given message, it tries to determine the
appropriate context using mu4e-context-determine (and policy
nil; see Context policies). If it finds a matching context, it
let-binds the vars for that account, and then determines the
value for the folder. It does not, however, call the enter-func
or leave-func, since we are not really switching contexts.
In practice, this means that as long as each of the accounts has a good
match-func, all message operations automatically find the
appropriate folders.