Under Development
stars

Send Format=Flowed Messages

Send Format=Flowed Messages#

Concept#

format=flowed-style messages (or f=f for short) are text/plain messages that consist of paragraphs which a receiver’s mail client may reformat to its own needs, which mostly means to customize line lengths regardless of what the sender sent. Technically this is achieved by letting lines of a “flowable” paragraph end in spaces except for the last line.

While for text-mode clients like NeoMutt it’s best to assume only a standard 80×24 character cell terminal, it may be desired to let the receiver decide completely how to view a message.

NeoMutt Support#

NeoMutt only supports setting the required format=flowed MIME parameter on outgoing messages if the $text_flowed variable is set, specifically it does not add the trailing spaces.

After editing, NeoMutt properly space-stuffs the message. Space-stuffing is required by RFC3676, defining format=flowed, and means to prepend a space to:

  • all lines starting with a space

  • lines starting with the word From followed by space

  • all lines starting with >, which is not intended to be a quote character

Note

NeoMutt only supports space-stuffing for the first two types of lines but not for the third: It is impossible to safely detect whether a leading > character starts a quote or not.

All leading spaces are to be removed by receiving clients to restore the original message prior to further processing.

Editor Considerations#

As NeoMutt provides no additional features to compose f=f messages, it’s completely up to the user and his editor to produce proper messages. Please consider your editor’s documentation if you intend to send f=f messages.

For example, vim provides the w flag for its formatoptions setting to assist in creating f=f messages, see :help fo-table for details.

Reformatting#

NeoMutt has some support for reformatting when viewing and replying to format=flowed messages. In order to take advantage of these, $reflow_text must be set.

  • Paragraphs are automatically reflowed and wrapped at a width specified by $reflow_wrap.

  • In its original format, the quoting style of format=flowed messages can be difficult to read, and doesn’t intermix well with non-flowed replies. Setting $reflow_space_quotes adds spaces after each level of quoting when in the pager and replying in a non-flowed format (i.e. with $text_flowed unset).

  • If $reflow_space_quotes is unset, NeoMutt will still add one trailing space after all the quotes in the pager (but not when replying).

📷 Screenshot Needed

Subject: Flowed vs fixed text in the pager

Description: The NeoMutt pager showing a format=flowed message with $reflow_text enabled, demonstrating how paragraphs are reflowed and wrapped cleanly to the terminal width. Ideally show a quoted reply with $reflow_space_quotes set, displaying the added spaces between quote level markers.

Highlights: How reflowed paragraphs wrap cleanly compared to fixed-width text with hard line breaks, and how $reflow_space_quotes improves readability by adding spaces after > quote markers.