Next: Viewing Attachments, Previous: Reading Mail, Up: Reading Mail

### 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 #1916032.

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:`’ field1.

Next is the traditional ‘`X-Face:`’ header field2. 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 present3. 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 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 content. The second hook, `mh-show-hook`, is the last thing called after messages are displayed. It's used to affect 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

[1] The ‘`Face:`’ field appeared in GNU Emacs 21 and XEmacs. For more information, see http://quimby.gnus.org/circus/face/.

[2] The display of this field requires the `uncompface` program. Recent versions of XEmacs have internal support for ‘`X-Face:`’ images. If your version of XEmacs does not, then you'll need both `uncompface` and the ‘`x-face`’ package.

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