Under Development
stars

Compose Flow

Compose Flow#

This is a brief overview of the steps NeoMutt takes during message composition. It also shows the order and timing of hook execution.

  1. Reply envelope settings. $reverse_name processing. To, Cc, Subject, References header defaults.

  2. my-header processing for To, Cc, Bcc, Subject headers.

  3. Prompts for To, Cc, Bcc, Subject headers. See $ask_cc, $ask_bcc, $fast_reply.

  4. From header setting. Note: this is so send-hooks below can match ~P, but From is re-set further below in case a send-hook changes the value.

  5. reply-hook

  6. send-hook

  7. From header setting.

  8. my-header processing for From, Reply-To, Message-ID and user-defined headers. The To, Cc, Bcc, Subject, and Return-Path headers are ignored at this stage.

  9. Message body and signature generation.

  10. send2-hook

  11. $real_name part of From header setting.

  12. $editor invocation for the message.

  13. send2-hook

  14. Cryptographic settings.

  15. fcc-hook. Fcc setting.

  16. Compose menu. Note: send2-hook is evaluated each time the headers are changed.

πŸ“· Screenshot Needed

Subject: Compose menu during message composition

Description: The NeoMutt compose screen at step 16 of the flow, showing all header fields (From, To, Cc, Bcc, Subject, Reply-To, Fcc), the security/encryption settings, and the attachment list. The message has been edited and is ready for final review before sending.

Highlights: The complete compose menu layout β€” header fields at the top, attachment list below, and the available key bindings (send, edit, attach, postpone, etc.) in the help bar. This is the stage where :send2-hook fires on each header change.

  1. Message encryption and signing. Key selection.

  2. Fcc saving if $fcc_before_send is set. (Note the variable documentation for caveats of Fcc’ing before sending.)

  3. Message sending.

  4. Fcc saving if $fcc_before_send is unset (the default). The Fcc used to be saved before sending the message. It is now by default saved afterwards, but if the saving fails, the user is prompted.