6.1 Viewing Your Mail

The command RET (mh-show) displays the message that the cursor is on while mouse-2 (mh-show-mouse) displays the message that the mouse cursor is on. If the message is already displayed, it scrolls to the beginning of the message. Use SPC (mh-page-msg) and BS (mh-previous-page) to move forwards and backwards one page at a time through the message. You can give either of these commands a prefix argument that specifies the number of lines to scroll (such as 10 SPC). The SPC command will also show the next undeleted message if it is used at the bottom of a message. MH-E normally hides a lot of the superfluous header fields that mailers add to a message, but if you wish to see all of them, use the command , (comma; mh-header-display).

The option mh-show-maximum-size provides an opportunity to skip over large messages which may be slow to load. The default value of 0 means that all message are shown regardless of size.

A litany of options control what displayed messages look like.

First, the appearance of the header fields can be modified by customizing the associated face: mh-show-to, mh-show-cc, mh-show-from, mh-show-date, and mh-show-subject. The face mh-show-header is used to deemphasize the other, less interesting, header fields.

Normally messages are delivered with a handful of uninteresting header fields. These are hidden by turning on the option mh-clean-message-header-flag (which it is by default). The header fields listed in the option mh-invisible-header-fields-default are hidden, although you can check off any field that you would like to see. Header fields that you would like to hide that aren’t listed can be added to the option mh-invisible-header-fields with a couple of caveats. Regular expressions are not allowed. Unique fields should have a ‘:’ suffix; otherwise, the element can be used to render invisible an entire class of fields that start with the same prefix. If you think a header field should be generally ignored, please update SF #245.

MH-E can display the content of ‘Face:’, ‘X-Face:’, and ‘X-Image-URL:’ header fields. If any of these fields occur in the header of your message, the sender’s face will appear in the ‘From:’ header field. If more than one of these fields appear, then the first field found in the order ‘Face:’, ‘X-Face:’, and ‘X-Image-URL:’ will be used. The option mh-show-use-xface-flag is used to turn this feature on and off. This feature will be turned on by default if your system supports it.

The first header field used, if present, is the Gnus-specific ‘Face:’ field13.

Next is the traditional ‘X-Face:’ header field14 MH-E renders the foreground and background of the image using the associated attributes of the face mh-show-xface.

Finally, MH-E will display images referenced by the ‘X-Image-URL:’ header field if neither the ‘Face:’ nor the ‘X-Face:’ fields are present15. Of the three header fields this is the most efficient in terms of network usage since the image doesn’t need to be transmitted with every single mail. The option mh-fetch-x-image-url controls the fetching of the ‘X-Image-URL:’ header field image with the following values:

Ask Before Fetching

You are prompted before the image is fetched. MH-E will remember your reply and will either use the already fetched image the next time the same URL is encountered or silently skip it if you didn’t fetch it the first time. This is a good setting.

Never Fetch

Images are never fetched and only displayed if they are already present in the cache. This is the default.

There isn’t a value of ‘Always Fetch’ for privacy and DOS (denial of service) reasons. For example, fetching a URL can tip off a spammer that you’ve read his email (which is why you shouldn’t blindly answer yes if you’ve set this option to ‘Ask Before Fetching’). Someone may also flood your network and fill your disk drive by sending a torrent of messages, each specifying a unique URL to a very large file.

The cache of images is found in the directory .mhe-x-image-cache within your MH directory. You can add your own face to the ‘From:’ field too. See Inserting Your Picture.

Normally MH-E takes care of displaying messages itself (rather than calling an MH program to do the work). If you’d rather have mhl display the message (within MH-E), change the option mh-mhl-format-file from its default value of ‘Use Default mhl Format (Printing Only)’. You can set this option to ‘Use Default mhl Format’ to get the same output as you would get if you ran mhl from the shell. If you have a format file that you want MH-E to use, you can set this option to ‘Specify an mhl Format File’ and enter the name of your format file (mhl(1) or section Using mhl in the MH book tells you how to write one). Your format file should specify a non-zero value for ‘overflowoffset’ to allow MH-E to parse the header. Note that mhl is always used for printing and forwarding; in this case, the value of mh-mhl-format-file is consulted if you have specified a format file.

If the sender of the message has cited other messages in his message, then MH-E will highlight these citations to emphasize the sender’s actual response. The option mh-highlight-citation-style can be customized to change the highlighting style. The ‘Multicolor’ method uses a different color for each indentation while the ‘Monotone’ method highlights all citations in red. To disable highlighting of citations entirely, choose ‘None’.

Email addresses and URLs in the message are highlighted if the option goto-address-highlight-p is on, which it is by default. To view the web page for a highlighted URL or to send a message using a highlighted email address, use mouse-2 or C-c RET (goto-address-at-point). See Sending Mail, to see how to configure Emacs to send the message using MH-E.

It is a long standing custom to inject body language using a cornucopia of punctuation, also known as the smileys. MH-E can render these as graphical widgets if the option mh-graphical-smileys-flag is turned on, which it is by default. Smileys include patterns such as :-) and ;-). Similarly, a few typesetting features are indicated in ASCII text with certain characters. If your terminal supports it, MH-E can render these typesetting directives naturally if the option mh-graphical-emphasis-flag is turned on, which it is by default. For example, _underline_ will be underlined, *bold* will appear in bold, /italics/ will appear in italics, and so on. See the option gnus-emphasis-alist for the whole list. Both of these options are disabled if the option mh-decode-mime-flag is turned off. See Viewing Attachments.

MH-E normally renders signatures and vCards in italics so that the body of the message stands out more. MH-E depends on the presence of the signature separator ("-- ") to do this. You can also customize the face mh-show-signature so the appearance of the signature block is more to your liking.

Two hooks can be used to control how messages are displayed. The first hook, mh-show-mode-hook, is called early on in the process of the message display. It is usually used to perform some action on the message’s buffer. The second hook, mh-show-hook, is the last thing called after messages are displayed. It’s used to affect the message’s content, the behavior of MH-E in general, or when mh-show-mode-hook is too early.

For those who like to modify their mode lines, use mh-show-buffer-mode-line-buffer-id to modify the mode line in the MH-Show buffers. Place the two escape strings ‘%s’ and ‘%d’, which will display the folder name and the message number, respectively, somewhere in the string in that order. The default value of "{show-%s} %d" yields a mode line of

-----{show-+inbox} 4      (MH-Show)--Bot--------------------------------

Footnotes

(13)

For more information, see https://quimby.gnus.org/circus/face/.

(14)

The display of this field requires the uncompface program.

(15)

The display of the images requires the wget program to fetch the image and the convert program from the ImageMagick suite.