Lines Matching +refs:switch +refs:to +refs:minibuffer

3 @c Note: This document requires makeinfo version 4.6 or greater to build.
34 Permission is granted to copy, distribute and/or modify this document
45 (a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
61 * MH-E: (mh-e). Emacs interface to the MH mail system.
207 This manual introduces another interface to the MH mail system that is
209 easy to use. I don't assume that you know GNU Emacs or even MH at this
218 known not to work with GNU Emacs versions 20 and below, and XEmacs
221 shouldn't have to do anything special to use it. Gnus is also
229 If you don't already use GNU Emacs but want to learn more, you can
232 @ref{Conventions}.) If you want to take the plunge, consult the
245 If more information is needed, you can go to the Unix manual pages of
247 you to a relevant MH manual page that describes the action more fully.
286 conventions and definition of terms and go directly to the next
299 In general, @dfn{functions} in this text refer to Emacs Lisp functions
323 Press the @key{RETURN} or @key{ENTER} key. This is normally used to
337 earlier of Emacs, you will need to use the @key{DEL} key.}.
344 A @dfn{prefix argument} allows you to pass an argument to any Emacs
346 or keystroke. Numeric arguments can be passed as well. For example, to
348 using @kbd{C-u}, and you can use multiple prefix arguments to provide
353 include @kbd{M-5} to specify an argument of 5, or @kbd{M--} which
372 Emacs uses @dfn{variables} to hold values. These can be changed via
373 calls to the function @code{setq} in @file{~/.emacs}.
400 MH-E provides a set of faces that you can use to personalize the look
401 of your MH-E buffers. Use the command @kbd{M-x customize-face} to do
419 Commands often offer @dfn{hooks} which enable you to extend or modify
460 @cindex Emacs, minibuffer
463 @cindex minibuffer
467 The @dfn{minibuffer} is the bottom line of the Emacs window, where all
469 @dfn{completion} to enter values such as folders. Completion means
488 The minibuffer is also where you enter Emacs function names after
493 for @samp{help-with-tutorial} in the minibuffer after typing
500 @code{tcsh}, and @command{csh}. It is analogous to the environment
512 you enter something in the minibuffer, but then you change your mind,
513 type @kbd{C-g} and you'll be back where you started. If you want to
524 to know which version you have. I'll be talking about @w{Version 8}
525 which is pretty close to @w{Version 6} and @w{Version 7}. It differs
545 `components'} if MH-E can't find MH@. In this case, you need to update
546 MH-E, and you may need to install MH too. However, newer versions of
548 to install MH or tell MH-E where to find MH.
566 If you've never run MH before, you need to run @command{install-mh}
572 you need to know about MH to use MH-E, but the more you know about MH,
574 @uref{@value{MH-BOOK-HOME}/../, MH book} to learn more about MH.
585 component contains the path to your mail directory, which is
596 There are several options MH-E uses to interact with your MH
603 all, you may have to customize @code{mh-path} and add the directory in
606 @code{mh-variant-in-use} was initialized to nmh but you want to use
607 GNU mailutils MH, then you can set @code{mh-variant} to
626 Prior to version 8, it was often necessary to set some of these
648 In addition to setting variables that point to MH itself, MH-E also
649 sets a handful of variables that point to where you keep your mail.
652 defaults to @samp{Mail} if one isn't present), @code{mh-draft-folder}
656 (defaults to @samp{+inbox}). The hook @code{mh-find-path-hook} is run
658 the value of these variables if you need to run with different values
668 This chapter introduces some of the terms you'll need to know and then
670 chapters refer to the default key bindings. If you've changed the
671 bindings, refer to the command summaries at the beginning of each
673 names.}. When you're done, you'll be able to send, read, and file
675 curious or adventurous type, read the rest of the manual to be able to
676 use all the features of MH-E@. I suggest you read this chapter first to
697 read and process. Enter @kbd{M-x mh-smail} to invoke the MH-E program
698 to send messages. Your message appears in an Emacs buffer whose
699 mode@footnote{A @dfn{mode} changes Emacs to make it easier to edit a
703 @key{TAB} twice to move the cursor past the @samp{Cc:} field, since no
704 carbon copies are to be sent, and on to the @samp{Subject:} field.
705 Enter @kbd{Test} or anything else that comes to mind.
707 Press @key{TAB} again to move the cursor to the body of the message.
727 This is a test message to get the wheels churning...#
731 Type C-c C-c to send message, C-C ? for help
738 present or the body of your message will be considered to be part of
747 There are several commands specific to MH-Letter mode@footnote{You can
750 command.}, but at this time we'll only use @kbd{C-c C-c} to send your
751 message. Type @kbd{C-c C-c} now. That's all there is to it!
785 you have already read. If you were to run this tour again, you would
786 use @kbd{F r} to pull all your messages into MH-E.
795 @kbd{n} or @kbd{p} to move the cursor to your test message and type
796 @key{RET} to read your message. You should see something like:
801 # 4+t08/24 To:wohler Test<<This is a test message to get the wheels
810 This is a test message to get the wheels churning...
833 The first thing we want to do is reply to the message that we sent
835 test message and type @kbd{r}. You are prompted in the minibuffer with
836 @samp{Reply to whom:}. Here MH-E is asking whether you'd like to reply
837 to the original sender only, to the sender and primary recipients, or
838 to the sender and all recipients. You can press @key{TAB} to see these
839 choices. If you simply press @key{RET}, you'll reply only to the
842 You'll find yourself in an Emacs buffer similar to that when you were
865 This is a test message to get the wheels churning...
868 Type C-c C-c to send message, C-c ? for help
885 By default, MH will not add you to the address list of your replies,
887 worry. In this case, type @kbd{C-c C-f C-t} to create and go to the
901 You'll often want to save messages that were sent to you in an
903 folders to keep messages from your friends, or messages related to a
905 positioned on the message you sent to yourself, type @kbd{o} to output
906 (@command{refile} in MH parlance) that message to a folder. Enter
908 (or @key{SPC}) when MH-E asks to create the folder @samp{+test}. Note
909 that a @samp{^} (caret) appears next to the message number, which
926 use @kbd{n} or @kbd{p} to move the cursor to the new message, and read
928 that a @samp{D} appears next to the message number. This means that
936 If you want to send another message you can use @kbd{m} instead of
937 @kbd{M-x mh-smail}. So go ahead, send some mail to your friends!
960 You may now wish to exit @command{emacs} entirely. Use @kbd{C-x C-c}
961 to exit @command{emacs}. If you exited without running @kbd{x} in the
962 @samp{+inbox} buffer, Emacs will offer to save it for you. Type
963 @kbd{y} or @key{SPC} to save @samp{+inbox} changes, which means to
971 If you don't want to leave Emacs, you can type @kbd{q} to bury (hide)
981 On the other hand, if you no longer want to use MH and MH-E, you can
984 example, to create a file called @file{msgbox} with the messages in
986 @command{packf} command will append the messages to the file if it
988 script to copy all of your messages into a single file, or using the
994 These are the basic commands to get you going, but there are plenty
996 to find out how you can:
1078 like to rebind the keys, the command summaries also list the
1086 i} to read this manual via Info. The built-in help is quite good; try
1089 k C-n}). Another useful help feature is to view the manual section
1092 strange to you.
1094 In addition to all of the commands, it is also possible to reconfigure
1095 MH-E to fit the needs of even the most demanding user. The following
1099 However, when customizing your mail environment, first try to change
1112 I hope I've included enough examples here to get you well on your way.
1113 If you want to explore Emacs Lisp further, a programming manual does
1139 from Emacs Lisp code, you'll need to know the correct arguments. Use
1145 your initials. (Unless, of course, your initials happen to be @emph{mh}!)
1163 Many string or integer options are easy to modify using @kbd{M-x
1164 customize-option}. For example, to modify the option that controls
1167 the string to the right of the variable. For example, you may change
1183 true. The @code{customize-option} function makes it easy to change
1185 buffer to switch between @samp{on} (@code{t}) and @samp{off}
1187 to @samp{off} to keep the MH-Show buffer at the top of the buffer
1189 Session} to see how the option affects the show buffer. Then choose
1190 the @samp{Erase Customization} menu item to reset the option to the
1196 The text usually says to turn on an option by setting it to a
1209 @key{RET}} to view the top-level options as well as buttons for all of
1210 the MH-E customization groups. Another way to view the MH-E
1211 customization group is to use @kbd{M-x mh-customize @key{RET}}.
1228 If you provide the prefix argument @kbd{C-u} to these commands, then
1235 Indicates all messages in the range <num1> to <num2>, inclusive. The
1241 Up to N messages beginning with (or ending with) message num. Num may
1279 default). If you need to scan just the message 200, then use the range
1290 (@code{mh-refile-msg}), completion is used to enter the folder
1306 options which are used to help with this.
1310 Function to select a default folder for refiling or @samp{Fcc:}
1317 On means guessed folder name must exist to be used (default:
1327 to a function that provides a default folder for the message to be
1332 name is used as the default, or an empty string to suppress the
1349 An alias prefixed by @code{mh-default-folder-prefix} corresponding to
1350 the address is used. The prefix is used to prevent clutter in your
1390 Program to incorporate mail (default: @code{"inc"}).
1414 the name of the file to use as well as the destination folder (for
1424 in the mode line. To enable this behavior, and to have a clock in the
1425 mode line as well, add the following to @file{~/.emacs}:
1442 is an absolute pathname, the file is assumed to be in the
1444 a file to @command{inc} that uses a different format (see
1448 the MH book). You'll then need to modify several variables
1453 You can use the @code{mh-inc-spool-list} variable to direct MH-E to
1456 key bindings to incorporate this mail.
1463 Suppose you are subscribed to the @i{mh-e-devel} mailing list and you
1464 use @command{procmail} to filter this mail into @file{~/mail/mh-e}
1478 In order to incorporate @file{~/mail/mh-e} into @samp{+mh-e} with an
1492 You can use @command{xbuffy} to automate the incorporation of this
1513 command. A good use of this hook is to rescan the whole folder either
1525 "Hook to rescan folder after incorporating mail."
1555 to see your old mail as well, use @kbd{F r} to pull all your messages
1556 into MH-E@. Or, give a prefix argument to @code{mh-rmail} so it will
1557 prompt you for folder to visit like @kbd{F v} (for example, @kbd{C-u
1563 There are some commands that need to read mail, such as @kbd{mouse-2}
1564 over the @samp{Mail} button that @code{display-time} adds to the mode
1565 line. You can configure Emacs to have these commands use MH-E by
1566 setting the option @code{read-mail-command} to @samp{mh-rmail}.
1625 @cindex @samp{Message > Write Message to File...} menu item
1626 @cindex menu item, @samp{Message > Write Message to File...}
1628 @findex mh-write-msg-to-file
1630 Append message to end of file (@code{mh-write-msg-to-file}).
1632 @cindex @samp{Message > Pipe Message to Command...} menu item
1633 @cindex menu item, @samp{Message > Pipe Message to Command...}
1642 Delete range, don't move to next message
1656 minibuffer (@code{mh-prefix-help}).
1675 @cindex @samp{Message > Go to Message by Number...} menu item
1676 @cindex menu item, @samp{Message > Go to Message by Number...}
1680 Go to a message (@code{mh-goto-msg}).
1692 minibuffer (@code{mh-prefix-help}).
1697 Go to the next button (@code{mh-next-button}).
1702 Go to the previous button (@code{mh-prev-button}).
1742 @cindex @samp{Message > Go to First Message} menu item
1743 @cindex menu item, @samp{Message > Go to First Message}
1749 @cindex @samp{Message > Go to Last Message} menu item
1750 @cindex menu item, @samp{Message > Go to Last Message}
1784 minibuffer (@code{mh-prefix-help}).
1801 Print range to file (@code{mh-ps-print-msg-file}).
1820 minibuffer (@code{mh-prefix-help}).
1835 Move point to mouse event and show message (@code{mh-show-mouse}).
1894 List of hidden header fields (default: a checklist too long to list
1898 Additional header fields to hide (default: @code{nil}).
1901 Command used to print (default: @code{"lpr -J '%s'"}).
1912 Specifies the format file to pass to the @command{mhl} program
1916 Default directory to use for @kbd{K a}.
1923 Format string to produce @code{mode-line-buffer-identification} for
1927 Maximum size of message (in bytes) to display automatically (default:
1951 Hook run upon entry to @code{mh-show-mode} (default: @code{nil}).
1958 Face used to highlight @samp{cc:} header fields.
1961 Face used to highlight @samp{Date:} header fields.
1964 Face used to highlight @samp{From:} header fields.
1967 Face used to deemphasize less interesting header fields.
1982 Face used to highlight @samp{Subject:} header fields.
1984 @item mh-show-to
1985 Face used to highlight @samp{To:} header fields.
2024 displayed, it scrolls to the beginning of the message. Use @key{SPC}
2025 (@code{mh-page-msg}) and @key{BS} (@code{mh-previous-page}) to move
2028 number of lines to scroll (such as @kbd{10 @key{SPC}}). The @key{SPC}
2031 header fields that mailers add to a message, but if you wish to see
2037 The option @code{mh-show-maximum-size} provides an opportunity to skip
2038 over large messages which may be slow to load. The default value of 0
2048 @vindex mh-show-to
2051 customizing the associated face: @code{mh-show-to}, @code{mh-show-cc},
2053 The face @code{mh-show-header} is used to deemphasize the other, less
2066 check off any field that you would like to see. Header fields that you
2067 would like to hide that aren't listed can be added to the option
2070 suffix; otherwise, the element can be used to render invisible an
2089 @code{mh-show-use-xface-flag} is used to turn this feature on and off.
2103 @c FIXME: These URLs do not seem to work any more.
2125 @command{wget} program} to fetch the image and the @command{convert}
2128 efficient in terms of network usage since the image doesn't need to be
2148 yes if you've set this option to @samp{Ask Before Fetching}). Someone
2150 torrent of messages, each specifying a unique URL to a very large
2158 own face to the @samp{From:} field too. @xref{Picture}.
2165 calling an MH program to do the work). If you'd rather have
2168 mhl Format (Printing Only)}. You can set this option to @samp{Use
2169 Default mhl Format} to get the same output as you would get if you ran
2171 MH-E to use, you can set this option to @samp{Specify an mhl Format
2174 the MH book tells you how to write one). Your format file should
2175 specify a non-zero value for @samp{overflowoffset} to allow MH-E to
2185 then MH-E will highlight these citations to emphasize the sender's
2187 customized to change the highlighting style. The @samp{Multicolor}
2204 the web page for a highlighted URL or to send a message using a
2206 (@code{goto-address-at-point}). @xref{Sending Mail}, to see how to
2207 configure Emacs to send the message using MH-E.
2220 It is a long standing custom to inject body language using a
2249 the @dfn{signature separator} (@code{"-- "}) to do this. You can also
2251 signature block is more to your liking.
2256 Two hooks can be used to control how messages are displayed. The first
2258 the message display. It is usually used to perform some action on the
2260 thing called after messages are displayed. It's used to affect the
2268 For those who like to modify their mode lines, use
2269 @code{mh-show-buffer-mode-line-buffer-id} to modify the mode line in
2291 MH has the ability to display @dfn{@sc{mime}} (Multipurpose Internet
2298 the MH book.} from the shell to read @sc{mime} messages@footnote{You
2317 @code{mh-toggle-mh-decode-mime-flag}) to view the raw message. This
2342 how to display the attachment, then Emacs offers to save the
2343 attachment in a file. To move the cursor to the next button, use the
2345 buffer is reached then the search wraps over to the start of the
2346 buffer. To move the cursor to the previous button, use the command
2348 buffer is reached then the search wraps over to the end of the buffer.
2355 Another way to view the contents of a button is to use the command
2359 moves to the next button, wrapping to the beginning of the message if
2362 prefix argument (as in @kbd{4 K v}) to view the attachment labeled
2363 with that number. If Emacs does not know how to display the
2364 attachment, then Emacs offers to save the attachment in a file.
2372 If Emacs does not know how to view an attachment, you could save it
2373 into a file and then run some program to open it. It is easier,
2374 however, to launch the program directly from MH-E with the command
2376 likely use this to view spreadsheets and documents, it is also useful
2377 to use your browser to view HTML attachments with higher fidelity than
2380 located over a button, then the cursor first moves to the next button,
2381 wrapping to the beginning of the message if necessary. You can provide
2382 a numeric prefix argument (as in @kbd{4 K e}) to view the attachment
2383 labeled with that number. This command tries to provide a reasonable
2393 Use the command @kbd{K o} (@code{mh-folder-save-mime-part}) to save
2396 is not located over a button, then the cursor first moves to the next
2397 button, wrapping to the beginning of the message if necessary. You can
2398 also provide a numeric prefix argument (as in @kbd{3 K o}) to save the
2417 (@command{mhn}) to do the work.
2423 that you are always prompted for the directory in which to save the
2425 session, then you can set this option to @samp{Prompt the First Time}
2426 to avoid the prompt each time. you can make this directory permanent
2436 that they do not really appear like an attachment at all to the
2439 may receive code or HTML which the sender has added to his message as
2441 is useful to see the buttons so that you know you don't have to cut
2443 you want to make the buttons visible for inline attachments, you can
2444 use the command @kbd{K t} (@code{mh-toggle-mime-buttons}) to toggle
2460 header field.} to tell MH-E whether to display the attachments inline
2462 they are smaller than the window. However, you might want to allow
2463 larger images to be displayed inline. To do this, you can change the
2465 @code{mh-max-inline-image-height} from their default value of zero to
2474 attachment in increasing degree of faithfulness to the original
2482 Many people prefer to see the @samp{text/plain} alternative rather
2490 Occasionally, though, you might want to see the preferred alternative.
2493 @code{mm-discouraged-alternatives} is set to @samp{nil}. Use the
2494 command @key{RET} (@code{mh-show}) to show the message normally again.
2503 the cursor first moves to the next button, wrapping to the beginning
2505 argument (as in @kbd{4 K i}) to view the attachment labeled with that
2535 To see how to read the contents of this body part, see @ref{Viewing
2543 to use a different browser, then set this option accordingly. See the
2545 how to use it. In particular, find and disable the option to render
2551 If you're confused about which @code{mm-text-html-renderer} to use,
2562 @samp{&ndash;} and @samp{&reg;} okay. It sometimes fails to wrap lines
2579 fitting text within 80 columns. It appears to render special
2588 seem to do multi-column tables which makes output much cleaner. It
2596 that Emacs be configured at build time to use @samp{libxml2}. It is
2599 sometimes truncates text, particularly if the message tries to have
2617 clicked with @kbd{mouse-2} to view the content of the link in
2619 respects the table's width parameter (which can cause text to wrap if
2664 A useful key binding that you can add to @file{~/.emacs} is the
2686 @key{BS} to page through the digest as if it were a normal message,
2687 but if you wish to skip to the next message in the digest, use
2688 @kbd{D @key{SPC}} (@code{mh-page-digest}). To return to a previous message,
2703 book.} to break out each message in the digest into its own message.
2708 to quickly delete messages that you don't want to read (based on the
2709 @samp{Subject:} header field). You can also burst the digest to reply
2710 directly to the people who posted the messages in the digest. One
2754 given the opportunity to fetch the key from a key server and verify
2756 take a long time. You can press @kbd{C-g} at any time to
2776 passphrase to decrypt the message. You should see something like this:
2865 @pxref{Ranges}). You can also send the output to a file with @kbd{P f}
2882 C} (@code{mh-ps-print-toggle-color}) to toggle between color, no
2893 very similar to the message in the MH-Show buffer.
2898 MH-E uses the @samp{ps-print} package to do the printing, so you can
2899 customize the printing further by going to the @samp{ps-print}
2909 An alternative to using the @samp{ps-print} package is the command
2930 foreground. If this is slow on your system, you may elect to turn on
2931 the option @code{mh-print-background-flag} to print in the background.
2942 @findex mh-write-msg-to-file
2947 first one, @kbd{>} (@code{mh-write-msg-to-file}), writes a message to
2949 the message is appended to it. You can also write the message to the
2951 @kbd{C-u > /tmp/foobar @key{RET}}). Subsequent writes to the same file
2961 command through which you wish to run your message. If you give a
2962 prefix argument to this command, the message header is included in the
2963 text passed to the command (the contrived example @kbd{C-u | lpr}
2975 through @command{uuencode} use @kbd{X s} (@code{mh-store-msg}) to
2977 is the current directory; however, you have a chance to specify a
2980 like to change the initial default directory, customize the option
2982 @samp{Current} to @samp{Directory}, and then enter the name of the
3016 To move on to the next message, use the command @kbd{n}
3018 (@code{mh-previous-undeleted-msg}) to read the previous message. To
3019 move to the next unread message, use @kbd{M-n}
3021 (@code{mh-previous-unread-msg}) to move to the previous unread
3022 message. These commands can be given a prefix argument to specify how
3023 many messages to skip (for example, @kbd{5 n}). You can also move to a
3026 case, Emacs prompts you. Finally, you can go to the first or last
3039 and @kbd{C-n} (@code{next-line}) to move up and down the scan lines in
3041 @key{RET} to look at deleted or refiled messages.
3053 the first undeleted message previous to the message just deleted. Use
3054 @kbd{n} to force subsequent @kbd{d} commands to move forward to the
3064 the current message in case you wish to perform other operations on
3075 And to delete more messages faster, you can use @kbd{k}
3076 (@code{mh-delete-subject-or-thread}) to delete all the messages with
3106 There are times when you need to edit a message. For example, you may
3107 need to fix a broken Content-Type header field. You can do this with
3116 Commands such as @code{mh-pack-folder} prompt to confirm whether to
3123 @code{mh-kill-folder} was modified in version 6.0 to always ask for
3124 confirmation subject to @code{mh-kill-folder-suppress-prompt-hook}.
3136 @samp{Fixed Size} option and enter the number of lines you'd like to
3142 the buffer stack. You may wish to disable this feature by turning off
3145 easily in an electric buffer list because of its proximity to its
3147 electric-buffer-list} to see what I mean.
3154 front end to MH-E@footnote{Stephen Gildea's favorite binding is
3160 code to @file{~/.emacs}.
3171 "Set to non-nil when MH-E window configuration shown.")
3189 t) ; @r{set my-mh-screen-saved to @code{t}}
3194 nil)))) ; @r{set my-mh-screen-saved to nil}
3235 @cindex @samp{Message > Copy Message to Folder...} menu item
3236 @cindex menu item, @samp{Message > Copy Message to Folder...}
3240 Copy range to folder (@code{mh-copy-msg}).
3246 minibuffer (@code{mh-prefix-help}).
3363 The @samp{mh-folder} customization group is used to tune these
3378 On means to recenter the summary window (default: @samp{off}).
3451 @vindex mh-scan-sent-to-me-sender-regexp
3452 @item mh-folder-sent-to-me-hint
3453 Fontification hint face in messages sent directly to us. The detection
3454 of messages sent to us is governed by the scan format
3456 @code{mh-scan-sent-to-me-sender-regexp}.
3459 @vindex mh-scan-sent-to-me-sender-regexp
3461 Sender face in messages sent directly to us. The detection of messages
3462 sent to us is governed by the scan format @code{mh-scan-format-nmh}
3463 and regular expression @code{mh-scan-sent-to-me-sender-regexp}.
3471 @item mh-folder-to
3478 folder in MH-Folder mode. This could be used to set your own key
3489 "Hook to set key bindings in MH-Folder mode."
3490 (if (not my-mh-init-done) ; @r{only need to bind the keys once }
3502 (other-window 1) ; @r{go to next window}
3526 (@pxref{Folder Selection}). Note that this command can also be used to
3528 be prompted to create it. The hook @code{mh-refile-msg-hook} is called
3529 after a message is marked to be refiled.
3531 @findex mh-write-msg-to-file
3535 the command @kbd{!} (@code{mh-refile-or-write-again}) to repeat the
3537 (@code{mh-write-msg-to-file}), @pxref{Files and Pipes}). You can use a
3548 (@code{mh-undo}) to undo a refile on or deletion of a single message.
3555 Alternatively, you can use @kbd{F u} (@code{mh-undo-folder}) to undo
3561 If you've marked messages to be deleted or refiled and you want to go
3565 you want to process refiles or deletes first and then either run
3577 @code{mh-delete-list} and @code{mh-refile-list} which can be used to
3578 see which changes will be made to the current folder,
3588 If you wish to copy a message to another folder, you can use the
3590 to @command{refile}(1)). Like the command @kbd{o}, this command
3609 messages quickly without reading them. This is an excellent way to
3610 prune out your junk mail or to refile a group of messages to another
3621 When you use @kbd{t} to toggle from MH-Folder Show mode to MH-Folder
3623 alone. Setting @code{mh-recenter-summary-flag} to a non-@code{nil}
3624 value causes the toggle to display as many scan lines as possible,
3633 When you want to read the messages that you have refiled into folders,
3634 use the command @kbd{F v} (@code{mh-visit-folder}) to visit the
3639 prompted for a range of messages to scan. You can provide a prefix
3640 argument in order to specify a range of messages to show when you
3642 to specify the range and @code{mh-large-folder} is ignored. Note that
3643 this command can also be used to create folders. If you specify a
3644 folder that does not exist, you will be prompted to create it.
3661 If you use a program such as @command{procmail} to file your incoming
3667 argument, enter a space-separated list of folders, or nothing to
3681 enter a space-separated list of folders, or nothing to search all
3692 prompt, or nothing to search all folders.
3699 @code{mh-ticked-messages-folders} to @samp{Inbox} to search the
3700 @samp{+inbox} folder or @samp{All} to search all of the top level
3718 (@code{mh-list-folders}), to place a listing of all the folders in
3720 (@pxref{Miscellaneous}); @kbd{F k} (@code{mh-kill-folder}), to remove
3721 a folder; @kbd{F S} (@code{mh-sort-folder}), to sort the messages by
3722 date (see @command{sortm}(1) to see how to sort by other criteria);
3723 @kbd{F p} (@code{mh-pack-folder}), to pack a folder, removing gaps
3725 to rescan the folder, which is useful to grab all messages in your
3727 you don't want to rescan the entire folder, the commands @kbd{F r} or
3741 @code{mh-recursive-folders-flag} to non-@code{nil} to operate on all
3742 folders. This mostly means that you'll be able to see all your folders
3751 are called with no arguments and should return a non-@code{nil} value to
3776 The option @code{mh-sortm-args} holds extra arguments to pass on to
3780 default arguments to @command{sortm} are specified in the MH profile.
3781 This option may be used to provide an alternate view. For example,
3789 When you want to quit using MH-E and go back to editing, you can use
3807 you might use it to perform any MH-E operations; you could perform
3810 to modify the window setup. If you find that @kbd{q} buries a lot of
3812 @code{mh-before-quit-hook} and @code{mh-quit-hook} to accomplish that.
3816 (defvar my-mh-folder-buffer-to-delete nil
3820 "Save folder buffer that is to be deleted."
3821 (setq my-mh-folder-buffer-to-delete (current-buffer)))
3825 (set-buffer my-mh-folder-buffer-to-delete)
3839 You can use dired to manipulate the folders themselves. For example, I
3840 renamed my @samp{+out} folder to the more common @samp{+outbox} by
3842 @key{RET}}), moving my cursor to @samp{out} and using the command
3863 There are some commands that need to send a mail message, such as
3864 @code{goto-address-at-point}. You can configure Emacs to have these
3865 commands use MH-E by setting the option @code{mail-user-agent} to
3866 @samp{Emacs interface to MH}.
3880 Edit a message to send it again (@code{mh-edit-again}).
3897 @cindex @samp{Message > Reply to Message...} menu item
3898 @cindex menu item, @samp{Message > Reply to Message...}
3902 Reply to a message (@code{mh-reply}).
3931 customization group are useful when sending mail or replying to mail.
3951 On means append an @samp{X-Mailer:} header field to the header
3958 @item mh-reply-default-reply-to
3959 Sets the person or persons to whom a reply will be sent (default:
4019 mh-smail} or @kbd{M-x mh-smail-other-window} to compose a new message.
4023 following key bindings to @file{~/.emacs} useful:
4038 appears in an Emacs buffer whose mode is MH-Letter (to see what the
4040 you to edit your message, to check the validity of the recipients, to
4041 insert attachments and other messages into your message, and to send
4051 If you prefer to be prompted for the recipient and subject fields
4059 MH-E adds an @samp{X-Mailer:} header field to the header that includes
4060 the version of MH-E and Emacs that you are using. If you don't want to
4076 Two hooks are provided to run commands on your freshly created draft.
4077 The first hook, @code{mh-letter-mode-hook}, allows you to do some
4082 to modify the header after @command{repl} has done its work, or you
4083 may have a complicated @file{components} file and need to tell MH-E
4096 (when (not letter-mode-init-done) ; @r{only need to bind the keys once}
4106 (goto-char (point-max)) ; @r{go to end of message to}
4124 is that you can write a function to write and send the message for
4129 @section Replying to Mail
4139 To compose a reply to a message, use the @kbd{r} (@code{mh-reply})
4142 When you reply to a message, you are first prompted with @samp{Reply
4143 to whom?}. You have several choices here.
4156 @item @kbd{to}
4158 Replies to the sender, plus all recipients in the @samp{To:} header field.
4162 Forms a reply to the addresses in the @samp{Mail-Followup-To:} header
4163 field if one exists; otherwise forms a reply to the sender, plus all
4170 @vindex mh-reply-default-reply-to
4173 @uref{@value{MH-BOOK-HOME}/reprep.html, Replying to Messages: repl} in
4174 the MH book.} is given a different argument to form your reply.
4176 -nocc all}, and a choice of @kbd{to} runs @samp{repl -cc to}. Finally,
4179 reply to a message, you can change the option
4180 @code{mh-reply-default-reply-to} from its default value of
4181 @samp{Prompt} to one of the choices listed above. You can always edit
4192 Two windows are then created. One window contains the message to which
4200 are replying to is inserted in your reply after having first been run
4204 book to see how you can modify the default @file{mhl.reply} file.
4209 and choose one of its @samp{Automatically} variants to do the same
4213 Another way to include the message automatically in your draft is to
4221 If you wish to customize the header or other parts of the reply draft,
4237 given a draft to edit that looks like it would if you had run the MH
4254 the body of your recipient's mail program. If you would prefer to
4257 messages, but your recipient won't be able to view any non-textual
4296 to forwarding mail, but it does not allow you to edit the message, nor
4297 does it add your name to the @samp{From:} header field. It appears to
4306 (@code{mh-edit-again}) for another way to redistribute messages
4320 people abhor). If you find that MH will not allow you to redistribute
4341 folders, you'll need to visit the draft folder with @kbd{F v drafts
4342 @key{RET}}, use @kbd{n} to move to the appropriate message, and then
4343 use @kbd{e} to prepare the message for editing.
4347 The @kbd{e} command can also be used to take messages that were sent
4348 to you and to send them to more people.
4355 Don't use @kbd{e} to re-edit a message from a @i{Mailer-Daemon} who
4357 this case, use @kbd{E} (@code{mh-extract-rejected-mail}) to prepare
4372 When you edit a message that you want to send (called a @dfn{draft} in
4374 commands in addition to the normal Emacs editing commands to help you
4397 Cycle to next field (@code{mh-letter-next-header-field-or-indent}).
4402 Cycle to the previous header field
4426 @findex mh-mh-to-mime
4429 (@code{mh-mh-to-mime}).
4433 @findex mh-to-field
4436 Move to @samp{Mail-Reply-To:} header field (@code{mh-to-field}).
4442 Move to @samp{Bcc:} header field (@code{mh-to-field}).
4448 Move to @samp{Cc:} header field (@code{mh-to-field}).
4454 Move to @samp{Dcc:} header field (@code{mh-to-field}).
4458 @findex mh-to-fcc
4461 Move to @samp{Fcc:} header field (@code{mh-to-fcc}).
4467 Move to @samp{Mail-Followup-To:} header field (@code{mh-to-field}).
4473 Move to @samp{From:} header field (@code{mh-to-field}).
4479 Move to @samp{Reply-To:} header field (@code{mh-to-field}).
4485 Move to @samp{Subject:} header field (@code{mh-to-field}).
4491 Move to @samp{To:} header field (@code{mh-to-field}).
4503 Add tag to encrypt the message (@code{mh-mml-secure-message-encrypt}).
4512 Add tag to forward a message (@code{mh-compose-forward}).
4521 Add tag to include anonymous ftp reference to a file
4531 Add tag to include a file such as an image or sound
4538 @findex mh-mml-to-mime
4541 Compose @sc{mime} message from MML tags (@code{mh-mml-to-mime}).
4553 Add tag to sign the message (@code{mh-mml-secure-message-sign}).
4562 Add tag to include anonymous ftp reference to a compressed tar file
4565 @cindex @samp{Letter > Revert to Non-MIME Edit (MH)} menu item
4566 @cindex menu item, @samp{Letter > Revert to Non-MIME Edit (MH)}
4569 @findex mh-mh-to-mime-undo
4572 Undo effects of @kbd{C-c C-e} (@code{mh-mh-to-mime-undo}).
4579 Add tag to refer to a remote file
4585 Add tag to encrypt the message (@code{mh-mml-secure-message-encrypt}).
4590 Add tag to encrypt and sign the message@*
4596 Add tag to encrypt and sign the message@*
4602 Add tag to sign the message (@code{mh-mml-secure-message-sign}).
4667 List of header fields to skip over when navigating in draft (default:
4680 Verb to use for attribution when a message is yanked by @kbd{C-c C-y}
4684 String to put before each line of a yanked or inserted message
4688 Function to call when completing outside of address or folder fields
4692 Fill column to use in MH-Letter mode (default: 72).
4695 Default method to use in security tags (default: @samp{PGP (MIME)} if
4706 File containing X-Face or Face header field to insert in outgoing mail.
4725 @item mh-mh-to-mime-hook
4779 @findex mh-to-field
4784 fields as you wish. However, several convenience commands exist to
4786 C-t} (@code{mh-to-field}; alternatively, @kbd{C-c C-f t}) moves the
4787 cursor to the @samp{To:} header field, creating it if necessary. The
4788 commands for moving to the @samp{Cc:}, @samp{Subject:}, @samp{From:},
4792 @findex mh-to-fcc
4797 C-f} (@code{mh-to-fcc}; alternatively, @kbd{C-c C-f f}). This command
4798 will prompt you for the folder name in which to file a copy of the
4814 command then moves point to the message body before cycling back to
4819 backwards between the fields and cycles to the body of the message
4821 take point to the last field from anywhere in the body.
4842 which is set to @samp{'ispell-complete-word} by default. The command
4844 that is passed to the @code{mh-letter-complete-function}. In addition,
4845 turn on the option @code{mh-compose-space-does-completion-flag} to use
4846 the command @key{SPC} (@code{mh-letter-complete-or-space}) to perform
4847 completion in the header as well; use a prefix argument to specify
4850 the alias expansion in the minibuffer if
4859 @code{mh-letter-toggle-header-field-display} to display truncated
4865 Be sure to leave a row of dashes or a blank line between the header
4871 although there are a few commands and options to assist you. You can
4873 @code{mh-letter-fill-column}. By default, this option is 72 to allow
4874 others to quote your message without line wrapping.
4914 The command @kbd{C-c C-o} (@code{mh-open-line}) is similar to the
4933 @section Inserting Letter to Which You're Replying
4936 @cindex replying to messages
4942 It is often useful to insert a snippet of text from a letter that
4943 someone mailed to provide some context for your reply. The command
4945 attribution, yanking a portion of text from the message to which
4963 @code{mh-extract-from-attribution-verb}. This option can be set to
4965 the @samp{Custom String} menu item to enter your own verb.
4974 easier to read if several included messages have all been indented by
4982 option to delete the window containing the original message after
4983 yanking it to make more room on your screen for your reply.
4991 You can control how the message to which you are replying is yanked
4997 and set @code{mail-citation-hook} to @samp{supercite}, but this usage
4999 Use @samp{Body} to yank just the body without the header. To yank only
5000 the portion of the message following the point, set this option to
5005 Emacs.} to pass the entire message and header through supercite.
5018 settings are used, the @samp{-noformat} argument is passed to the
5019 @command{repl} program to override a @samp{-filter} or @samp{-format}
5022 to use @kbd{C-c C-y} at all. Note that this automatic action is only
5023 performed if the show buffer matches the message being replied to.
5024 People who use the automatic variants tend to turn on the option
5032 which case the attribution is added to the yanked region.
5040 the included text by setting @code{mail-citation-hook} to a function
5042 @code{mh-yank-behavior} is set to one of the supercite flavors.
5043 Otherwise, this option controls how much of the message is passed to
5056 @code{mh-yank-behavior} to @samp{Body and Header}.
5071 defaults to the current message in that folder. It then inserts the
5073 @code{mh-yank-behavior} is set to one of the supercite flavors in
5074 which case supercite is used to format the message. Certain
5111 separator to be added for you; instead you may want to insert one
5112 yourself. Options that you may find useful to do this include
5124 mail user agents, including MH-E, use the separator to present the
5125 signature differently, and to suppress the signature when replying or
5133 function used to insert the signature with
5160 @samp{Face:} or @samp{X-Image-URL:} then the contents are added to the
5175 @command{make-face}} script to convert a JPEG image to the higher
5184 @code{mh-x-face-file} to @code{nil}, or simply ensure that the file
5187 @xref{Viewing}, to see how these header fields are displayed in MH-E.
5199 MH-E has the capability to create multimedia messages. It uses the
5203 @sc{mime} protocol allows you to incorporate images, sound, video,
5209 If you were to create a multimedia message with plain MH commands, you
5213 GNU mailutils to expand them. MH-E works in much the same way,
5215 to insert the directives so you don't need to remember the syntax of
5225 In addition to MH-style directives, MH-E also supports MML (@sc{mime}
5228 @c Although the third argument should default to the
5229 @c first, makeinfo goes to the wrong Info file without it being
5230 @c different--it seems to be getting our own Composing node.
5238 }. The option @code{mh-compose-insertion} can be used to choose
5239 between them. By default, this option is set to @samp{MML} if it is
5241 also be set to @samp{MH} if MH-style directives are preferred.
5250 whereas others require you to enter one.
5259 automatically. It uses the @command{file} command to do this. Failing
5260 that, the Emacs function @code{mailcap-mime-types} is used to provide
5261 a list from which to choose. This function usually reads the file
5265 a list, use the type that seems to match best the file that you are
5276 object. If you don't care to enter a content description, just press
5282 body part to liven up your plain text messages with boldface,
5302 ;; @r{Set type to the tag indicated by the last keystroke.}
5303 (let ((type (cdr (assoc (char-to-string (logior last-input-char ?@w{`}))
5305 (save-restriction ; @r{restores state from narrow-to-region}
5306 (narrow-to-region begin end) ; @r{narrow view to region}
5307 (goto-char (point-min)) ; @r{move to beginning of text}
5309 (goto-char (point-max)) ; @r{move to end of text}
5316 To use the function @code{add-enriched-text}, first add it to
5320 @kbd{C-@key{SPC}}, type in the text to be highlighted, and type @kbd{C-c t
5326 (@code{mh-mml-to-mime})@footnote{Use @kbd{C-c C-e}
5327 (@code{mh-mh-to-mime}) if you're using MH-style directives.} to add
5362 description, the name of the folder in which the messages to forward
5363 are located, and a range of messages, which defaults to the current
5396 to retrieving the file via anonymous @emph{ftp} as per the command
5409 other commands that insert tags to access external files call this
5422 4+t08/24 To:wohler Test<<This is a test message to get the
5444 @findex mh-mml-to-mime
5451 @findex mh-mml-to-mime
5455 wish by running the command @kbd{C-c C-m C-m} (@code{mh-mml-to-mime}).
5457 tags. You can see why mail user agents are usually built to hide these
5485 @i{MH-E @sc{mime} draft ready to send}
5487 @cindex undo effects of @code{mh-mml-to-mime}
5495 @cindex undo effects of @code{mh-mh-to-mime}
5496 @findex mh-mh-to-mime
5497 @findex mh-mh-to-mime-undo
5504 (@code{mh-mh-to-mime}) instead of @kbd{C-c C-m C-m}. This runs the
5509 (@code{mh-mh-to-mime-undo}), which works by reverting to a backup
5510 file. You are prompted to confirm this action, but you can avoid the
5515 @vindex mh-mh-to-mime-args
5517 If you wish to pass additional arguments to @command{mhbuild}
5518 (@command{mhn}) to affect how it builds your message, use the option
5519 @code{mh-mh-to-mime-args}. For example, you can build a consistency
5520 check into the message by setting @code{mh-mh-to-mime-args} to
5528 @vindex mh-mh-to-mime-hook
5530 The hook @code{mh-mh-to-mime-hook} is called after the message has
5542 should choose to sign or encrypt your message, use one of the
5543 following commands to do so any time before sending your message.
5562 This is used to sign your message digitally. Likewise, the command
5570 This is used to encrypt your message. Finally, the command @kbd{C-c
5583 This is used to sign and encrypt your message. In each of these cases,
5586 (@code{mh-mml-unsecure-message}) to remove these tags. Use a prefix
5587 argument (as in @kbd{C-u C-c C-m s e}) to be prompted for one of the
5592 The option @code{mh-mml-method-default} is used to select between a
5654 argument (as in @kbd{C-u C-c C-c}) to monitor the first stage of the
5665 the command @kbd{C-c C-c}. For example, if you want to check your
5676 @code{mh-send-prog} to tell MH-E the name.
5691 command @kbd{C-c C-q} (@code{mh-fully-kill-draft}) to kill the draft
5693 (@code{kill-buffer}) if you don't want to delete the draft message.
5747 On means to expand aliases entered in the minibuffer (default:
5751 Specify whether to flash address or warn on translation (default: @samp{Flash
5755 Filename used to store a new MH-E alias (default: @samp{Use Aliasfile
5763 If @samp{on}, local users are added to alias completion (default:
5767 String prefixed to the real names of users from the password file
5783 @subheading Adding Addresses to Draft
5785 You can use aliases when you are adding recipients to a message.
5787 @findex minibuffer-complete
5792 In order to use minibuffer prompting for recipients and the subject
5793 line in the minibuffer, turn on the option
5795 @key{TAB} (@code{minibuffer-complete}) command to complete aliases
5798 aliases to be expanded to their respective addresses in the draft.
5812 turn off the option @code{mh-alias-completion-ignore-case-flag} to
5813 make case significant which can be used to segregate completion of
5822 When this option is turned off, if you were to type @kbd{M} in the
5826 only. If you were to enter @kbd{Mark.Baushke}, it would still be
5829 @findex mh-alias-minibuffer-confirm-address
5835 displayed in the minibuffer when you type a comma
5837 @code{mh-alias-minibuffer-confirm-address} if the option
5844 For another way to verify the alias expansion, see @ref{Checking
5858 @uref{@value{MH-BOOK-HOME}/mh.html, MH Aliases} in the MH book.} to
5876 @code{mh-alias-local-users-prefix}. This option can also be set to
5903 In the example above, commas are used to separate different values
5918 executed to generate the password file. For example, use @samp{ypcat
5919 passwd} to obtain the NIS password file.
5932 In the past, you have manually added aliases to your alias file(s)
5939 you for the alias and address that you would like to add. If the alias
5942 used when sending mail to this alias. In the latter case, the alias
5947 other prefixes to organize your aliases or disambiguate entries. You
5969 @samp{div} and then @key{SPC} to get a listing of all your dive buddies.
5992 file or a list a file names. If this option is set to a list of file
5998 The option @code{mh-alias-insertion-location} is set to
6009 mh-alias-apropos} to show all aliases or addresses that match a
6035 A couple of commands are used to insert identities in MH-Letter mode
6065 On means to prompt before sending if fields inserted (default:
6069 Default identity to use when @code{mh-letter-mode} is called (default:
6123 Specify a different key to sign or encrypt messages.
6144 The @samp{Identity} menu contains two other items to save you from
6145 having to set the identity on every message. The menu item @samp{Set
6146 Default for Session} can be used to set the default identity to the
6148 Default} sets the option @code{mh-identity-default} to the current
6151 need to add another identity, the menu item @samp{Customize
6157 The option @code{mh-auto-fields-list} can also be used to set the
6158 identity depending on the recipient to provide even more control. To
6193 their replies will go to the addresses listed. This is useful if their
6194 replies go both to the list and to you and you don't have a mechanism
6195 to suppress duplicates. If you reply to someone not on the list, you
6197 recipient is also listed there so that he receives replies to your
6209 you can continue to add recipients as you edit the draft, MH-E waits
6210 until the message is sent to perform the auto-insertions. This seems
6211 strange at first, but you'll get used to it. There are two ways to
6214 automatically, you are given a chance to see and to confirm these
6220 @samp{Identity -> Insert Auto Fields} menu item to insert these fields
6229 that may apply to the same message as the result is undefined.
6234 The option @code{mh-identity-handlers} is used to change the way that
6237 an existing handler function associated with the field you want to
6240 the name of the function you have written to handle it.
6278 to view your folders. To bring up the speedbar, run @kbd{M-x speedbar
6281 folder name with @kbd{mouse-2} to visit that folder in a similar
6282 fashion to the command @kbd{F v} (@code{mh-visit-folder})
6283 (@pxref{Folders}). Click on the @samp{+} icon to expand and view the
6287 Emacs navigational keys (like the arrow keys, or @kbd{C-n}) to move
6310 you've added or deleted a folder, or want to update the unseen message
6318 You can click on @kbd{mouse-3} to bring up a context menu that
6329 Sequences with flist} in the MH book.} to generate the list of
6336 Time between speedbar updates in seconds (default: 60). Set to 0 to
6392 For those of you who prefer to mouse and menu instead of using the
6397 the @samp{Search} menu. There's no need to list the actual items here,
6411 The Emacs manual describes how to get help for a particular
6436 MH-E adds several icons to this tool bar; you can modify the MH-E
6441 List of buttons to include in MH-Folder tool bar (default: a checklist
6442 too long to list here).
6445 List of buttons to include in MH-Letter tool bar (default: a checklist
6446 too long to list here).
6459 In GNU Emacs, icons for some of MH-E's functions are added to the tool
6460 bar. In XEmacs, you have the opportunity to create a separate tool bar for
6466 In either case, you can select which of these functions you'd like to
6471 check the functions whose icons you want to see and clear the check
6478 option @code{mh-tool-bar-search-function}. By default, this is set to
6486 @code{mh-xemacs-use-tool-bar-flag}, controls whether to show the MH-E
6489 then you won't be able to turn on this option.
6497 variable is set to anything other than @samp{Same As Default Tool Bar}
6513 Several commands are used to compose the search criteria and to start
6544 @findex mh-to-field
6547 Move to @samp{Mail-Reply-To:} header field (@code{mh-to-field}).
6553 Move to @samp{Bcc:} header field (@code{mh-to-field}).
6559 Move to @samp{Cc:} header field (@code{mh-to-field}).
6565 Move to @samp{Dcc:} header field (@code{mh-to-field}).
6571 Move to @samp{Fcc:} header field (@code{mh-to-field}).
6577 Move to @samp{Mail-Followup-To:} header field (@code{mh-to-field}).
6583 Move to @samp{From:} header field (@code{mh-to-field}).
6589 Move to @samp{Reply-To:} header field (@code{mh-to-field}).
6595 Move to @samp{Subject:} header field (@code{mh-to-field}).
6601 Move to @samp{To:} header field (@code{mh-to-field}).
6611 Jump to the next folder marker (@code{mh-index-next-folder}).
6616 Jump to the previous folder marker (@code{mh-index-previous-folder}).
6640 Hook run upon entry to @code{mh-search-mode} (default: @code{nil}).
6654 messages in your entire corpus of mail. You can search for messages to
6662 Out of the box, MH-E uses @command{pick} to find messages. With a
6668 You are prompted for the folder to search. This can be @samp{all} to
6695 Type C-c C-c to search messages, C-c C-p to use pick, C-c ? for help
6708 As an example, let's say that we want to find messages from Ginnean
6711 narrow it down if necessary to produce a manageable amount of data,
6712 but we'll cut to the chase and create a fairly restrictive set of
6728 @findex mh-to-field
6732 C-t} (@code{mh-to-field}) to help you fill in the blanks.
6739 search template, you may wish to bind some shortcuts to keys. This can
6778 used to visit the folder of the message at point. Initially, only the
6782 command @kbd{v} is useful to find the actual message number of an
6783 interesting message, or to view surrounding messages with the command
6803 Note: This command uses an @samp{X-MHE-Checksum:} header field to
6816 @xref{Limits}, for an alternative interface to searching.
6842 installed and you want to use @command{mairix}, then you can set this
6843 option to @samp{mairix}.
6845 The following sub-sections describe how to set up the various indexing
6846 programs to use with MH-E.
6853 In the examples below, replace @file{/home/user/Mail} with the path to
6870 Use the following command line to generate the swish index. Run this
6883 searches in @samp{+mhe-index} since they tend to be ephemeral and the
6899 In the examples below, replace @file{/home/user/Mail} with the path to
6933 your searches in @samp{+mhe-index} since they tend to be ephemeral and
6936 If there are any directories you would like to ignore, append lines
6937 like the following to @file{config}:
6946 Use the following command line to generate the swish index. Run this
6958 In the examples below, replace @file{~/Mail} with the path to your MH
6977 Use the following command line to generate the mairix index. Run this daily
6989 In the examples below, replace @file{/home/user/Mail} with the path to
7006 your searches in @samp{+mhe-index} since they tend to be ephemeral and
7009 Use the following command line to generate the namazu index. Run this
7026 the MH book to find out more about how to enter the criteria.
7037 the minibuffer. For help in constructing regular expressions, see your
7047 header field. Other ways to organize messages in a folder include
7056 to the same message are @dfn{siblings} of each other. Any message that
7057 has replies to it is an @dfn{ancestor} of those replies.
7059 There are several commands that you can use to navigate and operate on
7067 minibuffer (@code{mh-prefix-help}).
7129 There are a few commands to help you navigate threads. If you do not
7134 (@code{mh-thread-previous-sibling}) to jump to the next or previous
7136 a prefix argument to jump to the message that started everything.
7158 compiled MH-E, I encourage you to do so@footnote{If you're not sure if
7166 installed MH-E yourself, please refer to the installation directions
7175 Another way to organize messages in a folder besides threading
7177 (@pxref{Searching}) is by limiting the folder display to messages that
7178 are similar to the current message.
7185 minibuffer (@code{mh-prefix-help}).
7187 @cindex @samp{Sequence > Narrow to Tick Sequence} menu item
7188 @cindex menu item, @samp{Sequence > Narrow to Tick Sequence}
7190 @findex mh-narrow-to-tick
7192 Limit to messages in the @samp{tick} sequence
7193 (@code{mh-narrow-to-tick}).
7196 @findex mh-narrow-to-cc
7198 Limit to messages with the same @samp{Cc:} field
7199 (@code{mh-narrow-to-cc}).
7202 @findex mh-narrow-to-from
7204 Limit to messages with the same @samp{From:} field
7205 (@code{mh-narrow-to-from}).
7208 @findex mh-narrow-to-range
7210 Limit to range (@code{mh-narrow-to-range}).
7212 @cindex @samp{Sequence > Narrow to Subject Sequence} menu item
7213 @cindex menu item, @samp{Sequence > Narrow to Subject Sequence}
7215 @findex mh-narrow-to-subject
7217 Limit to messages with the same @samp{Subject:} field
7218 (@code{mh-narrow-to-subject}).
7221 @findex mh-narrow-to-to
7223 Limit to messages with the same @samp{To:} field
7224 (@code{mh-narrow-to-to}).
7238 @findex mh-narrow-to-cc
7239 @findex mh-narrow-to-from
7240 @findex mh-narrow-to-subject
7241 @findex mh-narrow-to-to
7247 The commands @kbd{/ c} (@code{mh-narrow-to-cc}), @kbd{/ m}
7248 (@code{mh-narrow-to-from}), @kbd{/ s} (@code{mh-narrow-to-subject}),
7249 and @kbd{/ t} (@code{mh-narrow-to-to}) restrict the display to
7251 message. However, you can give any of these a prefix argument to edit
7252 the @command{pick} expression used to narrow the view@footnote{See
7260 @findex mh-narrow-to-range
7261 @findex mh-narrow-to-tick
7265 You can also limit the display to messages in the @samp{tick} sequence
7266 with the command @kbd{/ '} (@code{mh-narrow-to-tick}).
7268 @samp{tick} sequence. Use the @kbd{/ g} (@code{mh-narrow-to-range})
7269 command to limit the display to messages in a range (@pxref{Ranges}).
7275 command. Give this command a prefix argument to remove all limits.
7284 For the whole scoop on MH sequences, refer to
7289 example, you might want to forward several messages to a friend or
7290 colleague. Here's how to manipulate sequences. These commands are also
7305 minibuffer (@code{mh-prefix-help}).
7307 @cindex @samp{Sequence > Narrow to Tick Sequence} menu item
7308 @cindex menu item, @samp{Sequence > Narrow to Tick Sequence}
7310 @findex mh-narrow-to-tick
7312 Limit to ticked messages (@code{mh-narrow-to-tick}).
7335 @cindex @samp{Sequence > Narrow to Sequence...} menu item
7336 @cindex menu item, @samp{Sequence > Narrow to Sequence...}
7338 @findex mh-narrow-to-seq
7340 Restrict display to messages in sequence (@code{mh-narrow-to-seq}).
7342 @cindex @samp{Sequence > Add Message to Sequence...} menu item
7343 @cindex menu item, @samp{Sequence > Add Message to Sequence...}
7347 Add range to sequence (@code{mh-put-msg-in-seq}).
7366 Flush MH-E's state out to MH@.
7384 On means flush MH sequences to disk after message is shown (default:
7405 the messages in a sequence to another sequence (for example, @kbd{C-u
7418 (@code{mh-toggle-tick}) which adds messages to the @samp{tick}
7427 there isn't much advantage to that.
7431 @findex mh-narrow-to-seq
7432 @findex mh-narrow-to-tick
7438 Once you've placed some messages in a sequence, you may wish to narrow
7439 the field of view to just those messages in the sequence you've
7440 created. To do this, use @kbd{S n} (@code{mh-narrow-to-seq}). You are
7443 buffer. In addition, it limits further MH-E searches to just those
7444 messages. To narrow the view to the messages in the @samp{tick}
7445 sequence, use @kbd{S '} (@code{mh-narrow-to-tick}). When you want to
7446 widen the view to all your messages again, use @kbd{S w}
7457 command @kbd{S s} (@code{mh-msg-is-in-seq}). Use a prefix argument to
7483 If you want to remove a message (or range, @pxref{Ranges}) from a
7485 to delete an entire sequence, use @kbd{S k} (@code{mh-delete-seq}). In
7486 the latter case you are prompted for the sequence to delete. Note that
7488 you want to delete the messages, use @kbd{C-u d} (@pxref{Reading
7504 Three sequences are maintained internally by MH-E and pushed out to MH
7518 used by this hook to obtain the list of messages which were removed
7538 Marshall Rose once wrote a paper on MH entitled, @cite{How to process
7540 could be entitled, @cite{How to process 1000 spams a day and still get
7560 minibuffer (@code{mh-prefix-help}).
7636 @uref{http://spamprobe.sourceforge.net/, SpamProbe} to throw the dreck
7637 away. This chapter describes briefly how to configure these programs
7638 to work well with MH-E and how to use MH-E's interface that provides
7647 want to use bogofilter, then you can set this option to
7657 @code{mh-junk-disposition}. By default, this option is set to
7691 argument in the call to @code{call-process}. Therefore, turning on
7692 this option means setting its value to @samp{0}. You can also set its
7693 value to @samp{t} to direct the programs' output to the @file{*MH-E
7711 To use SpamAssassin, add the following recipes to @file{~/.procmailrc}:
7740 greater than or equal to 10. Here's how you can determine a value that
7744 archive and use @command{gnumeric} to verify that the average plus the
7750 all of your interesting messages and add a couple of points to be
7751 conservative. Add that many dots to the @samp{X-Spam-Level:} header
7752 field above to send messages with that score down the drain.
7757 worthwhile to check.
7773 @samp{blacklist_from} entry to @file{~/spamassassin/user_prefs},
7774 deletes the message, and sends the message to the Razor, so that
7779 @samp{whitelist_from} rule to @samp{~/.spamassassin/user_prefs}. If
7790 @file{~/.spamassassin/user_prefs} to the end of the file. This
7800 @command{sa-learn} to recategorize the message as spam. Neither MH-E,
7802 will need to run @samp{sa-learn --rebuild} periodically. This can be
7803 done by adding the following to your @file{crontab}:
7834 with bogofilter. Note that most Bayesian filters need 1000 to 5000 of
7835 each type of message to start doing a good job.
7837 To use bogofilter, add the following recipes to @file{~/.procmailrc}:
7866 w} (@code{mh-junk-whitelist}) to update bogofilter's training.
7869 occasionally to shrink the database:
7889 To use SpamProbe, add the following recipes to @file{~/.procmailrc}:
7918 (@code{mh-junk-whitelist}) to update SpamProbe's training.
7922 There are a couple of things that you can add to @file{~/.procmailrc}
7923 in order to filter out a lot of spam and viruses. The first is to
7925 a virus). The second is to eliminate mail in character sets that you
7944 # encoded in base64 is 4fug4AtAnNIbg and helps to avoid false
7988 version this command prints to the latest release (@pxref{Getting
8063 @strong{can} teach MH-E how to handle them, but it isn't easy as
8078 Specifies the format file to pass to the scan program (default:
8082 Program used to scan messages (default: @code{"scan"}).
8090 showing the current message and notations. It is also best to keep the
8091 first column empty to make room for the cursor and so that text isn't
8093 terminal. You won't be able to use the option
8102 If you've created your own format to handle long message numbers,
8103 you'll be pleased to know you no longer need it since MH-E adapts its
8120 also enables you to turn on the option
8121 @code{mh-adaptive-cmd-note-flag}. You can also set this option to
8122 @samp{Use Default scan Format} to get the same output as you would get
8124 that you want MH-E to use but not MH, you can set this option to
8133 to its default of @samp{Use MH-E scan Format} is held in the variables
8144 "%?(nonnull(comp@{to@}))%<(mymbox@{to@})t%>"
8150 "%<(mymbox@{from@})%<@{to@}To:%14(decode(friendly@{to@}))%>%>"
8160 doesn't have the function @code{decode} (which is used to decode RFC
8166 These strings are passed to the @command{scan} program via the
8167 @option{-format} argument. The formats are identical to the defaults
8168 except that additional hints for fontification have been added to the
8171 order, are: @samp{-} if the message has been replied to, @samp{t} if
8184 Unless this variable contains an absolute pathname, it is assumed to
8186 link another program to @command{scan} (see @samp{mh-profile}(5)) to
8195 If you change the format of the scan lines you'll need to tell MH-E
8196 how to parse the new format. As you will see, quite a lot of variables
8197 are involved to do that. Use @kbd{M-x apropos @key{RET}
8198 mh-scan.*regexp @key{RET}} to obtain a list of these variables. You
8199 will also have to call @code{mh-set-cmd-note} if your notations are
8214 The first variable has to do with pruning out garbage.
8222 This regular expression describes a valid scan line. This is used to
8237 this expression to contain at least one parenthesized expression which
8249 @code{mh-folder-font-lock-keywords} expects this expression to contain
8253 @samp{+} within the parenthesis since it looks better to highlight
8261 @vindex mh-scan-sent-to-me-sender-regexp
8264 anchored to the beginning or the end of the line. Note that the
8266 expression to contain only one parenthesized expression which matches
8278 @code{mh-folder-font-lock-keywords} expects this expression to contain
8282 better to highlight it as well. The highlighting is done with the face
8292 @code{mh-folder-font-lock-keywords} expects this expression to contain
8296 looks better to highlight it as well. The highlighting is done with
8305 variable is only consulted if @code{mh-scan-format-file} is set to
8312 is only consulted if @code{mh-scan-format-file} is set to @samp{Use
8327 string; use @samp{%d} to represent the location of the message number
8332 @vindex mh-folder-to
8336 expects this expression to contain two parenthesized expressions. The
8337 first is expected to match the @samp{To:} that the default scan format
8338 file generates. The second is expected to match the recipient's name
8341 highlighted with the face @code{mh-folder-to} and the recipient will not be
8350 @code{mh-folder-font-lock-keywords} expects this expression to contain
8354 better to highlight it as well. The highlighting is done with the face
8360 @vindex mh-folder-sent-to-me-sender
8361 @vindex mh-mh-folder-sent-to-me-hint
8363 @item mh-scan-sent-to-me-sender-regexp
8364 This regular expression matches messages sent to us. Note that the
8366 expression to contain at least two parenthesized expressions. The
8372 be highlighted with the face @code{mh-mh-folder-sent-to-me-hint} and
8374 @code{mh-folder-sent-to-me-sender}.
8382 @samp{mh-folder-font-lock-keywords} expects this expression to contain
8383 at least three parenthesized expressions. The first is expected to
8387 sub-expression of the first expression). The third is expected to
8442 Messages that have been replied to are marked by this character
8454 message according to MH; it also uses that column for notations.
8464 The first thing you have to do is tell MH-E to use this file.
8465 Customize @code{mh-scan-format-file} and set its value to @samp{Use
8467 @code{mh-adaptive-cmd-note-flag}, you'll need to do that first.
8478 Now, in order to get rid of the @samp{Cursor not pointing to message}
8479 message, you need to tell MH-E how to access the message number. You
8491 In order to get the next and previous commands working, add this.
8500 between the next and previous messages. Here is the code required to
8511 Finally, add the following to delete and refile messages.
8521 This is just a bare minimum; it's best to adjust all of the regular
8522 expressions to ensure that MH-E and highlighting perform well.
8534 This appendix explains how to use procmail, which can
8539 longer recommended due to its security vulnerabilities.
8541 high traffic that Gnus must be used and I discuss how to use Gnus
8547 First, I'll describe how to put mail from your mailing lists directly
8549 to @file{~/.procmailrc}. While the logging variables aren't strictly
8562 [10] # Uncomment the following line to see how your patterns match.
8565 [13] # Place mail sent to any MH-E mailing list in +mh-e.
8577 from writing to a folder concurrently, there is a slight chance that
8582 anything to my knowledge@footnote{See
8584 Savannah issue #4361} to see if @command{rcvstore} locking is still an
8590 Line 16 uses the following script, @code{myrcvstore}, to massage the
8593 to @command{rcvstore}.}.
8600 # on to rcvstore.
8602 # Force the "From user date" to become part of header. One reason this
8607 # applied to any message that goes to the system mailbox because the
8613 If your version of @command{rcvstore} doesn't add messages to the
8614 @samp{unseen} sequence by default, add the following line to your MH
8625 impossible to read every message, it usually better to read the
8628 to use Gnus with an MH message store. The version of Gnus that was
8629 used to prepare this manual was 5.10. Versions 5.8 through 5.10 should
8630 work but versions prior to 5.8 use different options.
8632 This table contains a list of Gnus options that you will have to
8633 modify. Note that for them to become accessible, you'll have to load
8641 have to set an address.
8645 @samp{Path} box and enter @file{~/Mail} to tell Gnus where to find
8650 In order to send mail within Gnus using MH-E, set this option to
8651 @samp{mail-user-agent} and set the @code{mail-user-agent} option to
8652 @samp{Emacs interface to MH}.
8663 Next add the following to @file{~/.procmailrc}. If you don't subscribe
8664 to the GnuCash mailing list, substitute one to which you are
8670 # Place mail sent to the GnuCash mailing list in gnucash.spool, where
8677 Wait for some messages to appear in @file{gnucash.spool} and run Gnus
8687 tell you how to report bugs and how to get on the MH-E mailing lists.
8705 @uref{https://sourceforge.net/p/mh-e/bugs/, SourceForge}. You need to
8706 be a SourceForge user to submit bug reports, but this is easy enough
8707 to do that it shouldn't be a restriction for you. Please include the
8740 Tickets} page on SourceForge. If you don't find the answer to your
8751 MH-E in your Emacs is likely to be out of date although it is most
8752 likely to be more up to date than the copy that comes with the MH
8761 on that page to determine if the given release of MH-E is already
8763 to see if you are interested in what the given release of MH-E has to
8781 @file{README} file and @file{MH-E-NEWS}. These correspond to the
8784 Emacs, please quit that session and start again to load in the new
8792 In addition to the mh-e package, the
8815 hands several times since then. Jim Larus wanted to do something
8819 development to @uref{https://sourceforge.net/, SourceForge} where it
8835 One day in 1983 I got the flu and had to stay home from work for three
8836 days with nothing to do. I used that time to write MHE@. The
8839 supposed to run as a sub-process of the mailer, which seemed to me at
8840 the time to be the tail wagging the dog. So I turned it around and
8846 the way that GNU MH-E works and I've never gotten to be good enough at
8847 hacking Emacs Lisp to make GNU MH-E do what I want. The Gosling-emacs
8855 on to Stephen Gildea, the current maintainer, and he was excited about
8867 Brian Reid, while at CMU or shortly after going to Stanford wrote a
8874 Gosling Emacs to make it look more like Tennex Emacs. One of the
8876 I went back to Berkeley. About that time, Stallman's first version of
8877 GNU Emacs came out and people started to move to it from Gosling Emacs
8878 (as I recall, the transition took a year or two). I decided to port
8879 Reid's MHE and used the mlisp to Emacs Lisp translator that came with
8886 sufficient functionality to keep me happy, but I kept on improving it
8894 In '89, I came to Wisconsin as a professor and decided not to work on
8897 began to pester me about the bugs, but I ignored them. In 1990, he
8898 went off to the X Consortium, said good bye, and said that he would
8902 the responsibility of maintenance to him and he has done a fine job
8913 In 1987 I went to work for Bolt Beranek and Newman, as Jim had before
8915 to run large, I was frustrated with the speed of RMAIL@. However, I
8918 modifications of my own) and dislike having to use applications with
8919 embedded editors; they never live up to Emacs.
8921 MH is the mail reader of choice at BBN, so I converted to it. Since I
8922 didn't want to give up using an Emacs interface, I started using MH-E@.
8924 used version 3.4m. One of the first features I added was to treat the
8926 and be warned of unsaved changes when killing it. I also worked to
8927 bring its functionality a little closer to RMAIL@. Jim Larus was very
8933 When I moved to the X Consortium I became the first person there to
8936 able to add some features Jim hadn't accepted, such as the backward
8942 @sc{mime} messages remains to be done, alas.) While writing this book,
8944 and inconsistencies that required a new major version to fix, and so
8955 The preface originally included the following text which I use to
8959 But it's important to note a brief history of MH-E.
8968 After a long break, Stephen handed the reins over to me in 2000. I
8969 moved the project to a new site called SourceForge and organized a
8985 repository was migrated from SourceForge to Savannah (only for those
8987 reorganized to push back two decades of entropy. Version 8 appeared in
9025 @c normally be in a dictionary (global or personal). Be careful not to
9049 @c Note the lowercase mh which is needed to avoid hits in the
9052 @c it with C-x C-e. You want to see "Search failed"
9058 @c (add-to-list
9077 @c See existing cross-references to the Emacs manual and the Emacs