1 Newsgroups: comp.mail.mh,comp.answers,news.answers
2 Subject: MH Frequently Asked Questions (FAQ) with Answers
3 Keywords: FAQ,mh,mail,question,answer,pop,slocal,letter,signature,
4 draft,message,folder,xmh,olmh,vmail,vmailtool,comp,repl,
5 forw,scan,SMTP,bind,MH-E,MIME,plum,exmh,nmh
6 Summary: This document answers Frequently Asked Questions about MH, a
7 sophisticated mail interface. It should be read by new MH
8 users and comp.mail.mh readers and before posting to this group.
10 Approved: news-answers-request@MIT.Edu
11 Reply-To: Bill Wohler <wohler@newt.com>
12 From: Bill Wohler <wohler@newt.com>
13 Organization: Newt Software, Menlo Park, California, USA
15 Archive-name: mail/mh-faq/part1
18 Posting-Frequency: monthly
20 This is a living list of frequently asked questions on the mailer
21 user interface, Mail Handler, or MH. The point of this is to
22 circulate existing information, and avoid rehashing old answers.
23 Better to build on top than start again. Please read this document
24 before ever posting to this newsgroup.
26 This article is posted monthly. If it has already expired and you're
27 not reading this, you can hope that you saved the instructions to
28 retrieve the FAQ (see "Where can I get MH") so that you can get a
29 copy through other means.
31 Please do not post an answer when someone posts a frequently asked
32 question; rather, email the relevant section of the FAQ to eliminate
33 unnecessary traffic in this newsgroup.
35 This list depends on your comments, additions and fixes: please send
36 them to Bill Wohler <wohler at newt.com>.
38 Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
39 2001, 2004, 2005, 2006, 2007 Bill Wohler
41 Permission to use, copy, distribute, and translate this document for
42 any non-commercial purpose is hereby granted, provided that this
43 copyright notice appears in all copies. Commercial distributions
44 require prior written consent.
46 This article is distributed in the hope that it will be useful, but
47 WITHOUT ANY WARRANTY; without even the implied warranty of
48 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
50 ----------------------------------------------------------------------
52 Subject: Table of Contents
53 From: Bill Wohler <wohler at newt.com>
54 Date: Sat, 3 Mar 2001 11:29:16 -0800
56 Legend: + new, - deleted, ! changed
61 01.01 Why should I use MH?
62 !01.02 What is the current version/status of MH?
63 !01.03 Where can I get MH?
64 !01.04 What references exist for MH?
65 01.05 What other MH software is available?
66 !01.06 How can I print a MH manual?
67 01.07 How should I report bugs?
68 01.08 How can I convert from my mailer to MH?
69 01.09 What is the copyright status of nmh?
74 02.01 What machines does MH run on?
75 02.02 How do I build MH?
76 02.03 What options should I use?
77 02.04 What do I need to do to use POP?
78 02.05 Does MH support IMAP?
79 02.06 Why does "mailgroup mail" only affect inc and not slocal?
80 02.07 How can I build MH on Solaris 2?
81 02.08 How can I build MH on Linux?
82 02.09 How can I build MH on IRIX?
83 02.10 How can I get MH to interpret the Content-Length field?
84 02.11 How do I build MH on HP-UX?
85 02.12 Can I prevent adding the local hostname to addresses behind firewalls?
86 02.13 Is there a patch to fix this or that?
87 02.14 How can I build MH on OS/2?
88 02.15 Do any POP/IMAP servers handle MH format?
89 02.16 How can I build MH on Windows?
90 !02.17 How can I build MH on a Mac?
91 ________________________
93 03.00 Scanning & Reading
95 03.01 What do I do if scan shows the wrong date?
96 03.02 How would one go about reading Usenet with MH?
97 03.03 How can I search through multiple folders?
98 03.04 Why don't MH format commands such as %(friendly) work?
99 03.05 Why doesn't "show" display all of a MIME message?
100 03.06 Can I get show not to run "less" so much on MIME messages?
101 03.07 Why do I get "mhn: don't know how to display content"?
102 03.08 How can I automatically delete MH backup files?
103 03.09 Fixing "cannot fopen and lock /var/spool/mail/(user)"
104 03.10 Can I read my mail with a Web browser?
105 03.11 How can I run inc automatically with POP?
106 03.12 Why does inc hang (on Sun)?
107 03.13 How can I get POP to work?
108 03.14 How do I persuade mhshow (mhn) not to bring up a new window?
109 03.15 How do I turn off of all the mhshow (mhn) prompts?
110 03.16 Why is inc splitting messages improperly?
111 03.17 Can MH thread messages?
112 03.18 How can I avoid reading the HTML version of the message?
113 03.19 How do I view or save attachments?
114 03.20 How do I view HTML attachments with Netscape?
115 03.21 Fixing folders: unable to allocate storage for msgstats
116 03.22 How do I recursively list message attachments?
117 03.23 Why do folder and flist overlook some of my sub-folders?
122 04.01 Can I append MH messages to a Unix mailbox format file?
123 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file?
124 04.03 Why do I get ".../.mh_sequences is poorly formatted?"
125 04.04 How can you save News articles into an MH folder?
126 !04.05 Are there any good tools to archive MH messages?
127 04.06 How can I remove duplicate messages?
128 04.07 How can I remove holes in numbering?
129 __________________________
131 05.00 Composing & Replying
133 05.01 Why does repl add a "Re:" to a message that already has one?
134 05.02 How do I include messages in repl with or without ">"?
135 05.03 How can I eliminate duplicate copies of letters to myself?
136 05.04 How can I include my signature?
137 05.05 How do I call my editor with arguments?
138 05.06 How can I digestify messages in a folder for mail to another user?
139 05.07 How can I change my return address?
140 05.08 How can I change my From header?
141 05.09 How can I save a copy of all messages I send?
142 05.10 Can the folder in Fcc: be dynamically specified?
143 05.11 Can I post secure/encryped mail?
144 05.12 How can I send multi-media (MIME) attachments?
145 05.13 What's the best way to send mail to a long list of people?
146 05.14 What is the Dcc header?
147 05.15 How can I make sense of the replcomps file?
148 05.16 How can I convert quoted-printable to 8bit in quoted text in replies?
149 05.17 Can I have aliases include aliases?
150 05.18 Why doesn't mhmail understand aliases?
151 05.19 How do I send blind carbon copies?
152 05.20 When I forward a message, can I use its Subject?
153 05.21 Why is the timezone field in my 'Date:' field wrong?
154 05.22 Can I automate the comp -editor mhn process?
155 05.23 How can I remove those "=20" characters when forwarding?
156 05.24 Can I use mh-format substitution with forw?
157 05.25 How can I keep repl from breaking long lines?
158 05.26 How do I fix a bogus In-Reply-To or missing References field?
163 06.01 What to do with "Problems with edit - draft removed".
164 06.02 Can I run my message through a program (e.g., ispell) before sending?
165 06.03 What to do with "bad address 'xxx' - no at-sign after local-part".
166 06.04 Fixing "post: problem initializing server; [BHST] no servers available"
167 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender
169 06.06 Fixing "post: unexpected response; [BHST] no socket opened"
170 06.07 How do I fix the "X-Authentication-Warning" header?
171 06.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL
173 06.09 Fixing "post: problem initializing server; [BHST] premature
174 end-of-file on socket"
175 06.10 Fixing "Sender didn't use the HELO protocol"
176 06.11 Fixing "post: problem initializing server; [RPLY] 553 Local
177 configuration error, hostname not recognized as local"
182 07.01 What mail filters are available?
183 07.02 Why slocal writes messages to system mailbox that from(1) can't read.
184 07.03 Where can I read about slocal and the format of .maildelivery?
185 07.04 How do I debug my .maildelivery file?
186 07.05 Why isn't slocal working?
187 07.06 Are there any good biff applications for MH?
188 07.07 How do I read new messages filed by procmail?
193 08.01 I have a question about MH-E
198 09.01 How can I get xmh to use Emacs as the editor?
199 09.02 Does xmh support subfolders?
200 09.03 How do I precede included messages with ">" when replying in xmh?
205 Glossary & Acknowledgments
206 Switching xmh's editor
208 inco - babyl to MH converter
209 t2h - add hyperlinks to message viewed
212 HP-UX 10.20 config file
213 Removing duplicate messages (Bourne)
214 Removing duplicate messages (Perl)
215 Removing duplicate messages (Perl)
217 ------------------------------
219 Subject: Viewing This Article
220 From: Bill Wohler <wohler at newt.com>
221 Date: Mon, 27 Nov 1995 14:44:19 -0800
223 To skip to a particular question with Subject or number xx, use
224 "/^S.*xx" with most pagers. In GNU Emacs type "M-C-s ^S.*xx", (or
225 C-r to search backwards), followed by ESC to end the search.
227 To skip to new or changed questions, use "/^S.*[!+]" with most
228 pagers and "M-C-s ^S.*[!+]" in GNU Emacs.
230 This article is in digest format. nn may have already broken this
231 message into separate articles; if not, then type "G %". In rn, use
234 This article is treated as an outline when edited by GNU Emacs. Run
235 "M-x describe-mode" to see available outline-mode commands. Useful
236 commands are "M-x hide-body", "C-c C-s" (show-subtree) and "M-x
239 Check out the Usenet Hypertext FAQ Archive (see "What references
240 exist for nn?"). Files available by ftp, man pages, and other Web
241 pages, as well as cross-references like the one in this paragraph
242 are just a click away.
244 A "Date" field whose time is 00:00:00 is approximate. The month and
245 year in these fields represent the time they were added to the FAQ,
246 rather than when they were contributed by the author, as is the case
247 since November, 1995.
249 If you should need the Internet address, use nslookup or dig if you
250 have them, or send mail to <dns at grasp.insa-lyon.fr> with "help"
253 References to $MHLIB refer to the directory that contains MH support
254 files and routines. This directory is usually /usr/lib/mh or
255 /usr/local/lib/mh (or /usr/local/nmh/lib or /etc/nmh for nmh). Do
256 not use $MHLIB literally; use the real, absolute path to your MH
259 There are slight differences between the original MH and nmh. In the
260 text, the nmh command or filename is preferred, and the MH
261 equivalent is placed in parenthesis. For example, the MH
262 configuration is in $MHLIB/mts.conf (mtstailor); mhshow (mhn -show)
263 is used to view attachments.
265 Note that due to bottom feeding email address harvesting spam scum,
266 mailto links have been removed and @s in addresses have been
269 ------------------------------
271 Subject: 01.00 ***** Introduction *****
272 From: Bill Wohler <wohler at newt.com>
273 Date: Fri, 1 Mar 1991 13:03:15 -0800
275 ------------------------------
277 Subject: 01.01 Why should I use MH?
278 From: Jerry Peek <jpeek at jpeek.com>
279 Date: Fri, 1 Mar 1991 13:03:15 -0800
281 The MH message handling system is a set of electronic mail programs
282 in the public domain. If your computer runs Unix, it can probably
285 The big difference between MH and most other "mail user agents" is
286 that you can use MH from a Unix shell prompt. In MH, each command is
287 a separate program, and the shell is used as an interpreter. So, all
288 the power of Unix shells (pipes, redirection, history, aliases, and
289 so on) works with MH--you don't have to learn a new interface. Other
290 mail agents have their own command interpreter for their individual
291 mail commands (although the mush mail agent simulates a Unix shell).
293 Because MH commands aren't part of a monolithic mail system, you can
294 use them at any time; you don't have to start or quit the mail
295 agent. Because you use them from a shell prompt, you can use all the
298 If your shell has time-saving aliases or functions (and most do),
299 you'll be able to use them with MH, of course. And because MH isn't
300 a monolithic mail agent, you can use MH commands in Unix shell
301 scripts, or call them from programs in high-level languages like C.
303 Unlike most mail agents, MH keeps each message in a separate file.
304 The filename is the message number. To rearrange the messages, MH
305 just changes the filenames. MH can use standard Unix file system
306 operations such as removing, copying and linking messages. The
307 message files are grouped into one or more folders, which are
308 actually Unix directories.
310 MH is free, powerful, flexible--and the basics are easy to learn.
312 ------------------------------
314 Subject: !01.02 What is the current version/status of MH.
315 From: Bill Wohler <wohler at newt.com>
316 Date: Sun, 23 Sep 2007 23:51:52 -0700
318 The current official version of MH is 6.8.3, although a beta of
321 This version includes MIME, a multi-media MH package that implements
322 the new IETF work on Multi-media 822 (MIME). This allows you to
323 include things like audio, graphics, and the like, in your mail
324 messages. --Marshall Rose <mrose at dbc.mtview.ca.us>
326 MH now works with Kerberos as well.
328 In addition, a new program called mhparam extracts arguments from
329 .mh_profile which is useful in shell scripts.
331 Please see the file CHANGES in the distribution for more details.
333 Due to the languishing state of MH, Richard Coleman <coleman at
334 math.gatech.edu> created another version of MH called nmh based upon
335 MH 6.8.3. He added GNU autoconf to ease installation considerably
336 and fixed several bugs and inconsistencies. Doug Morris <doug at
337 mhost.com. hosted the web site, mailing lists, web pages, and CVS
338 repository for a long time. Ken Hornstein <kenh at pobox.com> picked
339 up the torch in 2002 and moved development to Savannah where Jon
340 Steinhart <nmh at fourwinds.com> joined him as a project maintainer.
341 See http://www.nongnu.org/nmh/. The stable version of nmh is 1.2.
342 The file DIFFERENCES in the nmh distribution contains an
343 ever-growing list of differences between nmh and MH.
345 GNU mailutils (version 1.2) is a collection of mail-related
346 utilities. At the core of mailutils is libmailbox, a library which
347 provides access to various forms of mailbox files (including remote
348 mailboxes via popular protocols and MH). See
349 http://www.gnu.org/software/mailutils/.
351 ------------------------------
353 Subject: !01.03 Where can I get MH?
354 From: Bill Wohler <wohler at newt.com>
355 Date: Sun, 23 Sep 2007 23:51:46 -0700
357 MH comes standard with:
359 Berkeley Software Design BSD/386 . . . . MH 6.8.3
360 Control Data Corp. CDC4680-MP . . . . . . EMH 1.4.2 (modified MH)
361 Debian GNU/Linux 4.0 . . . . . . . . . . nmh 1.1-RC4
362 Debian GNU/Linux 4.0 . . . . . . . . . . mailutils 1.1
363 DEC Ultrix 3.1 . . . . . . . . . . . . . MH 6.5
364 DEC Ultrix 4.2A.4 . . . . . . . . . . . . MH 6.7.1
365 DEC OSF/1 . . . . . . . . . . . . . . . . MH 6.7
366 Evans and Sutherland ES/OS 2.3 . . . . . MH 6.6
367 FreeBSD . . . . . . . . . . . . . . . . . MH 6.8.4
368 IBM PS/2 AIX 1.3 . . . . . . . . . . . . MH 6.4
369 IBM RISC System/6000 AIX 3.x and 4.x . . MH 6.6
370 MIPS RISC/OS 4.52 . . . . . . . . . . . . MH 6.6
371 Red Hat Linux (3.0.3, 4.0 and 4.1) . . . MH 6.8.3
372 SGI Irix 6.2 Freeware 2.0 CDROM . . . . . MH 6.8.3
373 Sony NEWS-OS 4.3 . . . . . . . . . . . . MH 6.7.2
374 Tektronix UTek . . . . . . . . . . . . . MH (Version Unknown)
378 http://download.savannah.nongnu.org/releases/nmh/nmh-1.2.tar.gz 831kB
380 Download GNU mailutils:
382 http://ftp.gnu.org/gnu/mailutils/mailutils-1.2.tar.gz 3.4MB
384 ------------------------------
386 Subject: !01.04 What references exist for MH?
387 From: Bill Wohler <wohler at newt.com>
388 Date: Sun, 23 Sep 2007 23:51:41 -0700
391 http://rand-mh.sourceforge.net/
392 http://www.nongnu.org/nmh/
393 http://www.gnu.org/software/mailutils/
394 http://mh-e.sourceforge.net/
397 MH & xmh: E-mail for Users & Programmers. Third edition. Jerry
398 Peek, with Bill Wohler and Brent Welch.
399 ISBN 1-56592-093-7. 738 pages.
400 O'Reilly & Associates, Inc.
401 Out of print as of August, 1996.
403 References to "the MH book" in this document refer to the third
404 edition (plus updates) of this book online at
405 http://rand-mh.sourceforge.net/book/. Section numbers for the
406 second edition may appear in parentheses.
408 There is another book that contains a number of examples of
409 advanced mail handing using MH as the example message handler.
410 It's also quite a good reference on email in general.
412 The Internet Message. Marshall T. Rose
413 ISBN 0-13-092941-7. 396 pages.
417 MHN Tutorial by Jerry Sweet
418 ftp://ftp.ics.uci.edu/pub/mh/contrib/multimedia/mhn-tutorial.ps.Z 141k
419 ftp://ftp.ics.uci.edu/pub/mh/contrib/multimedia/mhn-tutorial.tex.Z 48k
423 gmane.mail.exmh.devel
425 gmane.mail.mh-e.announce
426 gmane.mail.mh-e.devel
431 There are three mailing lists for nmh: nmh-announce, nmh-workers,
432 and nmh-commits. See:
434 http://savannah.nongnu.org/mail/?group=nmh
436 The page for each list contains a link to the archives.
439 Current archives can be found at:
441 http://lists.nongnu.org/archive/html/nmh-workers/
443 Older archive can be found in the mh-users and mh-workers archives
446 http://sourceforge.net/project/showfiles.php?group_id=143658&package_id=188462
448 There are directions in the release notes. Basically, you can use
449 either "msh" or the individual commands "inc -file" to get the
450 messages into a folder, and then "scan", "pick", "show", and so on
451 (or your favorite commands in xmh, MH-E, etc.). --Jerry Peek
455 http://www.newt.com/faq/mh.html
456 http://faqs.cs.uu.nl/na-dir/mail/mh-faq/part1.html
459 GNU Emacs 19.29 comes with a version of MH-E that includes online
460 (Texinfo) documentation. Try "C-h i m mh-e RET". It is also
461 available in HTML and PDF formats at
462 http://mh-e.sourceforge.net/manual/. See also "What other MH
463 software is available?" to see where you can get the latest
464 version of MH-E which includes the documentation sources.
467 The FAQ is available at http://www.beedub.com/exmh/exmh-faq.html.
468 The online exmh sections from the MH book can be found at
470 http://rand-mh.sourceforge.net/book/index.html#chTourexmh
472 Signature and Finger FAQ:
473 http://www.faqs.org/faqs/usenet/signature-faq/
475 ------------------------------
477 Subject: 01.05 What other MH software is available?
478 From: Stephen Gildea <gildea at stop.mail-abuse.org>, Bill Wohler <wohler at newt.com>
479 Date: Thu, 19 May 2005 21:20:57 -0700
481 MH-E is the Emacs interface to the MH mail system. It offers all the
482 functionality of MH, the visual orientation and simplicity of use of
483 a GUI, and full integration with Emacs and XEmacs, including
484 thorough configuration and online help.
486 MH-E allows one to read and process mail very quickly: many commands
487 are single characters; completion and smart defaults are used for
488 folder names and aliases. With MH-E you compose outgoing messages in
489 Emacs. This is a big plus for Emacs users, but even non-Emacs users
490 have been known to use MH-E after only learning the most basic
491 cursor motion commands.
493 Additional features include:
495 * attractive text rendering with font lock
496 * composition and display of MIME body parts
497 * display of images and HTML within the Emacs frame
498 * folder browsing with speedbar
501 * lightning-fast full-text indexed searches of all of your email
502 * virtual folders to view ticked and unseen messages, search results
503 * multiple personalities
504 * signing and encrypting
505 * spam filter interaction
506 * XFace, Face, X-Image-URL header field support with picons
508 The GNU Emacs distribution includes MH-E.
510 MH-E is maintained at SourceForge:
512 http://mh-e.sourceforge.net/
514 From: Chris Menzel <cmenzel at philebus.tamu.edu>
515 Date: Sat, 15 Dec 2001 10:02:38 -0600
517 The terminal-oriented, fast, and powerful mutt mail client not only
518 supports the MH mail format but also supports .mh_sequences files,
519 providing a robust interface to MH. It is also amazingly
520 configurable and is very adept at handling MIME attachments and HTML
523 Unlike MH, the displayed message numbers do not necessarily
524 correspond to the message filenames. This makes threading and
525 sorting lightning fast but slower to display very large folders.
529 From: Brent Welch <welch at acm.org>
530 Date: Tue, 20 Mar 2001 22:42:15 -0800
532 EXMH is a user interface for the MH mail system written in TCL/TK.
534 Exmh has MIME support, color feedback in the scan listing, a folder
535 display with one label per folder, clever scan caching, facesaver
536 bitmap display; background inc, various inc styles, searching over
537 folder listing and message body, a dialog-box interface to MH pick,
538 a simple built-in emacs-like editor, interfaces to other editors,
539 user preferences, user hacking support. For more info or to obtain
542 http://exmh.sourceforge.net/
544 From: "Eric D. Friedman" <friedman at hydra.acs.uci.edu>
545 Date: Tue, 9 Feb 1999 22:52:44 -0800
547 Mhtake is a perl script that lets you add people to your mail
548 aliases file by typing mhtake [message #].
550 http://orion.oac.uci.edu/~friedman/mhtake.txt
552 From: Steinar Bang <sb at metis.no>
553 Date: Fri, 26 Jan 1996 13:51:08 +0100
555 Mew (an Emacs interface to MH that has MIME and PGP capabilities) is
558 ftp://ftp.aist-nara.ac.jp/pub/elisp/Mew/mew-current.tar.gz
560 [MH-E has had these capabilities since version 7.0 so mew is
561 obsolete if you use MH-E. --Ed]
563 From: James Perkins <jamesp at sp-eug.com>
564 Date: Fri, 1 Jan 1993 00:00:00 -0800
566 Vmh is designed for people using the bulletin-board features of MH,
567 where mail is stored in packed (single-file) folders. As a result,
568 use of this program cannot be mixed with the use of normal MH
569 commands. Vmh is a part of the official MH distribution.
571 From: James Perkins <jamesp at sp-eug.com>
572 Date: Fri, 1 Jan 1993 00:00:00 -0800
574 Xmh is a X11 mouse-based MH browsing tool. It is very powerful and
575 feature-filled and thus comes with a moderate learning curve. Its
576 dependence on the X11 environment makes it very reconfigurable, but
577 only by people well-versed in X applications programming. Its
578 message reply built-in-editor interface is not always popular among
579 those used to having MH bring up the editor of their choice.
581 Date: Fri, 1 Jan 1993 00:00:00 -0800
583 xmh is part of the standard X Window System distribution from the X
584 Consortium. Ultrix also ships dxmail which is similar.
586 ftp://cs.utk.edu/pub/xmh.shar.Z 162k
588 From: Harald Tveit Alvestrand <hta at boheme.er.sintef.no>
589 Date: Fri, 1 Jan 1993 00:00:00 -0800
591 Here's a version of xmh that includes MIME.
593 ftp://aun.uninett.no/pub/mail/mixmh/mixmh-0.3.tar.Z 232k
595 From: Nathaniel Borenstein <nsb at thumper.bellcore.com>
596 Date: Sun, 26 Nov 1995 19:04:51 -0800
598 Metamail is a package that can be used to convert virtually ANY
599 mail-reading program on Unix into a multi-media mail-reading
600 program. It is an extremely generic implementation of MIME
601 (Multipurpose Internet Mail Extensions), the proposed standard for
602 multi-media mail formats on the Internet. The implementation is
603 extremely flexible and extensible, using a "mailcap" file mechanism
604 for adding support for new data formats when sent through the mail.
605 At a heterogeneous site where many mail readers are in use, the
606 mailcap mechanism can be used to extend them all to support new
607 types of multi-media mail by a single addition to a mailcap file.
609 The metamail distribution comes complete with a small patch for each
610 of over a dozen popular mail reading programs, including Berkeley
611 mail, mh, Elm, Xmh, Xmail, Mailtool, Emacs Rmail, Emacs VM, Andrew,
612 and others. Note that the MH patches are now integrated into MH 6.8.
614 ftp://ftp.bellcore.com/pub/nsb/mm2.7.tar.Z
616 From: Tom Christiansen <tchrist at perl.com>
617 Date: Tue, 9 Feb 1999 22:55:24 -0800
619 Plum is a highly configurable and extensible screen-oriented
620 front-end for processing MH mail on ASCII terminals. Unlike MH-E,
621 the extension language used in plum is perl, not LISP. Plum offers
622 many of the advantages of xmh, but lacks several of xmh's
623 disadvantages. The look&feel derives more from vi than from emacs.
624 Key bindings and functions may be changed on the fly to suit the
625 user's preference. It offers filename and word completion on folder,
626 variables, and command names.
628 Until it is included in the standard distribution (under
629 miscellany), you can find a copy on:
631 http://www.cpan.org/authors/Tom_Christiansen/scripts/plum.gz 29k
633 or mail requests to Tom
635 From: Jerry Sweet <jsweet at irvine.com>
636 Date: Tue, 1 Nov 1994 00:00:00 -0800
638 Mhunify is a set of perl scripts and templates that provides
639 shell-level MH functionality with USENET news. Since MH supports
640 MIME, MIME-format news articles just work. I've found that being
641 able to handle news in the same way that I handle email is very
642 useful, although there are some tradeoffs.
644 Mhunify also treats MH folders just like news groups. If you
645 subscribe to several mailing lists, and your email is automatically
646 delivered to separate folders, say, via procmail or via MMDF's
647 .maildelivery, the mhunify package lets you progress automatically
648 through your folders just as you would news groups.
650 ftp://ftp.ics.uci.edu/pub/mh/contrib/multimedia/mhunify.shar.gz
652 From: Dale Carstensen <dlc at c3file.c3.lanl.gov>
653 Date: Tue, 1 Nov 1994 00:00:00 -0800
655 olmh is a demo for OLIT (Open Look Interface Toolkit, the Open Look
656 wrapper to Xt) in Sun's Open Windows 3 that does handle 3rd and
657 subsequent levels of nesting of folders.
659 Obtain the Open Windows 3 distribution CD/ROM from Sun (SPARC only).
660 To do this, call 1-800-USA-4SUN and send tone "2" for telemarketing
661 after it answers. The 4.1.2 CD/ROM may also have Open Windows 3. The
662 list price for the 4.1.2 CD/ROM is $200.
664 From: James Perkins <jamesp at sp-eug.com>
665 Date: Sun, 1 May 1994 00:00:00 -0800
667 Vmail is a curses-based, vi-like message browser which calls on MH
668 programs to manipulate mail. It can be used on almost any terminal.
669 It organizes mail folders into index pages, from which a message can
670 be selected to be shown, replied-to, forwarded, refiled, deleted,
671 and so on. The vi-like interface and command keystrokes are
672 comfortable to less-experienced Unix users, and it is a small,
673 compact program, unlike the MH-E Emacs package.
675 This version of vmail has been bugfixed and enhanced from the
676 original vmail published on the net in 1987 by J. Zobel.
678 ftp://ftp.uu.net/comp.sources.unix/volume12/vmail/part0*.Z 46k
679 ftp://ftp.ucs.ubc.ca/pub/mh/vmail.[1-3]of3.Z 58k
681 Or mail requests to James.
683 From: James Perkins <jamesp at sp-eug.com>
684 Date: Sun, 1 May 1994 00:00:00 -0800
686 vmailtool may be for you if you have a Sun workstation. It is a
687 button gadget panel for the above-mentioned vmail program. It brings
688 vmail into the windows era where people no longer need to memorize
689 specific command keystrokes. It also provides a mail icon with the
690 flag that pops up when new mail arrives. Again, this is a compact,
691 simple tool, unlike the powerful xmh program. Still, it's a welcome
692 alternative for many people who are running SunView or OpenWindows.
694 ftp://ftp.ucs.ubc.ca/pub/mh/vmailtool.Z 18k
696 or mail requests to James.
698 MMH, My Mail Handler, is a Motif interface for reading and sending
699 mail. It uses the MH commands to actually handle sending a receiving
700 messages. It does not support all the capabilities of MH, but offers
701 a large enough subset to handle the majority of users. Its intended
702 user is someone between "bumbling email novice" and "sophisticated
703 user". Hooks are provided to allow the user to customize and add new
706 ftp://ftp.eos.ncsu.edu/pub/bill/bill.tar.Z 120k
708 From: Andrew Waugh <ajw at mel.dit.csiro.au>
709 Date: Fri, 1 Jan 1993 00:00:00 -0800
711 X.500 lookups: If a name is enclosed in square brackets, when
712 entering a destination address:
714 To: [Greg Wickham,CSIRO]
716 a search will be made in the X.500 Directory for the individual's
717 entry. If an address exists then it will be extracted and placed
718 into the headers. Mail requests for the software to the author.
720 From: Barbara Dyker <dyker at teal.csn.org>
721 Date: Fri, 1 Jan 1993 00:00:00 -0800
723 QueueMH is an email based service request and tracking system based
724 on the Rand Mail Handler.
726 ftp://ftp.cs.colorado.edu/pub/cs/sysadmin/utilities/queuemh.tar.Z 98k
728 From: <info at rootgroup.com>
729 Date: Mon, 1 Mar 1993 00:00:00 -0800
731 Qmh is an MH-based group mail management tool. Written entirely in
732 perl, Qmh combines the best aspects of MH with group mail heuristics
733 and delivers a sensible package for all levels of Unix users. A
734 limitless number of individual queues and associated groups of
735 permitted users can be established.
737 Specific functionality includes the following modes of operation;
738 checking header dates and sending reminder/deadline mail, editing
739 existing messages, help screens, creating new messages from scratch
740 or exiting messages, resolving messages, scanning queue folders, and
741 annotating with status both by editing and sending mail.
743 Qmh is a single generic program in and of itself from which all
744 modes of operation are invoked. Additionally, each separate queue
745 may be accessed via a link to the single program. All system
746 configuration is maintained in a single file that is read upon each
747 invocation of Qmh. Formatting and template files are provided in the
748 system library, although individual users can override the defaults
749 simply by creating equivalent files in their own MH mail directory.
751 Qmh provides a powerful database-like functionality by allowing
752 limitless per-queue X-Qmh-<$value> headers to be included in
753 messages. These "fields" then form the context of the queue messages
754 and provide a user-defined, but yet structured environment for
755 queries, reporting, and random information.
757 Qmh is designed to provide a complete solution for SA groups, help
758 desks, support organizations, or wherever two or more individuals
759 are trying to manage multiple mail requests.
761 Qmh is also compatible with versions of xmh that provide user-level
762 command buttons. Provided in the Qmh package is a ~/.Xdefaults
763 template file that's setup to harness the power of Qmh.
765 From: Jerry Peek <jpeek at jpeek.com>, Shannon Yeh <yeh at netix.com>
766 Date: Sun, 11 Mar 2001 00:23:21 -0800
769 These were available only for non-commercial degree-granting
772 Networking & Communication Systems
775 Stanford, CA 94305-4122
776 Phone: +1 415-723-3909
779 ftp://netix.com/pub/pc-mh-info/*
781 For more PC/MH info, contact:
783 Netix Communications, Inc.
784 15375 Barranca Parkway
785 Building G, Suite 107
787 Phone: +1 714-727-9532
789 Internet: info at netix.com
791 In addition, you might try Wollongong, to see if they have
792 something you can get.
794 [This information appears to be out of date. Please send me
795 pointers to valid information. Potential sites include
796 jessica.stanford.edu. --Ed]
798 Two other potential methods to run MH under Windows: Run Unix
799 under Windows with VMware (http://www.vmware.com/) or try to
800 compile nmh with the Cygwin tools (http://www.cygwin.com/).
802 ------------------------------
804 Subject: !01.06 How can I print a MH manual?
805 From: Bill Wohler <wohler at newt.com>, Jos Vos <jos at bull.nl>
806 Date: Sun, 23 Sep 2007 23:51:33 -0700
808 Documentation in text and PostScript format is found in the
809 MH-doc.tgz tarball on:
811 http://sourceforge.net/project/showfiles.php?group_id=143658&package_id=188464
813 To generate your own copy for printing, first obtain the MH sources
814 (see "Where can I get MH?") if you don't already have it. Go into
815 the "doc" directory and run "make guide" to create the
816 administrators guide and "make manual" to create a user's manual
817 which includes tutorials and man pages. If the doc directory is
818 empty or is missing the Makefile, you'll have to run "mhconfig MH"
819 in the conf directory so that the documentation with correct local
820 information is created.
822 For properly formatting the documentation (at least the manual
823 pages) you might even have to install MH, because a reference to a
824 tmac.h file in the MH lib directory is made in the manual pages.
826 ------------------------------
828 Subject: 01.07 How should I report bugs?
829 From: Bill Wohler <wohler at newt.com>
830 Date: Wed, 29 Sep 2004 00:12:42 -0700
832 Bugs in nmh should be reported at:
834 http://savannah.nongnu.org/bugs/?group=nmh
836 Bugs in MH-E should be reported at:
838 http://sourceforge.net/tracker/?atid=113357&group_id=13357
840 ------------------------------
842 Subject: 01.08 How can I convert from my mailer to MH?
843 From: Mike Sutton <mws115 at llcoolj.dayton.saic.com>
844 Date: 7 Jul 1995 10:03:50 GMT
846 The unrmail function will convert rmail format to mbox format.
848 From: Jerry Peek <jpeek at jpeek.com>
849 Date: Fri, 1 Mar 1991 13:03:15 -0800
851 If you use one of a mail agent like 'mail', 'mailx', 'elm' or
852 'mush', converting to MH is easy. When you run the 'inc' command, it
853 reads all new messages from the system mailbox into your 'inbox'
854 folder. Those mail agents also have separate files or "folders" that
855 hold messages in the same format as the system mailbox. You can read
856 them with the 'inc -file' command. For example, to read the messages
857 from your 'mbox' mail file into your MH 'inbox' folder, you'd type:
860 % cp mbox mbox.backup
863 If you see the usual "Incorporating new mail into inbox..." message
864 and a scan listing, the messages probably were converted. Read some
865 or all of them (with the 'show' command) and be sure. The 'inc'
866 won't remove your mbox unless you use '-truncate'.
868 From: "Jason R. Mastaler" <jason at Mastaler.COM>
869 Date: Mon, 1 May 1995 00:00:00 -0800
871 You can also specify an alternate folder to inc. Here's how you can
872 convert all your folders en masse:
874 for arg in `cat flist`; do
875 echo "converting $arg"
876 inc +"$arg" -file "$arg" -silent
879 Section D.4 of the MH book's second edition lists two scripts to
880 convert mail files to MH folders: babyl2mh to convert from rmail's
881 BABYL format; vmsmail2mh to convert from VMS's mail (see "What
882 references exist for MH") to see where the book's examples can be
883 ftped from). These scripts aren't in the third edition but are in
886 From: Vivek Khera <khera at cs.duke.edu>
887 Date: Fri, 1 Jan 1993 00:00:00 -0800
889 I rewrote the above script in Perl since the original script doesn't
890 work for some people (see "babyl2mh.pl" below).
892 From: Juergen Nickelsen <nickel at cs.tu-berlin.de>
893 Date: Fri, 1 Jan 1993 00:00:00 -0800
895 You can remove the second to last second line ("> $input"), so that
896 the script doesn't zero out your RMAIL file.
898 Another alternative is to replace this line with "inc -file $tmpmbox
899 $folder && > $input", so that the RMAIL is only zeroed if inc
900 successfully incorporated the mail. Finally one could add a switch
901 -z, so that the RMAIL file is only zeroed if the switch is given.
902 (See "Appendix inco".)
904 Date: Sun, 1 May 1994 00:00:00 -0800
906 Use the following to convert a BABYL format file to Unix mail
909 ftp://inf.informatik.uni-stuttgart.de/pub/gnu/emacs_extras/rmailtovm.el.Z
912 See also MH book second edition (Appendix D).
914 ------------------------------
916 Subject: 01.09 What is the copyright status of nmh?
917 From: Richard Coleman <coleman at math.gatech.edu>
918 Date: Mon, 10 Oct 2005 18:16:58 -0700
920 nmh is distributed under a variant of the classical BSD copyright.
921 Check the COPYRIGHT file in the nmh distribution for the details.
922 There are some specific files which were contributed to the original
923 MH package that are copyrighted by their original author. We have
924 retained the copyright notices of these authors in these files.
926 ------------------------------
928 Subject: 02.00 ***** Building MH *****
929 From: Bill Wohler <wohler at newt.com>
930 Date: Fri, 1 Mar 1991 13:03:15 -0800
932 ------------------------------
934 Subject: 02.01 What machines does MH run on?
935 From: Bill Wohler <wohler at newt.com>
936 Date: Thu, 19 May 2005 21:22:55 -0700
938 MH isn't just for Unix any more. Versions are reported to run on
939 OS/2 (see "How can I build MH on OS/2?"), Windows (see "How can I
940 build MH on Windows?"), and Mac (see "How can I build MH on Mac?").
941 Oh yeah, the Mac is now Unix. Maybe Windows Longhorn will be built
944 From: Jerry Peek <jpeek at jpeek.com>
945 Date: Fri, 1 Mar 1991 13:03:15 -0800
947 If you have a computer running Unix, you can probably run MH.
949 ------------------------------
951 Subject: 02.02 How do I build MH?
952 From: Bill Wohler <wohler at newt.com>
953 Date: Sun, 8 Sep 1996 15:13:12 -0700
955 If you're using Linux, you can simply install the nmh or MH package
956 which is available in most distributions.
958 If you want to build nmh, follow the directions in the file named
959 INSTALL. Basically, it's simply "./configure; make; make install."
961 If you have MH on the other hand, if you carefully read the file
962 named READ-ME in the root of the source hierarchy, you should not
963 have any trouble building MH.
965 If you're having troubles building MH, it could be that the problem
966 has already been fixed, but hasn't yet gotten into an official
967 release. Please see http://www.gw.com/mail/mh/patches/ for more
970 ------------------------------
972 Subject: 02.03 What options should I use?
973 From: Bill Wohler <wohler at newt.com>
974 Date: Tue, 1 Dec 1992 00:00:00 -0800
976 BERK: Do NOT include the BERK option (in versions 6.7 or later)!
977 BERK breaks the mh-format functions that take apart address lines,
978 for example mbox, from, and friendly. This would really put a crimp
979 on my replcomps file.
981 LOCKF: if you have NFS, you need to lock your mailbox with lockf()
982 so the lock will be honored by all machines on the local network. If
983 you have the lockf() system call, include LOCKF.
985 JQ Johnson <jqj at duff.uoregon.edu> makes the point that one should
986 use this option carefully since it requires a robust lockf() call.
987 For example, this option caused serious problems on his SunOS 4.1.1.
988 He suggested using LOK_BELL instead, and adding "lockstyle: 1" to
989 $MHLIB/mts.conf (mtstailor).
991 ATZ: makes your timezones print like "EST" instead of "-0500". Much
992 prettier. --Stephen Gildea <gildea at stop.mail-abuse.org>
994 However, Tony Landells <ahl at technix.oz.au> replies: "Yes; very
995 pretty. How unfortunate that timezone names are so ambiguous, so
996 that EST can be interpreted, at a minimum, as (American) Eastern
997 Standard Time, (Australian) Eastern Standard Time, or (Australian)
998 Eastern Summer Time (and yes, I think it's dumb having the same
999 acronym for both normal and Summer time, but that's a different
1000 problem). While the numeric timezones may not look as nice, they
1001 are, at least, reasonably unambiguous. I would urge anyone who ever
1002 intends/hopes/expects to use email outside the U.S. to NOT use ATZ
1005 At any rate, the conf/examples directory has been updated and
1006 contains many examples show you which options are required on your
1007 platform and which are optional (in the upcoming version MH 6.8). At
1008 any rate, it is recommended that you examine the options in the
1009 example configuration files, and read about them in READ-ME.
1011 RPATHS: a side-effect is that slocal writes messages to your system
1012 maildrop without the MMDF C-A's that separate messages, so your BSD
1013 tools like from work.
1015 ------------------------------
1017 Subject: 02.04 What do I need to do to use POP?
1018 From: Bill Wohler <wohler at newt.com>
1019 Date: Sun, 8 Sep 1996 23:31:01 -0700
1021 MH6.7 (and earlier versions too) include a server for version 3 of POP.
1023 From: Morgan Fletcher <morgan at tupelo.best.com>
1024 Date: 14 Mar 1996 19:24:23 -0800
1026 Ensure that /etc/services contains the following:
1028 pop2 109/tcp postoffice # POP version 2
1030 ->pop 110/tcp # POP version 3 (MH's inc thinks it's "pop")
1032 pop3 110/tcp # POP version 3
1035 Also compile with the POP options: POP, DPOP, RPOP, etc.
1037 From: Richard Coleman <coleman at math.gatech.edu>
1038 Date: 06 Feb 1997 03:43:17 -0500
1040 To get MH to use the pop3 service, add POPSERVICE=pop3 to your MH
1041 configuration and recompile:
1043 ------------------------------
1045 Subject: 02.05 Does MH support IMAP?
1046 From: Lyndon Nerenberg <lyndon at MessagingDirect.COM>
1047 Date: 27 Jul 1999 11:33:39 -0600
1049 Run exmh on the laptop, and modify your .mh_profile to inc using
1050 APOP. This is how I run MH-E and it works fine. (I did have to
1051 modify MH-E a wee bit to allow it to prompt for the password. You
1052 would likely have to do something similar with exmh.)
1054 As a spare time project I'm adding enough IMAP support to MH (6.8.3)
1055 to allow you to 'inc -imap [-imapfolder foo]'. If I ever get this
1056 done I'll stick the diffs up somewhere. (It's not a big priority as
1057 I can get at my IMAP INBOX using APOP.)
1059 From: Tim Showalter <tjs at andrew.cmu.edu>, John Prevost <visigoth at cs.cmu.edu>
1060 Date: Wed, 25 Sep 1996 21:34:56 -0400
1062 We are developing fmh and intend to support as much of MH as is
1063 feasible. However, MH and IMAP don't necessarily agree as to what
1064 things are going to look like. MH has static message numbers until
1065 you pack a folder; IMAP keeps two numbers on a message, one which is
1066 absolutely static and one which is relative to the top of a mailbox.
1067 Messages in IMAP are essentially immutable. IMAP doesn't (currently)
1068 allow message annotations. fmh will keep state with a background
1069 daemon instead of writing it to disk, and will probably try and keep
1070 as little on disk as possible.
1072 fmh doesn't understand MH folders at the moment, and probably won't
1073 for a really long time, if ever. As I said before, we're mostly
1074 interested in the IMAP aspects as we're using a networked file
1075 system and saving stuff on the local disk just isn't an option.
1077 fmh is not MH at a very fundamental level. It is very unlikely that
1078 it will be merged, as we're not quite as interested in creating
1079 something that is MH and IMAP as we are in writing a good IMAP
1080 client. Also, the MH code isn't going to take the introduction of
1081 IMAP without a near complete rewrite.
1083 It is not available yet. Inquiries are welcome at <tjs+fmh at
1086 From: Rahul Dhesi <dhesi at rahul.net>
1087 Date: 23 Sep 1996 08:39:52 GMT
1089 What prevents people from doing a telnet to their mail server,
1090 logging in, and firing up MH directly? Site policy? An operating
1091 system that does not let MH compile or run? Overloaded machine with
1092 insufficient processing power for MH? All these are site-specific
1093 problems and the solution lies in solving them locally, not in
1094 forcing MH to go over IMAP.
1096 IMAP was never designed to emulate a filesytem. MH was designed to
1097 make direct advantage of the filesytem structure. There is no
1098 compatibility between the two. By the time IMAP is revised enough to
1099 support MH you will have reinvented NFS.
1101 There *is* scope for redesign here, though. It would be nice to have
1102 a single-user filesystem. Create a binary telnet session to the
1103 filesystem server, log in as yourself, and then over that session
1104 run a filesystem protocol. Normal filesystem protections at the
1105 other end will be sufficient for all permissions checking, so the
1106 filesystem protocol would need to do no other permissions checking.
1107 The question of whom to export directories to would go away: They
1108 are exported to whoever completes a successful login, and accessible
1109 to the user if he would be able to access them on the server as his
1110 login id. You could even use challenge-response for the initial
1111 login, coupled with ssh-based encryption, so you automatically have
1112 a secure filesystem without even trying.
1114 IMAP is too restricted in its scope to be easily modifiable to
1115 emulate such a filesystem. It would have to be a redesign from
1118 From: John Romine <jromine at ics.uci.edu>
1119 Date: Sun, 8 Sep 1996 15:45:27 -0700
1121 No. MH only supports retrieving mail using POP3. POP3 is on the
1122 "standards track"--it is now an elective Internet Draft Standard
1123 (see RFC 1939 for more details). At this point, IMAP[23] are
1124 "experimental, limited use" protocols; it is unlikely that MH will
1127 From: Bill Wohler <wohler at newt.com>
1128 Date: Sun, 8 Sep 1996 15:45:32 -0700
1130 Since John posted the message above, IMAP has progressed from an
1131 "experiemental, limited use" protocol. While IMAP is not universal,
1132 many vendors now have implementations.
1134 I've found several things which might help. First, a definition
1135 lifted from the Pine FAQ:
1139 IMAP stands for "Internet Message Access Protocol". An IMAP client
1140 program on any platform at any location on the Internet can access
1141 email folders on an IMAP server. While the messages appear to be
1142 local, they reside on the server until the client explicitly moves
1143 or deletes them. The IMAP protocol is a superset of POP, containing
1144 all POP commands plus more. For a comparison of IMAP and POP, see
1145 the paper Comparing Two Approaches to Remote Mailbox Access: IMAP
1146 vs. POP (in ftp.cac.washington.edu:/mail/imap.vs.pop). IMAP is what
1147 allows Pine (or any other IMAP client) to get to email on a central
1148 campus email server. There are current IETF working groups revising
1149 IMAP and readying it to become an Internet standard. A copy of the
1150 latest IMAP draft may be obtained from:
1152 ftp://ftp.cac.washington.edu/mail/latest-imap-draft
1154 For a list of IMAP clients, see the file imap.software, in the same
1157 From: David L Miller <dlm at cac.washington.edu>
1158 Date: Mon, 1 Aug 1994 00:00:00 -0800
1160 ipop3d from the UW IMAP toolkit can operate in a couple modes. As a
1161 straight POP3 server, it uses the same C-client library as imapd, so
1162 it co-exists comfortably with imapd. It can also operate as a
1163 POP-to-IMAP gateway so that your POP-only clients can access IMAP
1166 ftp://ftp.cac.washington.edu/mail/imap.tar.Z 1.0M
1168 From: Mark Crispin <MRC at Panda.COM>
1169 Date: Mon, 1 Aug 1994 00:00:00 -0800
1171 The only answer I can give for [how MH users can use IMAP] is that
1172 Pine can read mailboxes in MH format; and that someone might in the
1173 future develop a version of MH that can use IMAP.
1175 From: Philipp Takacs <philipp at bureaucracy.de>
1176 Date: Sun, 25 Oct 2015 15:42:23 +0100
1178 There is other software which support IMAP and MH, like Mutt and
1179 mailsync. mailsync is based on C-client. To use MH you need a
1180 '.mh-profile' in your $HOME with your MH-Path. Here is a example config for a MH
1189 ------------------------------
1191 Subject: 02.06 Why does "mailgroup mail" only affect inc but not slocal?
1192 From: John Romine <jromine at ics.uci.edu>
1193 Date: Fri, 1 Jan 1993 00:00:00 -0800
1195 If "mailgroup" is set, inc is made set-group-id to this group name.
1196 Some SYS5 systems want this to be set to "mail". Set this if
1197 /usr/spool/mail (or /usr/mail) is not world-writable. These changes
1198 were contributed by Peter Marvit, and "inc" is very careful about
1199 its use of the set-gid privilege.
1201 Note that slocal doesn't know how to deal with this, and will not
1202 work under these systems; just making it set-group-id will open a
1203 security hole (since it doesn't know when to drop the set-gid
1204 privileges). If you're using "mailgroup", you should remove slocal
1205 (and its man page) from your system.
1207 Alternatives to slocal include deliver, procmail, and mailagent.
1208 (See "What mail filters are available?")
1210 ------------------------------
1212 Subject: 02.07 How can I build MH on Solaris 2?
1213 From: Richard Coleman <coleman at math.gatech.edu>
1214 Date: Tue, 20 Jan 1998 02:19:58 -0500
1216 nmh builds out of the box on Solaris.
1218 From: Bill Wohler <wohler at newt.com>
1219 Date: Sun, 8 Sep 1996 15:56:31 -0700
1221 See http://www.gw.com/mail/mh/patches/solaris/ for patches you may need.
1223 From: Neil Rickert <rickert at cs.niu.edu>,
1224 Scott K. Hutton <shutton at habanero.ucs.indiana.edu>,
1225 Casper H.S. Dik <casper at fwi.uva.nl>
1226 Date: Sun, 8 Sep 1996 15:57:25 -0700
1228 First, don't use the BSD compatible stuff. Make sure that the Sun or
1229 GNU compiler appear before the BSD compiler in your PATH (e.g.,
1232 Second, don't use GNU make. Make sure that the Sun make appears
1233 before the GNU make in your PATH.
1235 Use conf/examples/solaris2.sun.com and fix the paths, if necessary.
1236 Optionally change the following to use the GNU compiler, to perform
1237 optimization, and to create shared libraries.
1240 ccoptions -O -g -msupersparc
1243 Fix mhn.c with the diff in
1245 http://www.gw.com/mail/mh/patches/solaris/si_value_2.3.
1247 Optionally incorporate the Content-Length header fix. (See "How can
1248 I get MH to interpret the Content-Length field?")
1250 Linking with /usr/ucblib/libucb.so is incompatible with including
1253 When compiling, you can ignore the following warning:
1255 fmtcompile.c, line 238: warning: semantics of "/" change in ANSI C;
1258 If you're using AFS, you'll have to replace any occurrence of "ln"
1259 with "ln -s" wherever the make dies when it tries to make a link "on
1260 a different file system."
1262 See also ftp://ftp.fwi.uva.nl/pub/solaris/solaris2.faq.
1264 Date: Thu, 1 Dec 1994 00:00:00 -0800
1266 Unset LD_LIBRARY_PATH.
1268 From: Gary Strand <strandwg at ncar.ucar.edu>
1269 Date: Mon, 1 May 1995 00:00:00 -0800
1271 To cure slocal's Segmentation Fault problems, I decided to try 'cc'
1272 instead of 'gcc' (an alleged no-no under Solaris) and MH built just
1273 fine, and it's working perfectly.
1275 From: "Jason R. Mastaler" <jason at Mastaler.COM>
1276 Date: Mon, 25 Sep 1995 17:35:13 -0400
1278 Don't use "ldoptions -s" with gcc. It may cause the compile to fail
1281 gcc: Internal compiler error: program ld got fatal signal 11
1284 From: "Jeffrey T. Eaton" <jeaton at galt.com>
1285 Date: Fri, 04 Apr 1997 15:30:36 GMT
1287 Fixed [DBM_PAGFNO_NOT_AVAILABLE error] by getting the latest gdbm
1288 package, compiling and installing it and the dbm/ndbm compatability
1289 stuff, and moving Sun's broken ndbm.h out of /usr/include.
1291 To fix "../sbr/libmh.so: undefined reference to
1292 `__builtin_va_arg_incr'", add "option __BUILTIN_VA_ARG_INCR" to your
1295 ------------------------------
1297 Subject: 02.08 How can I build MH on Linux?
1298 From: Richard Coleman <coleman at math.gatech.edu>
1299 Date: Tue, 20 Jan 1998 02:19:58 -0500
1301 nmh should build out of the box for most Linux systems.
1303 From: Bill Wohler <wohler at newt.com>
1304 Date: Tue, 9 Feb 1999 23:04:53 -0800
1306 The Debian distribution of Linux comes with an MH and nmh packages.
1309 http://www.debian.org/.
1311 See also http://www.gw.com/mail/mh/patches/linux/.
1313 From: "James A. Robinson" <jimr at simons-rock.edu>
1314 Date: 17 Apr 96 20:39:02 GMT
1316 Somebody on Debian ported it to Linux ELF. Look on
1317 ftp://ftp.debian.org/debian/stable/binary/mail/mh_6.8.4-13.deb for
1318 the .deb package of MH (it's a compressed tar file). The source is
1319 in ftp://ftp.debian.org/debian/stable/source/mail/mh_6.8.4-orig.tar.gz
1320 and mh_6.8.4-13.diff.gz.
1322 From: Brian Kirouac <bri at psa.pencom.com>
1323 Date: 18 Apr 96 14:00:20 GMT
1325 If you are running Redhat and have rpm available you can also use
1326 ftp://???/pub/redhat-3.0.3/i386/RedHat/RPMS/mh-6.8.3-5.i386.rpm. The
1328 ftp://???/pub/redhat-3.0.3/i386/SRPMS/mh-6.8.3-5.i386.rpm
1330 From: "Brandon S. Allbery" <bsa at kf8nh.wariat.org>
1331 Date: Sun, 26 Nov 1995 16:18:50 -0800
1333 The current patch is the first one listed below. The old patch only
1334 works with libc-4.4, which is no longer used. The current patch is
1335 split into two pieces, as with the previous patch, but now the
1336 divisions are purely functional: the first diff enables MH to
1337 compile, the second allows creation of a shared library. [The paths
1338 are up to date, but I think the info in this paragraph is old. --Ed]
1340 Recent versions of GNU make choke on MH's makefiles. Unfortunately,
1341 the shared library patches depend on "export". If you have problems
1342 building MH, remove the "export" lines from all of the makefiles (if
1343 you applied the shared library patches) and try using BSD pmake
1346 If you don't want to compile MH, the second file contains
1347 pre-compiled ready-to-run binaries which can simply be extracted in
1350 ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-diffs.tar.gz
1351 ftp://sunsite.unc.edu/pub/Linux/system/Mail/readers/mh-6.8.3-bin.tar.gz
1353 The sizes are 650k and 22k respectively.
1355 Note that these files are occasionally "cleaned up" by accident so
1356 please let me know if they are missing.
1358 ------------------------------
1360 Subject: 02.09 How can I build MH on IRIX?
1361 From: Richard Coleman <coleman at math.gatech.edu>
1362 Date: Tue, 20 Jan 1998 02:19:58 -0500
1364 nmh should build out of the box for Irix.
1366 From: Bill Wohler <wohler at newt.com>
1367 Date: Sun, 8 Sep 1996 15:33:22 -0700
1369 See http://www.gw.com/mail/mh/patches/sgi/ for patches you may need.
1371 From: Arne K. Frick <frick at info.uni-karlsruhe.de>
1372 Date: 06 Jun 1995 18:30:01 GMT
1374 There is a file at viz.tamu.edu:/pub/sgi (see FAQ) containing a diff
1375 and sample configuration. If you cannot locate it, I can mail it to
1376 you. Note, however, that I had tremendous difficulties with them
1379 1. Be sure to use /bin/make, NOT GNU make.
1380 2. patch vomits over the diff. You can get around this by increasing the
1382 3. The Makefile target for the shared library doesn't work. I had to do it
1385 But I'm stuck compiling mhn.c.
1387 From: Shankar Unni <shankar at sgi.com>
1388 Date: 9 Jun 1995 01:53:48 GMT
1390 The fix for compiling mhn.c is in
1392 http://www.gw.com/mail/mh/patches/solaris/si_value_2.3.
1394 From: Jack Repenning <jackr at informix.com>
1395 Date: 25 Jul 1995 02:35:41 GMT
1397 (See "IRIX config file") below.
1399 ------------------------------
1401 Subject: 02.10 How can I get MH to interpret the Content-Length field?
1402 From: Casper H.S. Dik <Casper.Dik at Holland.Sun.COM>
1403 Date: Sun, 8 Sep 1996 15:38:30 -0700
1405 Apply http://www.gw.com/mail/mh/patches/solaris/content_length to
1406 your MH distribution and add the configuration option
1407 "CONTENT_LENGTH". It also includes the si_ fix in
1409 http://www.gw.com/mail/mh/patches/solaris/si_value_2.3
1411 ------------------------------
1413 Subject: 02.11 How can I build MH on HP-UX?
1414 From: Bill Wohler <wohler at newt.com>
1415 Date: Sun, 8 Sep 1996 15:50:54 -0700
1417 If you find that your zotnet/tws directory isn't compiling, upgrade
1418 your MH (see "What is the current version/status of MH?") which
1419 includes fixes to lexedit.sed.
1421 See http://www.gw.com/mail/mh/patches/hp/ for for patches you may need.
1423 ------------------------------
1425 Subject: 02.12 Can I prevent adding the local hostname to addresses behind firewalls?
1427 From: Ted Remillard <tedr at hood.sd.com>
1428 Date: 24 Jun 1996 08:53:42 -0700
1430 You can get MH to stop managing the headers and let the email server
1431 to do it. To do this, build MH with the options DUMB and REALLYDUMB.
1432 In the $MHLIB/mts.conf (mtstailor) file, set the server option to
1433 the IP address of the email server. After this is done, MH sends
1434 email directly to the email server and Local email To: and From:
1435 fields just have the user's simple email address, e.g., <fred>, and
1436 the remote email From: header will contain user@domainname, e.g.,
1439 Don't forget to define the REALLYDUMB option in the file
1440 sbr/addrsbr.c described below.
1442 From: Bret Rothenberg <bretr at endeavour.exar.com>
1443 Date: Tue, 23 Jan 1996 12:25:24 -0800 (PST)
1445 Yes, use the "localname" parameter in "$MHLIB/mts.conf" (mtstailor)
1446 to specify the desired hostname.
1448 From: Ken Hornstein <kenh at cmf.nrl.navy.mil>
1449 Date: 18 Aug 1995 23:51:48 -0400
1451 If you're behind a firewall and sendmail gives you fits because MH
1452 adds the node name or site name to each address in the To: and CC:
1453 fields, you'll need to modify the MH source.
1455 The relevant source has to do with the REALLYDUMB option in
1456 sbr/addrsbr.c. Essentially what you need to do is set it up so
1457 REALLYDUMB is turned on (normally, it's turned off if you have MMDF
1458 or SMTP turned on). This will do what you want. I did this at our
1459 site, and it's been working great. The stuff for REALLYDUMB starts
1462 ------------------------------
1464 Subject: 02.13 Is there a patch to fix this or that?
1465 From: Kimmo Suominen <kim at tac.nyc.ny.us>
1466 Date: Sat, 3 Mar 2001 13:40:35 -0800
1468 The MH Patch Archive has been opened at
1470 http://www.gw.com/mail/mh/patches/
1472 It is a collection of patches to MH (the RAND MH Message Handling
1473 System), a set of electronic mail programs in the public domain.
1474 Since the last complete release of MH (version 6.8.3) UNIX systems
1475 have evolved making changes in the MH code necessary. Several new
1476 UNIX systems have emerged requiring new configuration templates and
1477 examples. This archive tries to collect all these fixes and
1478 enhancements that in the past have been available only through
1479 word-of-mouth and occasional reposts to newsgroups or mailing lists.
1481 The initial archive layout and the very time consuming collecting
1482 and categorizing of patches has been done by Jerry Peek.
1484 I will be the primary maintainer of the archive. Even though I will
1485 be monitoring several sources for new material (mainly the
1486 comp.mail.mh newsgroup but also the mailing lists <mh-workers at
1487 ics.uci.edu>, <mh-e-users at lists.sourceforge.net> and
1488 <exmh-workers at redhat.com>), I'd like to encourage everyone to
1489 submit patches also directly to the archive at <mh-archive at
1492 ------------------------------
1494 Subject: 02.14 How can I build MH on OS/2?
1495 From: Sanjay Aiyagari <sanjay at sandbox.snetnsa.com>
1496 Date: 21 Nov 1996 19:37:10 GMT
1498 ftp://ftp.jaist.ac.jp/pub/os/os2/network/MH/
1500 ------------------------------
1502 Subject: 02.15 Do any POP/IMAP servers handle MH format?
1503 From: "Carl S. Gutekunst" <csg at eng.sun.com>
1504 Date: 27 May 1997 07:24:34 GMT
1506 The University of Washington POP3 and IMAP servers can be backended
1507 by a variety of stores, including MH. This is the basis for
1508 Netscape's store, curiously enough. I haven't looked closely at how
1509 Mark Crispin implemented support for the new IMAP4 features when
1510 using an MH backend; it seems like there is a lot of computation
1511 when opening a folder for the first time, writing in the UID fields
1512 and such. But it basically appears to work.
1514 From: Lyndon Nerenberg <lyndon at MessagingDirect.COM>
1515 Date: 27 Jul 1999 11:36:25 -0600
1517 But [the UW IMAP server] can't delete/expunge from MH folders. (At
1518 least I've never been able to get it to work, and I've tried just
1519 about everything.) #mh in UW imapd isn't something I'd recommend to
1520 any serious MH user.
1522 From: Mark Crispin <mrc at CAC.Washington.EDU>
1523 Date: Tue, 27 Jul 1999 14:43:25 -0700
1525 > But it can't delete/expunge from MH folders.
1527 That's a very old version. delete/expunge has been in imap-4.x for a
1528 long while. However, there's no sticky flags.
1530 > #mh in UW imapd isn't something I'd recommend to any serious MH user.
1532 The converse is also true. The two don't play ball very well.
1534 From: Dieter Weber <dieter at Compatible.COM>
1535 Date: 11 Feb 2003 04:23:38 -0800
1537 The UW imap server supports MH folders. In order to see the MH
1538 mailboxes, you need to "subscribe" to the folders or add them to the
1539 .mailboxlist file in your home directory.
1541 ------------------------------
1543 Subject: 02.16 How can I build MH on Windows?
1544 From: Satyaki Das <satyaki at theforce.stanford.edu>
1545 Date: Wed, 19 Jun 2002 20:57:19 -0700
1547 I have gotten MH-E to work on Windows (under Cygwin) using Earl
1548 Hood's patched nmh. It was really quite simple, but not very
1549 portable. I just needed to add/subtract "c:/cygwin" from a couple of
1550 places. Now it can read and send mail (even does PGP attachments).
1551 Thought this might be of interest to those of you stuck using
1554 From: Earl Hood <ehood at earlhood.com>
1555 Date: Sat, 08 Jun 2002 20:30:44 GMT
1557 I've made a tar/bz2 bundle available at
1559 <http://www.nacs.uci.edu/indiv/ehood/tmp/nmh-1.0.4-ehood-cygwin.tar.bz2>
1561 This includes the patched source with binaries pre-built.
1563 I just remembered that I also had to hack the makefiles to get
1564 things to install since windoze executables have to end with .exe. I
1565 hacked the generated makefiles, so if you rerun configure, you may
1566 lose the hacks. Also, I believe the install will fail when trying to
1567 install the documentation, so to force things do:
1571 The binaries and support files should get installed (under
1572 /usr/local/nmh), but the docs probably won't.
1574 Then you will need to edit /usr/local/nmh/etc/mts.conf to reflect
1575 your local configuration.
1577 If anyone has any problems installing, I could zip up my
1578 /usr/local/nmh since I think it contains everything needed for
1581 From: Bill Goffe <goffe at oswego.edu>
1582 Date: 25 May 1999 18:13:55 GMT
1584 If you have Windows, consider looking at VMware
1586 http://www.vmware.com/
1588 which provides a virtual machine where you can run Unix and
1589 therefore MH under Windows.
1591 From: Ted Nolan <ted at ags.ga.erg.sri.com>
1592 Date: 24 May 99 17:20:27 GMT
1594 The latest Cygnus Cygwin, GNU tools that run under Windows,
1596 http://www.cygwin.com/
1598 seems to work pretty well and may well be able to build nmh.
1600 ------------------------------
1602 Subject: !02.17 How can I build MH on a Mac?
1603 From: Dr Eberhard W Lisse <el at lisse.na>
1604 Date: Sun, 05 Jun 2005 13:43:19 +0100
1606 nmh compiles on the G4 iBook running Mac OS X 10.3.7 more or less
1607 out of the box with the powerpc HOST option. Use make all install.
1609 Use fink to install the nmh package on Max OS X 10.3.9 (and 10.4.1).
1611 metamail does not work out of the box. However,
1612 metamail-2.7.19-1030.src.rpm (SuSE) which compiles and installs
1615 For exmh, first use fink to install the tcltk package. Then use fink
1618 ------------------------------
1620 Subject: 03.00 ***** Scanning & Reading *****
1621 From: Bill Wohler <wohler at newt.com>
1622 Date: Fri, 1 Mar 1991 13:03:15 -0800
1624 ------------------------------
1626 Subject: 03.01 What do I do if scan shows the wrong date?
1627 From: Bill Wohler <wohler at newt.com>
1628 Date: Fri, 1 Jan 1993 00:00:00 -0800
1630 Upgrade to MH 6.8 or nmh.
1632 From: Darryl Okahata <darrylo at sr.hp.com>
1633 Date: 19 Jan 2000 23:01:10 -0800
1635 MH 6.8.3 and nmh 1.0 still have a minor buglet where sortm doesn't
1636 always sort messages properly. If a (questionable) mail client sends
1637 messages with 2-digit years, like:
1639 Date: Sat, 23 Oct 09 22:02:01 EST
1641 or sends out buggy dates like (as buggy versions of Elm do):
1643 Date: Sat, 23 Oct 100 22:02:01 EST
1645 then sortm will not sort these messages properly.
1647 I have submitted patches to nmh-workers.
1649 ------------------------------
1651 Subject: 03.02 How would one go about reading Usenet with MH?
1652 From: Bill Wohler <wohler at newt.com>
1653 Date: Sun, 26 Nov 1995 12:32:09 -0800
1655 You can post via mail. Send your article to <mail2news at
1656 news.demon.co.uk> with a legitimate Newsgroups field.
1658 From: Jerry Peek <jpeek at jpeek.com>
1659 Date: Tue, 1 Nov 1994 00:00:00 -0800
1661 You can save articles in the news readers for later perusal with MH.
1663 First, create a symbolic link from your mail directory (e.g.,
1664 usenet) to your news directory (e.g., "ln -s ~/News ~/Mail/usenet").
1665 You can then treat your news directory as a mail folder. Thus, to
1666 select a news group, use "folder +usenet/comp/mail/mh".
1668 To set the default save location correctly in rn, use:
1672 or in your nn presentation sequence:
1674 news.announce. +$F/$N
1679 If there's news spooled on your machine (that is, not via NNTP) then
1680 you can read a newsgroup with commands like:
1682 show first +/usr/spool/news/comp/mail/mh
1686 You can also use sequences to keep track of what you've read. MH
1687 will automatically set a "cur" sequence in each newsgroup you read
1688 that way. So, to continue reading the newsgroup sometime later,
1689 after you've read some other folder, you can do:
1691 next +/usr/spool/news/comp/mail/mh
1693 and you'll read the next (new) article (if any) in that newsgroup.
1695 Note that this can eventually make your private context file pretty
1696 huge; if there's a group you don't read often, you can remove its
1697 context entries with a command like:
1699 rmf +/usr/spool/news/comp/mail/mh
1701 Don't try that on a folder full of mail (a folder that isn't
1702 read-only), though... in that case, it'll remove all the messages!
1704 I haven't looked into posting. It seems like it shouldn't be hard.
1705 You could set up a "sendproc" that would look at outgoing email
1706 messages. If the message had a Newsgroups: header field, your
1707 sendproc could call inews(1) instead of post(8). I haven't seen much
1708 in the MH manpages or documentation about sendprocs (though I
1709 haven't looked for a couple of years...). See the "mysend" script in
1710 the MH book section 7.1.4 (13.13), or the URL:
1712 http://rand-mh.sourceforge.net/book/mh/senove.html#ASAtDm
1714 A threaded news reader like trn or tin is so much nicer, though,
1715 that reading news with MH may not be worth the hassle.
1717 See also MH book section 9.9 (8.7), or the URL:
1719 http://rand-mh.sourceforge.net/book/mh/shafol.html
1721 From: Stephen Gildea <gildea at stop.mail-abuse.org>
1722 Date: Fri, 1 Mar 1991 13:03:15 -0800
1724 Although news readers are better, if one really wants to use MH, bbc
1725 will do the job. For example, "bbc comp.mail.mh" reads this
1726 newsgroup. To enable bbc, you have to specify "bboards" when you
1729 From: Kimmo Suominen <kim at tac.nyc.ny.us>
1730 Date: 15 Aug 1996 18:18:10 GMT
1732 Sendmail v8 comes with MAILER(pop) which was written for the MH
1733 spop. Since I use bboards with NNTP, I never looked at the bboards
1736 Date: Tue, 1 Nov 1994 00:00:00 -0800
1738 See mhunify in (see also "What other MH software is available?").
1740 ------------------------------
1742 Subject: 03.03 How can I search through multiple folders?
1743 From: Jerry Peek <jpeek at jpeek.com>
1744 Date: Mon, 1 Mar 1993 00:00:00 -0800
1746 Recurse through the folders (in csh and sh):
1748 % foreach f (`folders -f`) $ for f in `folders -f`
1749 ? pick [switches] +$f > pick [switches] +$f
1752 Or create a folder that contains links to all messages (in csh and sh):
1754 % foreach f (`folders -f | grep -v -x ln`)
1755 ? refile -src +$f -link all +ln
1758 $ for f in `folders -f | grep -v -x ln`
1759 > do refile -src +$f -link all +ln
1762 and in the future, refile messages with "refile +folder +ln". To
1763 find something, use:
1765 % pick [switches] +ln
1767 See MH book sections 8.2.9 (7.2.9), 8.9.3 (7.8.3), or the URLs:
1769 http://rand-mh.sourceforge.net/book/mh/finpic.html#SeMTOnFo
1770 http://rand-mh.sourceforge.net/book/mh/usilin.html#AFoFuoLi
1772 ------------------------------
1774 Subject: 03.04 Why don't MH format commands such as %(friendly) work?
1775 From: Anthony Baxter <anthony at aaii.oz.au>
1776 Date: Sun, 1 May 1994 00:00:00 -0800
1778 The BERK option disables address parsing and therefore functions
1779 such as %(friendly). Recompile MH without the BERK option.
1781 ------------------------------
1783 Subject: 03.05 Why doesn't "show" display all of a MIME message?
1784 From: Jerry Peek <jpeek at jpeek.com>
1785 Date: Mon, 1 Aug 1994 00:00:00 -0800
1787 It's not the fault of the "show" command or of MH in general. It's
1788 your system's configuration. Check the $MHLIB/mhn.defaults
1789 (mhn_defaults) file; if it doesn't have defaults for all content
1790 types, add them. Or, if you can't (or shouldn't) change mhn.defaults
1791 (mhn_defaults), you can put default entries in your MH profile file
1792 for those content types.
1794 Here's the part of the mhshow(1) (mhn(1)) manpage that explains how
1795 content types are handled. The example is for mhshow, but if you're
1796 using mhn, you'd replace mhshow with mhn:
1798 First, mhshow will look for an entry of the form:
1800 mhshow-show-<type>/<subtype>
1802 to determine the command to use to display the content. If this
1803 isn't found, mhshow will look for an entry of the form:
1807 to determine the display command. If this isn't found, mhshow has
1810 mhshow-show-text/plain: %pmoreproc '%F'
1811 mhshow-show-message/rfc822: %pshow -file '%F'
1813 If neither apply, mhshow will check to see if the message has a
1814 application/octet-stream content with parameter "type=tar". If so,
1815 mhshow will use an appropriate command. If not, mhshow will
1818 So, add defaults that cover the types MH doesn't handle right now
1819 (or doesn't handle the way you want it to). Your defaults will
1820 override corresponding defaults in the $MHLIB/mhn.defaults
1821 (mhn_defaults) file. For example, if you don't have an HTML
1822 editor/browser on your system, you could tell MH to use the "less"
1823 paginator for HTML message parts:
1825 mhshow-show-text/x-html: less %F
1827 You can put that line in your MH profile.
1829 You can even set different defaults for different terminal types
1830 (say, your VT100 at home and your X setup at work). Make a file in
1831 the same format as mhn.defaults (mhn_defaults); store its pathname
1832 in the MHSHOW (MHN) environment variable. Add a test to your shell
1833 setup file (.bash_profile, .profile, .login) that tests the value of
1834 the TERM variable -- and, if you have an mhshow (mhn) setup file for
1835 that terminal type, store its pathname in the MHSHOW (MHN) variable.
1837 See also MH book sections 6.2.3, 9.4.4, 9.4.5, or the URLs:
1839 http://rand-mh.sourceforge.net/book/mh/remime.html#HomhShMe
1840 http://rand-mh.sourceforge.net/book/mh/confmhn.html#ShComhsh
1841 http://rand-mh.sourceforge.net/book/mh/confmhn.html#DiOChSmc
1843 From: Michael K. Neylon <mneylon at engin.umich.edu>
1844 Date: Tue, 1 Nov 1994 00:00:00 -0800
1846 If you are not using the X Window System, you may have to add this
1847 line to your MH profile:
1849 mhshow-charset-iso-8859-1: /bin/sh -c '%s' # nmh
1850 mhn-charset-iso-8859-1: /bin/sh -c '%s' # MH
1852 ------------------------------
1854 Subject: 03.06 Can I get show not to run "less" so much on MIME messages?
1855 From: Richard Coleman <coleman at math.gatech.edu>
1856 Date: Tue, 20 Jan 1998 02:19:58 -0500
1858 On nmh, you can do this just by "show -nocheckmime". This will
1859 disable the detection of MIME messages.
1861 From: Bill Wohler <wohler at newt.com>
1862 Date: Tue, 1 Nov 1994 00:00:00 -0800
1864 If you say, "show all," and one of the messages was a MIME message,
1865 your pager will be run several times on each message, rather than
1866 once on all the messages as a whole. If you find this annoying, set
1867 the environment variable NOMHNPROC:
1869 % setenv NOMHNPROC "" # csh
1870 $ NOMHNPROC= # sh and bash
1873 See also MH book sections 6.2.3, 6.2.10, or the URLs:
1875 http://rand-mh.sourceforge.net/book/mh/remime.html#HomhShMe
1876 http://rand-mh.sourceforge.net/book/mh/remime.html#Alttomhn
1878 ------------------------------
1880 Subject: 03.07 Why do I get "mhn: don't know how to display content"?
1881 From: Richard Coleman <coleman at math.gatech.edu>
1882 Date: Tue, 20 Jan 1998 02:19:58 -0500
1884 This has already been fixed in nmh.
1886 From: Keith Moore <moore at cs.utk.edu>
1887 Date: Sun, 8 Sep 1996 15:49:50 -0700
1889 MH 6.8.3 has a bug where it will not handle multipart/foo correctly
1890 if it doesn't know about foo. The patch:
1892 http://www.gw.com/mail/mh/patches/all/mhn_multipart
1894 tells it to treat such things as if they were multipart/mixed.
1896 (See also "Why doesn't "show" display all of a MIME message?").
1898 ------------------------------
1900 Subject: 03.08 How can I automatically delete MH backup files?
1901 From: mccammaa at expt05.stp.xfi.bp.com (Andy McCammont)
1902 Date: 22 May 1995 06:27:36 -0400
1904 On System V system, add this to your crontab. If you don't have one,
1905 put this in a file, and run "crontab file". If your system does not
1906 support personal crontab files, get your system administrator to add
1907 an equivalent line to the system crontab file or daily clean-up
1908 script. Note that some administrators set the prefix character to
1911 # Remove old MH files
1912 5 5 * * * find /PATH/TO/HOME/Mail -name ",*" -mtime +5 -exec rm {} \;
1914 ------------------------------
1916 Subject: 03.09 Fixing "cannot fopen and lock /var/spool/mail/(user)"
1917 From: Patrick.Wambacq at esat.kuleuven.ac.be
1918 Date: Mon, 30 Sep 96 15:00:16 +0200
1920 One should put the following lines in the $MHLIB/mts.conf
1926 This prevents MH from using kernel level locking, and uses lock
1927 files instead. It solved the problem for me on two different
1928 architectures. When the lockldir entry is left empty as above, the
1929 lock file is put in the same directory as the file to be locked. If
1930 another directory is wanted, its name should be put here.
1932 From: alhy at MAILBOX.SLAC.Stanford.EDU
1933 Date: Mon, 9 Sep 1996 01:01:16 -0700
1935 Often, this is caused by an NFS file lock. Don't ask me how it got
1936 there in the first place. To remove the file lock, do the following:
1938 # cd /var/spool/mail
1939 # cp user /tmp/user.tmp; rm user # save mail; remove locked file
1940 # chown user /tmp/user.tmp # allow user to inc old mail
1942 user% inc -file user.tmp # incorporate user's old mail
1944 Any mail that you receive in the fraction of a second that the
1945 second set of commands takes will be lost.
1947 (See also "Why does inc hang (on Sun)?")
1949 ------------------------------
1951 Subject: 03.10 Can I read my mail with a Web browser?
1952 From: Jerry Heyman <jerry@fourwinds.cx>
1953 Date: Sat, 09 Oct 2004 12:41:03 -0400
1955 See http://www.squirrelmail.org/
1957 SquirrelMail is a standards-based webmail package written in PHP4.
1958 It includes built-in pure PHP support for the IMAP and SMTP
1959 protocols, and all pages render in pure HTML 4.0 (with no
1960 JavaScript required) for maximum compatibility across browsers. It
1961 has very few requirements and is very easy to configure and
1962 install. SquirrelMail has all the functionality you would want
1963 from an email client, including strong MIME support, address
1964 books, and folder manipulation.
1966 No MH support. Unless you're willing to write it...
1968 From: J C Lawrence <claw at kanga.nu>
1969 Date: Wed, 10 Dec 2003 09:54:15 -0500
1971 UW-imap can read MH folders although it doesn't maintain sequence
1972 files properly. Drop any of the IMAP web front ends in front of
1975 From: aeriksson at fastmail.fm
1976 Date: Wed, 10 Dec 2003 22:36:52 +0100
1978 Have a peek at http://wmh.sf.net/. It's been a while since I worked
1979 on it, but it does give me what I need.
1981 Date: Mon, 05 Oct 1998 11:02:52 -0500
1982 From: Kent Landfield <kent at nfr.net>
1984 Hypermail now supports MIME and alternate mailbox formats and sorts
1985 by author, date, and thread and can be read by a WWW reader.
1987 http://www.landfield.com/hypermail/
1989 From: "Patrick A. Coronato" <coronato at me216.teb.allied.com>
1990 Date: 8 Sep 1995 16:36:03 GMT
1992 MHonArc, by Earl Hood from Convex, will read MH mailboxes as well as
1993 Unix mailboxes, create HTML "archives" and will also sort by date,
1994 thread and author and has support for MIME. Also, MHonArc is written
1995 in the Perl language. (You should go to this site if nothing more
1996 than to see the cool logo!)
1998 http://www.mhonarc.org/
2000 ------------------------------
2002 Subject: 03.11 How can I run inc automatically with POP?
2003 From: Bill Wohler <wohler at newt.com>
2004 Date: Mon, 27 Nov 1995 12:23:51 -0800
2006 If MH has been compiled with RPOP, then the POP server host either
2007 needs to have your host in /etc/hosts.equiv or in your .rhosts file.
2008 Then add to your MH profile:
2012 given that "cuckoo" is the name of the your POP server.
2014 From: Andy Norman <ange at hplb.hpl.hp.com>
2015 Date: Mon, 1 May 1995 00:00:00 -0800
2017 Assuming your POP server is called cuckoo, add an entry to your MH
2018 profile for 'inc' like so:
2020 inc: -noaudit -norpop -noapop -host cuckoo
2022 Add the following to ~/.netrc and ensure it is readable only by you
2023 (e.g., chmod 600 .netrc):
2025 machine cuckoo.domain.name login joeuser password secret
2027 Replace the hostname, login and password with your own, of course.
2028 The hostname probably has to be fully qualified (i.e., include the
2029 full domain name). This example assumes that you can send mail by
2030 other means (e.g., with SMTP).
2032 ------------------------------
2034 Subject: 03.12 Why does inc hang (on Sun)?
2035 From: ericding at mit.edu (Eric J. Ding)
2036 Date: 30 Apr 1996 00:22:01 -0400
2038 This may be due to a non-robust implementation of lockf() over NFS.
2039 Try setting lockstyle to 1 in the $MHLIB/mts.conf (mtstailor) file
2040 so that MH uses dotfile locking rather than FLOCK or LOCKF.
2042 ------------------------------
2044 Subject: 03.13 How can I get POP to work?
2045 From: Jonathan George <jmg at hpopd.pwd.hp.com>
2046 Date: Tue, 23 Apr 1996 10:23:16 GMT
2048 If you get the error:
2050 inc: -ERR Unknown command: "rpop"
2052 you're trying to use "rpop" as the mechanism to authenticate the
2053 user. This mechanism is specified in RFC 1225 and then removed by
2056 Your POP server is (rightly) rejecting this.
2058 The POP specification (RFC 1939) states that authentication is done
2059 either via a USER/PASS pair or via the APOP command.
2061 Try running inc with -noapop -norpop flags.
2063 ------------------------------
2065 Subject: 03.14 How do I persuade mhshow (mhn) not to bring up a new window?
2066 From: Joel Reicher <joel at panacea.null.org>
2067 Date: Tue, 13 Nov 2001 16:49:04 +1100
2069 I personally think [the solution below] is not the right solution.
2070 There's a reason that new window is opened--to ensure the correct
2071 characters are available. The "right" solution is surely to set the
2072 MM_CHARSET env var to iso-8859-1 and make the appropriate
2073 adjustments to the pager (in the case of less, setting
2074 LESSCHARSET=latin1).
2076 From: Larry Daffner <ldaffner at convex.com>
2077 Date: 27 Mar 1996 16:53:39 -0600
2079 Add one of the following to your .mh_profile:
2081 mhshow-charset-iso-8859-1: %s # nmh
2082 mhn-charset-iso-8859-1: %s # MH
2084 ------------------------------
2086 Subject: 03.15 How do I turn off of all the mhshow (mhn) prompts?
2087 From: Bill Wohler <wohler at newt.com>
2088 Date: Sun, 11 Mar 2001 11:33:10 -0800
2090 In nmh, use mhshow -nopause.
2092 From: Larry Daffner <ldaffner at convex.com>
2093 Date: 27 Mar 1996 16:53:39 -0600
2095 The "part xxx" message is controlled by the -list switch to mhn so
2096 add "mhn: -nolist" to your .mh_profile. To remove the pause, add an
2097 entry for "mhn-show-text/plain: more '%F'" to override the default
2098 which includes the "%p" escape. All of this is covered in the mhn
2099 man page (sort of--you need to add 2+2). It's a bit long, but well
2102 ------------------------------
2104 Subject: 03.16 Why is inc splitting messages improperly?
2105 From: Mayank Choudhary <micky at eng.sun.com>
2106 Date: Mon, 29 Apr 1996 09:39:29 -0700
2108 MH considers "From " lines as message separators, so if this string
2109 is found within the body, inc splits the message.
2111 Add the following line to your .forward
2113 "|/usr/bin/mailcompat <user-name>"
2115 where user-name is your login-id.
2117 See mailcompat(1) for more information.
2119 ------------------------------
2121 Subject: 03.17 Can MH thread messages?
2122 From: "John W. Coomes" <jcoomes at delirius.cs.uiuc.edu>
2123 Date: 30 Apr 1997 13:02:10 -0500
2125 Sort of. You can resort your folders by Subject with:
2127 sortm -textfield subject
2129 ------------------------------
2131 Subject: 03.18 How can I avoid reading the HTML version of the message?
2132 From: Bill Wohler <wohler at gbr.newt.com>
2133 Date: 23 Jun 2000 10:19:34 -0700
2135 You might find that you have two versions of the same message within
2136 the message. For example, one part might have a content type of
2137 text/plain and the other might be text/html.
2139 You may find that mhshow (mhn -show) wants to show the HTML version
2140 This is a feature of the multipart/alternative content type. If you
2141 prefer reading the the plain text version over the HTML version,
2142 you'd have to remove the line in $MHLIB/mhn.defaults or
2143 ~/.mh_profile that starts with mhshow-show-text/html
2144 (mhn-show-text/html). Of course, the tradeoff is that you'd never be
2145 able to view text/html at all, but you probably wouldn't care.
2147 ------------------------------
2149 Subject: 03.19 How do I view or save attachments?
2150 From: Bill Wohler <wohler at gbr.newt.com>
2151 Date: Mon, 5 Mar 2001 09:12:15 -0800
2153 Use mhshow (mhn -show) and mhstore (mhn -store) respectively. See
2154 the man pages for more details.
2156 ------------------------------
2158 Subject: 03.20 How do I view HTML attachments with Netscape?
2159 From: Bill Wohler <wohler at gbr.newt.com>
2160 Date: Mon, 5 Mar 2001 09:58:05 -0800
2162 Add one of the following to ~/.mh_profile:
2164 mhshow-show-text/html: %lnetscape -remote 'openURL(file:%f, new-window)'
2165 mhn-show-text/html: %lnetscape -remote 'openURL(file:%f, new-window)'
2167 The % escapes are described in the mhshow (mhn) man page. The ",
2168 new-window" argument in the netscape invocation is optional, but
2169 handy. After reading the message, you can dismiss the window with
2170 M-w and go back to reading mail.
2172 ------------------------------
2174 Subject: 03.21 Fixing folders: unable to allocate storage for msgstats
2175 From: Pete Phillips <pete at smtl.co.uk>
2176 Date: 30 Jan 2003 03:33:57 -0800
2178 I found the following in my context file:
2183 For some reason folders doesn't like this. Whether it's because of
2184 permission problems or just the size of my tmp directory (about 3/4
2185 of a GB) I don't know, but removing these lines from my context file
2188 ------------------------------
2190 Subject: 03.22 How do I recursively list message attachments?
2191 From: Joel Reicher <joel at panacea.null.org>
2192 Date: 31 Oct 2001 00:36:14 +1100
2194 I haven't quite managed a recursive listing, but I have worked out a
2195 recursive store, which is still useful. Hinted by a builtin display
2196 string for mhshow, I found the following works for mhstore:
2198 mhstore-store-message/rfc822: | mhstore -file -
2200 With that, mhstore will happily recurse down storing everything on
2201 its way. Not very discriminate, but the line can be altered to limit
2202 without destroying the recursion:
2204 mhstore-store-message/rfc822: | mhstore -auto -type message/rfc822 -type image/jpeg -file -
2206 which also names the files automatically for good measure.
2208 And, FWIW, I engage this by putting it in a separate file and
2209 invoking mhstore like
2211 env MHSTORE=mhn.rec mhstore
2213 ------------------------------
2215 Subject: 03.23 Why do folder and flist overlook some of my sub-folders?
2216 From: Richard Coleman <coleman at math.gatech.edu>
2217 Date: Mon, 10 Oct 2005 18:14:24 -0700
2219 There was a bug in these commands which caused them to quit
2220 searching a folder for sub-folders too early if the folder contained
2221 sub-folders which were symbolic links. This has been improved in
2222 nmh-0.25, but folder and flist will still not recurse into folders
2223 that contain only symbolic links.
2225 ------------------------------
2227 Subject: 04.00 ***** Filing *****
2228 From: Bill Wohler <wohler at newt.com>
2229 Date: Fri, 1 Mar 1991 13:03:15 -0800
2231 ------------------------------
2233 Subject: 04.01 Can I append MH messages to a Unix mailbox format file?
2234 From: Richard Coleman <coleman at math.gatech.edu>
2235 Date: Tue, 20 Jan 1998 02:19:58 -0500
2237 In nmh, use packf instead.
2239 From: Bill Wohler <wohler at newt.com>
2240 Date: Fri, 1 Jan 1993 00:00:00 -0800
2242 Yes, see $MHLIB/packmbox.
2244 ------------------------------
2246 Subject: 04.02 Can I append MH messages to a GNU Emacs rmail BABYL-format file?
2247 From: Bill Wohler <wohler at newt.com>
2248 Date: Fri, 1 Mar 1991 13:03:15 -0800
2250 To convert your MH folders to BABYL folders, first run the following
2251 script on your Mail directory.
2258 folder=`basename $f`
2259 echo -n packing $folder ...
2262 mv msgbox Mail-rmail/$folder
2266 This assumes you don't have nested folders. Your rmail folders will
2267 be left in $HOME/Mail-rmail in MMDF format which rmail can read.
2268 Then run rmail-input for each folder, which converts each folder
2271 Be sure not to append any messages before they are converted from
2272 MMDF to BABYL, since there may be really strange results.
2274 ------------------------------
2276 Subject: 04.03 Why do I get ".../.mh_sequences is poorly formatted?"
2277 From: Richard Coleman <coleman at math.gatech.edu>
2278 Date: Tue, 20 Jan 1998 02:19:58 -0500
2280 This bug has been fixed in nmh (as of version 0.20). There are no
2281 limitations on the length of an entry in the .mh_sequences file.
2283 From: Jerry Peek <jpeek at jpeek.com>
2284 Date: Mon, 1 Aug 1994 00:00:00 -0800
2286 There is a line length limit in this file. When sequences are
2287 unbroken (without gaps in numbering), that makes short entries in
2288 the .mh_sequences file, like this:
2292 But when there are lots of numbering gaps, the entry gets long:
2294 inftex: 76 79-81 87 95-96 105 109 120 124 135 141 158 163...
2296 That's when you run into problems, and why it's good to keep the
2297 folder packed when you can. Simply run "folder -pack +folder".
2299 If you're refiling a lot of messages in a large folder, you might
2300 not be able to use sequences. Use backquotes to give the message
2301 numbers directly to "refile". For example:
2303 refile +tex/info-tex `pick -to info-tex`
2305 That can still generate a long list of arguments to the "refile"
2306 command, and some Unixes can't handle that. In that case, use
2309 pick -to info-tex | xargs refile +tex/info-tex
2311 If worse comes to worst, fire up a Bourne shell and use a "while"
2314 pick -to info-tex | fmt | while read nums; do
2315 refile +tex/info-tex $nums
2318 The fmt(1) command breaks long lines into manageable chunks of 72
2319 characters or so, splitting arguments at whitespace. When you
2320 redirect the input of a while loop, a "read" command will read the
2321 incoming text and store it in a shell variable line by line. This is
2322 a quick-&-dirty way to write xargs(1) if you don't have it.
2324 ------------------------------
2326 Subject: 04.04 How can you save News articles into an MH folder?
2327 From: Jerry Peek <jpeek at jpeek.com>
2328 Date: Mon, 1 May 1995 00:00:00 -0800
2330 If your newsreader handles backquotes on its command line, you can
2331 use the mhpath command. For instance, if your "save" command is "s":
2333 s `mhpath new +somefolder`
2335 Or if your newsreader lets you define your own commands, as in shell
2336 aliases, you could define that as a command.
2338 If your newsreader can pipe an article to the standard input of a
2339 program, use the "rcvstore" command (in the MH library). For
2340 instance, if your "pipe" command is "|":
2342 | $MHLIB/rcvstore +somefolder
2344 Of course, you can also put that in a little shell script.
2346 ------------------------------
2348 Subject: !04.05 Are there any good tools to archive MH messages?
2349 From: Bill Wohler <wohler at newt.com>
2350 Date: Sun, 23 Sep 2007 18:35:53 -0700
2352 For those of lesser means, I have three shell scripts for archiving,
2353 seeking, and extracting MH messages that I had been using for a
2354 couple of decades. Send mail if interested.
2356 However, now that disk space is cheap and one can index years worth
2357 of mail in a minute or two, I haven't run those scripts in a few
2358 years. I intend to update them to index and archive a years-worth of
2361 Since glimpse is no longer free (as in speech), I've switched to
2362 swish++. Other indexing tools (which are also compatible with MH-E)
2363 include mairix and namazu.
2365 From: glimpse at cs.arizona.edu
2366 Date: Sun, 4 Mar 2001 10:26:24 -0800
2368 Glimpse is a very powerful indexing and query system that allows you
2369 to search through all your files very quickly. It can be used by
2370 individuals for their personal file systems as well as by
2371 organizations for large data collections.
2373 http://www.webglimpse.org/
2375 ------------------------------
2377 Subject: 04.06 How can I remove duplicate messages?
2378 From: Bill Wohler <wohler at newt.com>
2379 Date: Sun, 17 Oct 2004 13:04:57 -0700
2381 Don't let them get in there in the first place. Add the following to
2385 * ? formail -D 16384 $PM_CACHE/msgid
2388 If it's too late, you might be interested in mhfinddup, attached
2389 below, which is an embellishment of the Perl script in (see
2390 "Removing duplicate messages (Perl)").
2392 From: Jerry Peek <jpeek at jpeek.com>
2393 Date: 20 Nov 1995 18:51:24 GMT
2395 The easiest way I know of is to sort the folder by the Message-ID
2396 field using the sortm(1) command.
2398 After the sort, each message should be next to its duplicates in the
2399 folder. Use a script (shell, Perl, etc.) to weed out the duplicates.
2400 (See "Removing duplicate messages (Bourne)").
2402 The Perl script in (see "Removing duplicate messages (Perl)") does
2403 not require that you first sort the folder.
2405 ------------------------------
2407 Subject: 04.07 How can I remove holes in numbering?
2408 From: Bill Wohler <wohler at newt.com>
2412 ------------------------------
2414 Subject: 05.00 ***** Composing & Replying *****
2415 From: Bill Wohler <wohler at newt.com>
2416 Date: Fri, 1 Mar 1991 13:03:15 -0800
2418 ------------------------------
2420 Subject: 05.01 Why does repl add a "Re:" to a message that already has one?
2421 From: Larry McVoy <lm at slovax.Eng.Sun.COM>
2422 Date: Fri, 1 Mar 1991 13:03:15 -0800
2424 I carefully reconfigured and rebuilt MH from scratch and the problem
2427 ------------------------------
2429 Subject: 05.02 How do I include messages in repl with or without ">"?
2430 From: Richard Coleman <coleman at math.gatech.edu>
2431 Date: Tue, 20 Jan 1998 02:19:58 -0500
2433 In nmh, to include a message in a reply with a leading ">", just use
2436 From: Alan Thew <qq11 at liv.ac.uk>, Mike Schwager <schwager at cs.uiuc.edu>,
2437 James T Perkins <jamesp at sp-eug.com>
2438 Date: Fri, 1 Jan 1993 00:00:00 -0800
2440 When making a reply, specify a filter file on the command line:
2442 repl -filter repl.format
2444 This filter file must be in your MH mail directory (usually "Mail",
2445 in your home directory). Here are a couple of example repl.format
2448 overflowtext="",overflowoffset=0
2449 message-id:nocomponent,formatfield=\
2450 "In message %{text}, you wrote:"
2451 body:component="> ",overflowtext="> ",overflowoffset=0
2455 overflowtext="",overflowoffset=0
2456 date:component="Your message dated",formatfield=\
2457 "%<(nodate{text})%{text}%|%(pretty{text})%>"
2458 body:component="> ",overflowtext="> ",overflowoffset=0
2460 Setting overflowoffset to 0 keeps MH from doing anything to
2461 extra-long lines in the headers. In the body, however, this behavior
2462 is overridden so that long lines are automatically broken and a ">"
2463 is inserted before every line. You could put almost whatever you
2464 want between those quotes, although the "standard" ">" makes it
2465 easier to read notes that have been included several times. The
2466 examples differ with the descriptive text that is inserted before
2469 It is suggested not to use the "prompter" editor in this case, since
2470 it is likely that you'll not want to use all of the included
2471 message. Indeed, it is proper etiquette to edit out all unnecessary
2472 include verbiage so readers don't have to wade through the morass to
2473 read your pearls of wisdom.
2475 WARNING: the '>' appears on the first line ONLY in versions prior to
2476 6.7.2. Upgrade to MH 6.8.
2478 See also MH book sections 7.8.4 (6.7.4), 7.8.5 (6.7.5), 10.4.1
2479 (9.4.1), or the URLs:
2481 http://rand-mh.sourceforge.net/book/mh/reprep-2.html#ReaEdi
2482 http://rand-mh.sourceforge.net/book/mh/reprep-2.html#Inc
2483 http://rand-mh.sourceforge.net/book/mh/verrep.html#IncRep
2485 ------------------------------
2487 Subject: 05.03 How can I eliminate duplicate copies of letters to myself?
2488 From: Bill Wohler <wohler at newt.com>
2489 Date: Fri, 1 Mar 1991 13:03:15 -0800
2491 Add these two lines to your MH profile file:
2493 Alternate-Mailboxes: user@host1, user@host2, ...
2496 The Alternate-Mailboxes also tells scan which messages are really
2497 from you so that it can place the recipient in the scan line instead
2500 From: Jerry Peek <jpeek at jpeek.com>
2501 Date: Fri, 1 Mar 1991 13:03:15 -0800
2503 To get one copy, you can either:
2505 - Take out the "-nocc me"... then you'll get exactly one copy of
2506 your replies (assuming all your addresses are listed in
2507 Alternate-Mailboxes), or
2509 - (See also "How can I save a copy of all messages I send?").
2511 For more info, see the man pages comp(1), repl(1), forw(1),
2512 dist(1) and mh-mail(5).
2514 See also MH book sections 7.8.2 (6.7.2), 9.8 (8.6), or the URLs:
2516 http://rand-mh.sourceforge.net/book/mh/reprep-2.html#Sel
2517 http://rand-mh.sourceforge.net/book/mh/defmai.html
2519 From: Alec Wolman <wolman at crl.dec.com>
2520 Date: Fri, 1 Mar 1991 13:03:15 -0800
2522 Listing the name of a mailing list in Alternate-Mailboxes is also a
2523 convenient way to AVOID automatically cc-ing a mailing list when
2524 replying to a person who sent the message to the mailing-list.
2526 From: Andre Srinivasan <asriniva at us.oracle.com>
2527 Date: Fri, 24 Jan 1997 09:33:19 -0800
2529 Rather than specify the hostname as part of the mailbox, you can
2530 simply specify the username and it will match on any host:
2532 Alternate-Mailboxes: asriniva
2534 ------------------------------
2536 Subject: 05.04 How can I include my signature?
2537 From: Eric W. Ziegast <ziegast at uunet.uu.net>,
2538 Hardy Mayer <hardy at golem.ps.uci.edu>
2539 Date: Tue, 1 Nov 1994 00:00:00 -0800
2541 There are several ways.
2545 1a) In your Mail directory, create files that include your signature
2546 into the format of the message.
2555 Eric Ziegast ziegast at uunet.uu.net
2556 UUNET Technologies uunet!ziegast
2559 body:component="> ",compwidth=2
2561 :Eric Ziegast ziegast at uunet.uu.net
2562 :UUNET Technologies uunet!ziegast
2564 To use the replfmt file, add the following to your ~/.mh_profile:
2566 repl: -filter replfmt
2568 When comp is used, your signature is already there along with my
2569 headers. When repl is used, the mhl program takes the body of
2570 the letter you're replying to, prepends '> ' to each line and
2571 then adds your signature at the end (available after version
2574 1b) Create an "editor" which can be called from whatnow to add the
2575 signature when desired or create a frontend to post (use the
2576 .mh_profile line "postproc: postproc" to call it) that always
2577 appends the .signature file before calling post to mail the
2578 message. David J. Fiander <david at golem.uucp>, David A.
2579 Truesdell <truesdel at nas.nasa.gov> and Tom Wilmore <sastjw at
2580 unx.sas.com> have sample scripts to do these.
2582 From: Jerry Peek <jpeek at jpeek.com>
2583 Date: Tue, 1 Sep 1992 00:00:00 -0800
2585 1c) mysend, a sendproc script, processes a message after "What now?
2586 send". See "What references exist for MH" to see where the MH
2587 book scripts can be ftped from. The script is explained in MH
2588 book Section 7.1.4 (13.13), or the URL:
2589 http://rand-mh.sourceforge.net/book/mh/senove.html#ASAtDm
2591 2) Using your editor. If you use vi, you can use something like:
2593 map S :r ~/.signature
2595 to load your signature out of .signature every time you
2598 3) Use your windowing system. xterm, for example, can provide key
2599 and button mappings for the utterly lazy.
2601 4) If you use Emacs with MH-E:
2603 4a) C-c C-s will append the signature.
2605 From: Andre Srinivasan <andre at neuronet.pitt.edu>
2606 Date: Mon, 1 May 1995 00:00:00 -0800
2608 4b) Add the following to your .emacs file:
2610 (add-hook 'mh-compose-letter-function
2614 (goto-char (point-max))
2616 (mh-insert-signature)))))
2618 This hook is called after the draft buffer has been initialized,
2619 but before you have a chance to type anything.
2621 From: Tom Christiansen <tchrist at perl.com>
2622 Date: Tue, 1 Nov 1994 00:00:00 -0800
2624 Tired of the same old signature? Want different signatures for
2625 different newsgroups? Here's a program to help you out.
2627 The way it works is to have .signature be a named pipe, so if you
2628 don't have named pipes, just say 'n'.
2630 The sigrand program then feeds stuff down the pipe every time
2631 someone wants to read it. That way it works for more than just news,
2632 but for anything that wants to read your .signature, like a mailer.
2634 You have your choice of three kinds of signatures:
2636 1) random (short) fortune from "fortune -s"; you get these if
2637 you don't have a global sig file.
2638 2) random fortune from ~/News/SIGNATURES [global sig file]
2639 3) random fortune form ~/News/(newsgroup)/SIGNATURES [local sig files]
2641 Send mail if interested.
2643 Date: Tue, 1 Nov 1994 00:00:00 -0800
2645 See also the Signature FAQ (see "What references exist for MH?").
2647 ------------------------------
2649 Subject: 05.05 How do I call my editor with arguments?
2650 From: John Romine <jromine at ics.uci.edu>
2651 Date: Mon, 1 May 1995 00:00:00 -0800
2653 Set your editor (in .mh_profile) to the following shellscript.
2656 <youreditor> <yourargs> "$@"
2659 From: Ray Nickson <Ray.Nickson at comp.vuw.ac.nz>
2660 Date: Fri, 1 Mar 1991 13:03:15 -0800
2662 You might find it useful to make <youreditor> $EDITOR, or to use
2663 different arguments depending on your EDITOR environment variable.
2665 ------------------------------
2667 Subject: 05.06 How can I digestify messages in a folder for mail to another user?
2668 From: Jerry Peek <jpeek at jpeek.com>, Bill Wohler <wohler at newt.com>
2669 Date: Fri, 1 Mar 1991 13:03:15 -0800
2673 forw [-digest tmp] [-form forwcomps] [-filter mhl.digest]
2676 These messages can be un-digestified :-) by the MH burst(1) program.
2678 See also MH book sections 7.9.7 (6.8.7), 8.10 (7.9), or the URLs:
2680 http://rand-mh.sourceforge.net/book/mh/forfor-2.html#CreDig
2681 http://rand-mh.sourceforge.net/book/mh/burdig.html
2683 From: Glenn Vanderburg <glv at utdallas.edu>
2684 Date: Tue, 1 Nov 1994 00:00:00 -0800
2686 There's another way, which is better if the recipient understands
2689 forw -mime messages +folder
2691 (Make sure that you either have "automhnproc: mhn" in your mh
2692 profile, or type "edit mhn" to whatnow before you send it.)
2694 This bundles each message in a MIME message/rfc822 part, and then
2695 bundles the whole mess up in a multipart/digest part. You can still
2696 add your own text at the beginning. The MH burst program can also
2697 understand these messages and split them apart with no problem. This
2698 works beautifully with MIME-capable mail readers, especially exmh.
2700 ------------------------------
2702 Subject: 05.07 How can I change my return address?
2703 From: Bill Wohler <wohler at newt.com>
2704 Date: Tue, 1 Dec 1992 00:00:00 -0800
2706 If you find that your mailer creates a From header that others have
2707 trouble replying to, you can add a Reply-To header to override the
2708 From header in replies.
2710 Copy the components and replcomps files which are normally found in
2711 $MHLIB into your Mail directory and add a line like the following
2712 after the Subject header replacing my address with your address:
2714 Reply-To: jack@newt.com
2716 ------------------------------
2718 Subject: 05.08 How can I change my From header?
2719 From: Bill Wohler <wohler at newt.com>
2720 Date: Mon, 27 Nov 1995 11:40:50 -0800
2722 With either of the following solutions, you'll need to add an
2723 Alternate-Mailboxes entry in your MH profile so that scan prints
2724 "To: recipient" rather than your faked address. For example, if your
2725 real address is user@somedomain.com and you've added a From field
2728 From: Joe Bob <joe.bob@somedomain.com>
2730 you'll add the following to .mh_profile:
2732 Alternate-Mailboxes: joe.bob@somedomain.com
2734 From: Bill Wisner <wisner at netcom.com>
2735 Date: Tue, 1 Dec 1992 00:00:00 -0800
2737 If you're just interested in changing the hostname, add a line to
2738 $MHLIB/mts.conf (mtstailor):
2740 localname: desired_host_name
2742 From: Jerry Peek <jpeek at jpeek.com>
2743 Date: Tue, 1 Dec 1992 00:00:00 -0800
2745 Just put a "From:" header in your "components", "replcomps" and
2746 "forwcomps" files. MH will add a "Sender:" header with what it
2747 thinks is your real address.
2749 ------------------------------
2751 Subject: 05.09 How can I save a copy of all messages I send?
2752 From: Ping Huang <pshuang at sgihub.corp.sgi.com>
2753 Date: Mon, 18 Dec 1995 17:51:33 -0800
2755 I suggest the use of the Dcc: field (See "What is the Dcc header?"),
2756 since the use of "Dcc:" solves the issue of having the same
2757 Message-Id. The warning about using Dcc: in general contexts doesn't
2758 apply to self-blind-carbon copies, and if "Dcc:" is used and you are
2759 automatically sorting messages into folders based on mailing lists,
2760 messages which you send will get refiled in the same way. Some may
2761 prefer all outgoing messages to be segregated; others (including
2762 myself) prefer not to segregate outgoing messages.
2764 From: Bill Wohler <wohler at newt.com>, Jerry Peek <jpeek at jpeek.com>
2765 Date: Mon, 1 Aug 1994 00:00:00 -0800
2767 Copy the components and replcomps files which are normally found in
2768 $MHLIB into your Mail directory and add a line like the following
2769 after the cc header:
2773 All outgoing messages will then be saved in the +out folder. If you
2774 make a distcomps file, it needs "Resent-Fcc:".
2776 From: Jeppe Sigbrandt <jay at elec.gla.ac.uk>
2777 Date: Sat, 5 Apr 1997 02:04:53 +0100
2779 You can also use @ in the Fcc field to file the outgoing message in
2784 This is useful if you filter your mail (e.g., with procmail) and you
2785 read your mail in folders other than +inbox.
2787 From: David S. Goldberg <dsg at linus.mitre.org>
2788 Date: 30 Oct 1995 10:23:55 -0500
2790 You can get the Message-ID field by placing the folder in the "Fcc"
2795 to your .mh_profile. Unfortunately, this Message-ID isn't as useful
2796 as sendmail's--it doesn't include the date.
2798 ------------------------------
2800 Subject: 05.10 Can the folder in Fcc: be dynamically specified?
2801 From: Andy Rabagliati <andyr at wizzy.com>
2802 Date: Mon, 1 Aug 1994 00:00:00 -0800
2804 My suggestion would be to run Tom Christiansen's rfi script. If you
2805 cannot find it on *.sources archive sites (please try first), I can
2808 One good idea would be to write a whatnowproc that files the mail
2809 based on a procmail or deliver file. Then you can use the same file
2810 for incoming and outgoing mail.
2812 ------------------------------
2814 Subject: 05.11 Can I post secure/encryped mail?
2815 From: Bill Wohler <wohler at newt.com>
2816 Date: Thu, 19 May 2005 18:06:39 -0700
2818 MH-E 7.0 supports GPG out of the box.
2820 From: Bill Wohler <wohler at newt.com>
2821 Date: Mon, 5 Mar 2001 05:30:43 -0800
2823 PGP keys can be obtained via mail from <pgp-public-keys at
2824 pgp.mit.edu>, and via the Web at
2825 http://www.pgp.net/pgpnet/pks-commands.html. Many PGP front-ends
2826 (e.g., mailcrypt) automatically obtain keys for you.
2828 See http://www.pgp.net/ for more info.
2830 From: Vivek Khera <khera at kciLink.com>
2831 Date: 19 Jun 1995 22:06:37 GMT
2833 A much more robust Perl script I wrote is appended below. [Send a
2834 note to Vivek for the script. --Ed] It works its way through
2835 aliases, and avoids problems with full names in the headers.
2837 Here is my mhn profile entry to display the messages.
2839 mhshow-show-application/x-pgp: %l pgp -m '%F' # nmh
2840 mhn-show-application/x-pgp: %l pgp -m '%F' # MH
2842 to use the script, after you edit the message, at the What now?
2843 prompt, type "edit pgpmail" for plain ascii encryption or "pgpmail
2844 -m" for a MIME formatted encryption. If you want to add a digital
2845 signature, give the script the -s flag also.
2847 From: Jeffrey C. Ollie <jeff at ollie.clive.ia.us>
2848 Date: Mon, 1 May 1995 00:00:00 -0800
2850 TIS has a free, draft-standard compliant public key system that
2851 works with MH (PEM). Check it out on ftp.tis.com.
2853 From: Kimmo Suominen <kim at tac.nyc.ny.us>
2854 Date: Mon, 1 May 1995 00:00:00 -0800
2856 You could try looking at the URL http://www.tac.nyc.ny.us/ and
2857 following the link from the cover page. Everything you need for PGP
2858 to work with MH is there (scripts and mhn entries).
2860 From: mathew at mantis.co.uk
2861 Date: Mon, 1 May 1995 00:00:00 -0800
2863 Excellent stuff. I've tried altering it to conform to
2864 draft-borenstein-pgp-mime-00.txt.
2866 Unfortunately, I can't get mhn to tag PGP-armoured text as
2867 application/pgp; format=text without it insisting on base64 encoding
2868 it. So I can't quite manage to implement the standard. *sigh*
2870 Presumably mhn thinks that anything which isn't text/* must be
2873 From: John R MacMillan <john at interlog.com>
2874 Date: Wed, 16 Apr 1997 00:06:59 -0700
2876 Premail, in conjunction with MH, can display and compose security
2877 multiparts (e.g., multipart/signed and multipart/encrypted PGP mail,
2878 non-MIME PGP, and some S/MIME). Check out
2880 http://www.c2.org/~raph/premail/
2884 ------------------------------
2886 Subject: 05.12 How can I send multi-media (MIME) attachments?
2887 From: Brian Exelbierd <bex at ncsu.edu>
2888 Date: Mon, 09 Oct 1995 08:05:55 -0400
2892 1. Compose a letter using comp.
2894 2. When you get to a point where you want to include a MIME
2895 attachment, type the following to include a GIF image (note: the
2896 '#' must be in the first column):
2898 #image/gif [Pictures at an Exhibition] /usr/lib/pictures/exhibition.gif
2900 3. Finish your letter, adding more text or attachments as needed.
2902 4. Save your letter and exit the editor. At the Whatnow prompt type
2903 "edit mhn". mhn will automatically format your letter with the
2904 MIME attachments leaving the original letter in ,##,orig where ##
2905 is the letter number.
2907 5. Type "send" at the Whatnow prompt, and poof, you have just sent
2908 MIME mail. I strongly recommend you practice sending yourself
2911 For more information, see the mhn(1) man page,
2912 ftp://ftp.isi.edu/in-notes/iana/assignments/media-types/media-types
2913 for a list of allowed media types in addition to image/gif, and
2914 Chapter 3 in the MH book or the URL:
2916 http://rand-mh.sourceforge.net/book/overall/tocs/intmime.html
2918 ------------------------------
2920 Subject: 05.13 What's the best way to send mail to a long list of people?
2921 From: Bill Wohler <wohler at newt.com>
2922 Date: Thu, 12 Oct 1995 07:53:53 -0700
2924 There are three ways to keep the list of members from appearing in
2927 If you're planning on mailing to these people regularly, the best
2928 way is to create an alias in /etc/aliases (/usr/lib/aliases). That
2929 way, recipients can send and reply to the list as well.
2931 The other two ways allow you to manage the list privately, but the
2932 recipients cannot send to the list (unless you set something up with
2933 your deliver or procmail script). One is with a group list. It looks
2936 To: All-members: member1, member2, member3, ..., membern;
2938 The recipients see this:
2942 You can make this an MH alias as well.
2944 The second way is to use a blind carbon copy (see "How do I send
2945 blind carbon copies?").
2947 Or you could also use the undocumented Dcc field which is used like
2948 the Bcc field, but doesn't inject the "Blind-Carbon-Copy." Warning:
2949 (See "What is the Dcc header?")
2951 ------------------------------
2953 Subject: 05.14 What is the Dcc header?
2954 From: jpeek at jpeek.com (Jerry Peek)
2955 Date: 14 Sep 96 05:51:13 GMT
2957 If you put the alias in the Dcc field and leave the To: field empty,
2958 there's a good chance that the recipients will get a message with
2961 Apparently-to: <someaddress>
2963 and it might even list several addresses. To avoid that, use a To:
2964 field with some address (like yours) in it. I use a comment that
2965 tells people what's really happening--like this, more or less:
2967 To: "Faculty members, c/o" <super@wierdlmpc.msci.memphis.edu>
2970 There are some other choices, like using an un-replyable group list
2971 in the To: field, but I think they tend to confuse non-techies.
2973 Date: Wed, 27 Sep 1995 09:46:37 -0700
2974 From: John Romine <jromine at yoyodyne.ICS.UCI.EDU>
2976 The Dcc (Distribution Carbon Copy) field behaves much like the Bcc
2977 field, but does not add the "Blind-Carbon-Copy" notice. This header
2978 is removed before posting the message,and a copy of the message is
2979 distributed to each listed address. This could be considered a form
2980 of Blind Carbon Copy which is best used for sending to an address
2981 which would never reply (such as an auto-archiver).
2983 People should not be using Dcc as a substitute-Bcc to send to other
2984 people. When users use Dcc as a substitute for Bcc, there is *no*
2985 indication to the "blind" recipients that they have received a blind
2986 copy. If those recipients should reply (and they have no indication
2987 why they shouldn't), the original author could be very embarassed
2990 ------------------------------
2992 Subject: 05.15 How can I make sense of the replcomps file?
2993 From: Bill Wohler <wohler at newt.com>
2994 Date: Thu, 9 Mar 2006 19:27:14 -0800
2996 The best thing to do is curl up with the mh-format(5) man page, or
2997 Section 11.2 of the MH book, or the URL:
2999 http://rand-mh.sourceforge.net/book/mh/mhstr.html
3001 These will explain the default replcomps file, included here. Don't
3002 start with the first four lines--the latter group of lines are much
3003 easier to understand.
3007 %; These next lines slurp in lots of addresses for To: and cc:.
3008 %; Use with repl -query or else you may get flooded with addresses!
3010 %; If no To:/cc:/Fcc: text, we output empty fields for prompter to fill in.
3012 %(lit)%(formataddr{reply-to})\
3013 %(formataddr %<{from}%(void{from})%|%(void{apparently-from})%>)\
3014 %(formataddr{resent-to})\
3015 %(formataddr{prev-resent-to})\
3016 %(formataddr{x-to})\
3017 %(formataddr{apparently-to})\
3018 %(void(width))%(putaddr To: )
3019 %(lit)%(formataddr{to})\
3021 %(formataddr{x-cc})\
3022 %(formataddr{resent-cc})\
3023 %(formataddr{prev-resent-cc})\
3025 %(void(width))%(putaddr cc: )
3026 Fcc: %<{fcc}%{fcc}%|+outbox%>
3027 Subject: %<{subject}Re: %{subject}%>
3029 %; Make References: and In-reply-to: fields for threading.
3030 %; Use (void), (trim) and (putstr) to eat trailing whitespace.
3032 %<{message-id}In-reply-to: %{message-id}\n%>\
3033 %<{message-id}References: \
3034 %<{references}%(void{references})%(trim)%(putstr) %>\
3035 %(void{message-id})%(trim)%(putstr)\n%>\
3036 Comments: In-reply-to \
3037 %<{from}%(void{from})%?(void{apparently-from})%|%(void{sender})%>\
3039 message dated "%<(nodate{date})%{date}%|%(tws{date})%>."
3042 In particular, note the following:
3044 \ consider the following line to be part of the current line. If
3045 this continuation character is absent, a newline (\n) will
3046 always be inserted. Note that if the field is conditional, and
3047 the condition is false, and there isn't a trailing backslash,
3048 then a blank line will appear in your reply. Since the rest of
3049 the header will now be considered to be part of the body, this
3050 is probably not what you want.
3051 \n inject an actual newline into the reply. Note that inserting a
3052 field without a trailing backslash (\) will cause that field
3053 to be emitted in the reply as well.
3054 %<{field}, %?{field}, %|, %>
3055 if field exists, else if field exists, else, endif.
3056 Conditional fields nearly always contain an explicit newline
3057 (\n) and end with a continuation character (\).
3058 %(command) mh-format commands
3059 %{field} value of the header field inserted at this point
3061 To add new fields, you can either add fields based on whether
3062 certain fields exist in the original message (e.g.,
3063 %<{message-id}...), or hard-code them, as in the Fcc, Subject, or
3064 Comments fields above.
3066 ------------------------------
3068 Subject: 05.16 How can I convert quoted-printable to 8bit in quoted text in replies?
3069 From: Jarle F. Greipsland <jarle at idt.unit.no>
3070 Date: 22 Aug 1995 10:42:07 +0200
3072 The idea behind the solution is that I need mhn to store the
3073 contents of the mail in the native iso8859-1 format somewhere. I did
3074 this by creating a custom editor that is invoked when I reply to a
3075 message. This editor extracts the body of the message (sorry, no
3076 multipart stuff), indents it with '> ', appends it to the draft
3077 message and invokes the ordinary editor on it. Here are the details:
3079 `isorepl' is a symbolic link from my $HOME/bin-directory to `repl'.
3081 In my .mh_profile I added the following two lines:
3083 isorepl: -form isoreplcomps -editor isoextract
3086 The isoreplcomps file in my Mail-directory contains:
3088 %(lit)%(formataddr %<{reply-to}%?{from}%?{sender}%?{return-path}%>)\
3089 %<(nonnull)%(void(width))%(putaddr To: )\n%>\
3090 %(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
3091 %<(nonnull)%(void(width))%(putaddr cc: )\n%>\
3092 %<{fcc}Fcc: %{fcc}\n%>\
3093 %<{subject}Subject: Re: %{subject}\n%>\
3094 %<{date}In-reply-to: Your message of "\
3095 %<(nodate{date})%{date}%|%(pretty{date})%>."%<{message-id}
3096 %{message-id}%>\n%>\
3098 #<text/plain; charset=iso-8859-1
3099 %<{message-id}In message %{message-id} %>\
3100 %<{from}%(friendly{from}) writes%|You write%>:
3102 This is a "Usenet-like" quoting style. Modify to suit your own
3103 taste. This form will setup the proper header, as well as the first
3104 line of the new message (In <mmmmbbbb> nnnn writes etc.).
3106 The first editor, `isoextract', looks like this:
3110 # Called from within repl where the "editalt" variable is valid
3112 # Point to a special MHN configuration file (save old one)
3114 MHN=$HOME/`mhparam Path`/isoquotemsg
3117 # Extract message body to "native" format (should be iso-8859-1)
3119 mhn -file "$editalt" -store >> $1 2>/dev/null
3122 myname=`basename $0`
3123 next=`mhparam ${myname}-next`
3124 if [ "x$next" != "x" ]; then
3128 `isoquotemsg' has just one rule; how mhn should store a text message.
3130 mhn-store-text: |sed -e 's/^[ ]*$//' \
3131 -e 's/^\([>|]\)\(.*\)$/>\1\2/' \
3132 -e 's/^\([^>|].*\)$/> \1/'
3134 This tells mhn to pipe the message to stdout, where the sed commands
3135 will do the reformatting/quoting. (Note: the first pair of square
3136 brackets contains a space and a tab.)
3138 So, when I do a `isorepl' to a message, `repl' will create the draft
3139 message with the proper headers (based on the `isoreplcomps' format
3140 file), fire off its first editor, `isoextract', with the name of the
3141 draft file as its parameter. `isoextract' then invokes mhn in a
3142 suitable environment, tells it that it is to use the file $editalt
3143 as its source, and orders it to store the contents. The store-text
3144 rule in the custom MHN-file tells it to just pipe the message (in
3145 native iso8859-1 form) through a small set of sed commands, and
3146 `isoextract' uses the normal shell construct to append the result to
3147 the draft file. Then, if there's defined a `isoextract-next' entry
3148 in the .mh_profile, isoextract exec's this editor.
3150 ------------------------------
3152 Subject: 05.17 Can I have aliases include aliases?
3153 From: Bruce Cox <bruce at maths.su.oz.au>
3154 Date: Fri, 16 Aug 1996 14:26:12 +1000
3158 You just need to remember the way MH expands aliases. In particular,
3159 the right hand sides are only expanded by the aliases below them in
3160 your aliases file. So, if you put in:
3162 dead-men: presidents, authors
3163 presidents: washington, lincoln, jefferson, roosevelt
3164 authors: thoreau, irving, london
3170 then you would get the response:
3172 washington, lincoln, jefferson, roosevelt, thoreau, irving, london
3174 If you had the dead-men line after the presidents and authors
3175 aliases, the response would be:
3179 ------------------------------
3181 Subject: 05.18 Why doesn't mhmail understand aliases?
3182 From: "John L. Romine" <jromine at yoyodyne.ics.uci.edu>
3183 Date: 25 Apr 1996 16:34:10 GMT
3185 One way that mhmail might be run is from a shell script. This means
3186 that the user running it might not use MH, and would not have a
3187 .mh_profile, etc. If you want to use aliases with mhmail, expand
3188 them before passing them as arguments (e.g., "mhmail `ali joe`").
3190 ------------------------------
3192 Subject: 05.19 How do I send blind carbon copies?
3193 From: Bill Wohler <wohler at newt.com>
3194 Date: Mon, 9 Sep 1996 00:32:14 -0700
3196 Use the Bcc header field:
3198 To: your-address-here
3199 Bcc: member1, member2, member3, ..., membern
3201 The recipients see this:
3203 To: your-address-here
3205 ------- Blind-Carbon-Copy
3207 Content of message, with headers
3209 If you don't want the "Blind-Carbon-Copy" message, use the Dcc
3210 field, but this is discouraged in true blind carbon copies since the
3211 warning may prevent the recipient from embarrassing someone
3212 inadvertently. Read the warning in (see "What is the Dcc header?").
3214 ------------------------------
3216 Subject: 05.20 When I forward a message, can I use its Subject?
3217 From: Jerry Peek <jpeek at jpeek.com>
3218 Date: Sun, 17 Nov 1996 20:16:31 -0800
3222 http://rand-mh.sourceforge.net/book/examples/mh/bin/forwedit
3224 ------------------------------
3226 Subject: 05.21 Why is the timezone field in my 'Date:' field wrong?
3227 From: Alex Tomlinson <tomlinson at acm.com>
3228 Date: Wed, 11 Jun 1997 09:16:41 -0500
3230 If the date field in your mail header looks like this:
3232 Date: Tue, 10 Jun 1997 15:59:03 +2228904
3234 remove -lbsd from your MH configuration, add "curses -lcurses", and
3237 ------------------------------
3239 Subject: 05.22 Can I automate the comp -editor mhn process?
3240 From: Soren Dayton <csdayton at gargoyle164.cs.uchicago.edu>
3241 Date: Tue, 21 Jan 1997 17:23:32 GMT
3249 ------------------------------
3251 Subject: 05.23 How can I remove those "=20" characters when forwarding?
3252 From: Dave Marquardt <marquard at Austin.IBM.Com>
3253 Date: 12 Oct 2000 10:27:38 -0500
3257 ------------------------------
3259 Subject: 05.24 Can I use mh-format substitution with forw?
3260 From: Dave Marquardt <marquard at Austin.IBM.Com>
3261 Date: Tue, 3 Aug 1999 13:28:30 -0500 (EST)
3263 The answer is no, and the real question is why not?
3265 ------------------------------
3267 Subject: 05.25 How can I keep repl from breaking long lines?
3268 From: Jerry Peek <jpeek at jpeek.com>
3269 Date: Fri, 14 May 1999 11:15:07 -0400
3271 Try adding width=10000 (or so) to your replcomps. It should work
3272 unless you have messages with lines longer than that...
3274 ------------------------------
3276 Subject: 05.26 How do I fix a bogus In-Reply-To or missing References field?
3277 From: Bill Wohler <wohler at newt.com>
3278 Date: Thu, 9 Mar 2006 21:42:21 -0800
3280 In the past, the In-reply-to header field looked as it does in the
3281 new Comments field (see "How can I make sense of the replcomps
3282 file?"). However, the old format is no longer allowable under RFC
3283 2822 which specifies that this field should only include the
3284 Message-ID. You can fix the replcomps and replgroupcomps files by
3285 upgrading to nmh 1.1 (be sure to update your personal copies if
3286 applicable) or simply by fixing the In-reply-to field in your own
3287 replcomps file using the example in the question referenced in this
3290 In addition, older replcomps files lacked the References field which
3291 enables threading in capable UIs. You can get it in the same fashion
3292 as the In-reply-to field--by upgrading or copying.
3294 ------------------------------
3296 Subject: 06.00 ***** Posting *****
3297 From: Bill Wohler <wohler at newt.com>
3298 Date: Fri, 1 Mar 1991 13:03:15 -0800
3300 ------------------------------
3302 Subject: 06.01 What to do with "Problems with edit - draft removed".
3303 From: John Romine <jromine at ics.uci.edu>
3304 Date: Mon, 1 May 1995 00:00:00 -0800
3306 If your users are using an AT&T version of "vi", it's exiting with
3307 non-zero status (supposedly a count of the "errors" during the
3308 edit). Move "vi" to "broken_vi" and put it its place :
3311 /usr/ucb/broken_vi "$@"
3314 Alternatively, compile MH with the ATTVIBUG option.
3316 Then complain to your vendor that "vi" is broken, and they shouldfix it.
3318 ------------------------------
3320 Subject: 06.02 Can I run my message through a program (e.g., ispell) before sending?
3321 From: Jerry Peek <jpeek at jpeek.com>
3322 Date: Fri, 1 Mar 1991 13:03:15 -0800
3324 It's pretty simple. If your speller is called myspell, use:
3326 What now? edit myspell
3328 MH will actually execute:
3330 myspell /your-mail-draft-directory/draftfile
3332 and give the entire draft message to your speller. The header will
3333 probably be "misspelled," of course, though you might be able to
3334 tell the speller to ignore it--or you could hack up a little shell
3335 script to run the speller on just the message body, then tack the
3336 corrected body back onto the header before sending.
3338 You can automate this some more. For example, if you want your
3339 speller to run after your first edit with "prompter" and also after
3340 you leave the "vi" editor, add these lines to your MH profile:
3342 prompter-next: myspell
3345 Then, at the "What now?" prompt:
3349 your speller will run. For more info, see the mh-profile(5) man page
3350 or section 7.2.1 (6.2.1) of the MH book, or the URL:
3352 http://rand-mh.sourceforge.net/book/mh/chaedi.html#Edi
3354 ------------------------------
3356 Subject: 06.03 What to do with "bad address 'xxx' - no at-sign after local-part".
3357 From: Owen Rees <rtor at ansa.co.uk>
3358 Date: Fri, 1 Jan 1993 00:00:00 -0800
3360 You may find that post returns the following message:
3362 post: bad address 'Mr. Foo Bar <fb@somewhere.edu>' - no at-sign
3363 after local-part (Bar), continuing...
3365 The unquoted dot causes "Mr. Foo" to be parsed as the local part of
3366 the address. Either remove the dot, or rewrite the address as
3369 "Mr. Foo Bar" <fb@somewhere.edu>
3370 (Mr. Foo Bar) <fb@somewhere.edu>
3371 (Mr. Foo Bar) fb@somewhere.edu
3373 ------------------------------
3375 Subject: 06.04 Fixing "post: problem initializing server; [BHST] no servers available"
3376 From: Peter Marvit <marvit at hplabs.hpl.hp.com>,
3377 Eric Bracken <bracken at bacon.performance.com>
3378 Date: Tue, 1 Nov 1994 00:00:00 -0800
3380 The error message itself is essentially correct. However, what this
3381 really means is: MH's post cannot connect to a running sendmail over
3382 an SMTP port (MH configured with SMTP and SENDMTS).
3384 The potential problems:
3386 1. Your local sendmail daemon is dying or not running for some
3389 2. You use BIND and your local nameserver is not responding.
3390 Solution: Delete "/etc/resolv.conf."
3392 3. Your $MHLIB/mts.conf (mtstailor) has its "servers:" pointing to a
3393 non-existent machine or a machine which is a) not reachable or b)
3394 not running the sendmail daemon.
3396 From: Bdale Garbee <bdale at col.hp.com>,
3397 Eric Bracken <bracken at bacon.performance.com>
3398 Date: Sun, 1 May 1994 00:00:00 -0800
3400 4. The hostname localhost [127.0.0.1] is missing from /etc/hosts.
3402 Solution: add an entry for "localhost" to /etc/hosts or your DNS
3403 database or add the following to $MHLIB/mts.conf (mtstailor):
3405 servers: 127.0.0.1 \01localnet
3407 From: Larry Daffner <ldaffner at convex.com>
3408 Date: 3 Mar 1996 14:39:54 -0600
3410 5. Your load average is so high that sendmail is refusing
3413 Solution: Change your configuration from "mta: sendmail/smtp" to
3414 "mta: sendmail" so that a sendmail processes is spawned to
3415 deliver the message. This is a double-edged sword since the extra
3416 process only makes the load worse.
3418 From: Corbin Covault <cec8 at po.cwru.edu>
3419 Date: Sun, 02 Sep 2001 02:13:42 -0400
3421 6. Sendmail may not be located on the path that MH expects.
3423 Solution: Try specifying the path explicitly by adding a line to
3426 sendmail: /usr/sbin/sendmail
3428 or wherever your sendmail daemon executable lives.
3430 From: Neil W Rickert <rickert+nn at cs.niu.edu>
3431 Date: 13 Apr 2001 18:47:43 -0500
3433 7. You don't want to use an available server.
3437 postproc: /usr/local/lib/mh/spost
3439 in your MH profile (but check the path first). That should use
3440 command line sendmail.
3442 ------------------------------
3444 Subject: 06.05 Fixing "post: problem initializing server; [RPLY] 503 Sender already specified"
3445 From: Paul Pomes <ppomes at Qualcomm.com>
3446 Date: Mon, 1 Mar 1993 00:00:00 -0800
3448 The problem in sendmail is that the RSET after the ONEX does not
3449 reset all the state information. Normally sendmail fork()s after
3450 the Mail from: statement and a RSET causes that child to exit. This
3451 automatically cleans up. If the fork() is suppressed by ONEX, then
3452 the source must be modified to do the cleanup. See "srvrsmtp.c
3453 patch" in the Appendix. If you don't have the sources, modify your
3454 MH sources to not use the ONEX verb.
3456 ------------------------------
3458 Subject: 06.06 Fixing "post: unexpected response; [BHST] no socket opened"
3459 From: Steve Lembark <lembark at wrkhors.la.ca.us>, Bill Wohler <wohler at newt.com>
3460 Date: Mon, 1 Aug 1994 00:00:00 -0800
3462 This problem happens when there is no interface defined within the
3463 tcp system. A couple of workarounds include:
3465 o Use a hostname (other than the local host) instead of localhost in
3466 the "servers" entry of the $MHLIB/mts.conf (mtstailor) file.
3467 o Recompile MH with sendmail instead of sendmail/smtp (not very
3470 A better fix would be to define your tcp interface.
3472 Here, you run ifconfig and route (as root) to define the loopback
3473 device and route. You should add them to rc.local so they are
3474 effected at every boot.
3476 # ifconfig lo 127.0.0.1 # Linux
3477 # ifconfig lo0 127.0.0.1 # Sun
3481 If all is well, "ifconfig lo" (or lo0), will show something like
3482 this (on my Linux system):
3484 lo Link encap Local Loopback
3485 inet addr 127.0.0.1 Bcast 127.255.255.255 Mask 255.0.0.0
3486 UP LOOPBACK RUNNING MTU 2000 Metric 0
3487 RX packets 0 errors 0 dropped 0 overrun 0
3488 TX packets 519 errors 0 dropped 0 overrun 0
3490 and "netstat -r" will show:
3493 Destination net/address Gateway address Flags RefCnt Use Iface
3494 127.0.0.0 * UN 0 519 lo
3496 If you're not on a network and running DNS, your /etc/hosts will
3499 127.0.0.1 your_host_name localhost # loopback address
3501 Note: put your name FIRST on the localhost line. This official name
3502 is used by sendmail to determine your return address.
3504 If you are on a network and running DNS, you might find that putting
3505 your host name in the localhost entry might gum up other things, in
3506 which case you'll want your hostname to have its own proper address.
3508 This might not do it though. David Youatt <dpy at sgi.com> says that
3509 his network was happy but he still had the problem until he upgraded
3510 his system and got the latest revision of sendmail as well. He says:
3511 "Turns out that that the problem I was having seems to be caused (at
3512 least partly, maybe entirely) by the version of sendmail that is
3513 shipped with IRIX 5.2 (sendmail 5.65, I think). The version shipped
3514 w/IRIX 5.3 (in beta) is sendmail 8.6.9 and works fine."
3516 I'm not entirely happy with this section, so please give me some
3517 feedback. If you have this problem, please send me <wohler at
3518 newt.com> a brief description so I'll know which problems and
3519 solutions seem to be the most prevalent.
3521 ------------------------------
3523 Subject: 06.07 How do I fix the "X-Authentication-Warning" header?
3524 From: Bill Wohler <wohler at newt.com>
3525 Date: Mon, 9 Sep 1996 01:32:15 -0700
3527 (See "Fixing "Sender didn't use the HELO protocol"".)
3529 ------------------------------
3531 Subject: 06.08 Fixing "post: unexpected response; [RPLY] 503 Need MAIL before RCPT"
3532 From: Bjoern Stabell <bjoerns at acm.org>
3533 Date: Mon, 1 May 1995 00:00:00 -0800
3537 clientname: localhost
3539 in the $MHLIB/mts.conf (mtstailor) file, and that fixed the problem.
3541 ------------------------------
3543 Subject: 06.09 Fixing "post: problem initializing server; [BHST] premature end-of-file on socket"
3544 From: Ginko <gianluca at noroboter.rotoni.com>
3545 Date: Thu, 8 Mar 2001 09:18:14 +0000 (UTC)
3547 I have sendmail under control of tcpwrapper started by inetd and
3548 didn't want to take it away, the very simple fix to this problem was
3549 to allow the localhost on /etc/hosts.allow on the sendmail entry.
3551 From: Stefan Huebner <sh at muc.de>
3552 Date: Wed, 11 Sep 1996 20:06:49 +0200
3554 Use spost instead of post. To do this:
3559 From: Chuck Mattern <cmattern at mindspring.com>
3560 Date: Mon, 1 May 1995 00:00:00 -0800
3562 If you are running sendmail instead of smail, make sure that all
3563 smtp entries in /etc/inetd.conf are commented out. If you do edit
3564 /etc/inetd.conf, don't forget to run to restart inetd with "kill -1
3567 ------------------------------
3569 Subject: 06.10 Fixing "Sender didn't use the HELO protocol"
3570 From: rickert at cs.niu.edu (Neil Rickert)
3571 Date: Tue, 20 Mar 2001 22:01:16 -0800
3573 If you are sharing your $MHLIB/mts.conf (mtstailor) file among
3574 several machines, and you are connecting to the local sendmail, then
3575 use 'localhost' as the hostname argument to the clientname parameter
3578 Otherwise, place mts.conf somewhere under /etc on each system, and
3579 install a symlink to it on the shared file system.
3581 From: labrown at dg-rtp.dg.com (Lance A. Brown)
3582 Date: 23 Apr 1996 14:43:04 -0400
3584 You can solve this by putting
3586 localname: localhostname
3587 localdomain: local.domain.name
3589 in your $MHLIB/mts.conf (mtstailor) file. This will make MH send a
3590 HELO string in the SMTP transaction.
3592 From: Terry Manderson <terry at azure.dstc.edu.au>
3593 Date: Mon, 1 May 1995 00:00:00 -0800
3599 to $MHLIB/mts.conf (mtstailor) where sender is the name of the
3600 machine sending the message. The error message occurs because newer
3601 MTA's require SMTP's "HELO" command which MH omits in some
3602 configurations. When you add the above line, it forces MH to use the
3605 From: Bill Wohler <wohler at newt.com>
3606 Date: Fri, 1 Mar 1991 13:03:15 -0800
3608 You get a header like:
3610 X-Authentication-Warning: screamer.rtp.ericsson.se: Host
3611 rcur7.rtp.ericsson.se didn't use HELO protocol
3613 Easy possibilities are: apply the patch to MH that comes with
3614 Sendmail 8.X.X and makes it use HELO, or comment out the line that
3619 in your sendmail.cf.
3621 ------------------------------
3623 Subject: 06.11 Fixing "post: problem initializing server; [RPLY] 553 Local configuration error, hostname not recognized as local"
3624 From: "Matthew V. J. Whalen" <whalenm at aol.net>
3625 Date: Mon, 1 May 1995 00:00:00 -0800
3627 Change your "mts" in "conf/MH" from "sendmail/smtp" to just
3630 From: Bill Wohler <wohler at newt.com>
3631 Date: Mon, 1 May 1995 00:00:00 -0800
3633 The solution above will keep MH from using any SMTP server on your
3634 network. require sendmail to be installed on all machines. You could
3635 take advantage of the "sendmail/smtp" option to have MH talk to a
3636 non-local sendmail. In $MHLIB/mts.conf (mtstailor) add:
3638 servers <SMTP-server>
3640 It may also be caused by old versions of sendmail.
3642 ------------------------------
3644 Subject: 07.00 ***** Mail Filters *****
3645 From: Bill Wohler <wohler at newt.com>
3646 Date: Fri, 1 Mar 1991 13:03:15 -0800
3648 ------------------------------
3650 Subject: 07.01 What mail filters are available?
3651 From: Bill Wohler <wohler at newt.com>
3652 Date: Sun, 11 Mar 2001 10:27:24 -0800
3654 The list currently includes slocal (included with MH), deliver,
3655 procmail and mailagent. They are briefly described here. Slocal is
3656 probably the most popular by virtue of being included in the
3657 distribution. The next most popular entry is procmail, followed by
3660 Slocal comes with MH. It can be used to process incoming mail based
3661 on the contents of any of the headers. Actions include filing
3662 messages, running commands, printing messages on your terminal and
3663 so on. The configuration is made in ~/.maildelivery. People seem to
3664 have trouble with slocal bugs, and you can't use it if you don't
3665 have write permission on your system maildrop so a lot of people
3666 have opted for the alternatives, but it's easy to use and comes with
3669 procmail is quite popular and has a very powerful configuration
3670 file. However, the syntax is its own, but it is easy to learn given
3671 a couple of good examples. Its advantages are its small size and
3672 speed. Like deliver, procmail may be installed as a delivery agent
3673 so you would not even have to have a .forward file.
3675 Deliver can run any script or program (called ~/.deliver), so you
3676 really can do anything you want to incoming mail. One feature that
3677 it sports that no other does is that you can install it as a local
3678 mailer in place of /bin/mail. If it's the local mailer, you don't
3679 need to have a .forward--~/.deliver is run anyway. In addition, it
3680 allows the system administrator to write some programs to filter
3681 everybody's mail. It came with my Linux system, so installation was
3684 I started with slocal, and then moved to deliver. I switched to
3685 procmail because of a bug in deliver (which I think has since been
3686 fixed) whereby a blank line would be inserted into the header before
3687 header fields with numbers in them.
3689 I am still using procmail and probably will do so indefinitely since
3690 it is powerful, there are many spam filters written in it, and it
3691 coexists with MH and Gnus so well.
3693 My recommendation is to use the one that is installed on your system
3694 or get procmail. Here are the URLs for the filters mentioned in this
3697 http://www.procmail.org/
3699 From: "Eric D. Friedman" <friedman at hydra.acs.uci.edu>
3700 Date: 28 Aug 1996 08:28:46 GMT
3702 See http://www.faqs.org/faqs/mail/filtering-faq/index.html.
3704 From: Stephen R. van den Berg <berg at pool.informatik.rwth-aachen.de>
3705 Date: Mon, 1 Aug 1994 00:00:00 -0800
3707 Procmail can be used to create mail-servers, mailing lists, sort
3708 your incoming mail into separate folders/files (real convenient when
3709 subscribing to one or more mailing lists or for prioritizing your
3710 mail), preprocess your mail, start any programs upon mail arrival
3711 (e.g. to generate different chimes on your workstation for different
3712 types of mail) or selectively forward certain incoming mail
3713 automatically to someone.
3715 From: Raphael Manfredi <Raphael_Manfredi at pobox.com>
3716 Date: Tue, 28 Jul 1998 13:22:07 +0200
3718 "mailagent" is yet another mail filter, written in perl, which will
3719 let you do anything with your mail. It has all the features you may
3720 expect from a filter: mailing lists sorting, forwarding to MTA or to
3721 inews, pre-processing of message before saving into folder, vacation
3722 mode, etc. It was initially written as an Elm-filter replacement,
3723 but has now enough power to also supplant MMDF's .maildelivery.
3724 There is also a support for @SH mail hooks, which allows you to
3725 automatically distribute patches or software via command mails.
3727 The mailagent was designed to make mail filtering as easy as it can
3728 be. It is highly configurable and fairly complete. Rules are
3729 specified in a lex-like style, with the full power of perl's regular
3730 expressions. The automaton supports the notion of mode, and header
3731 selection has many magic features built-in, to ease the rule writing
3734 The distribution comes with a set of examples, an exhaustive test
3735 suite, and naturally a detailed manual page. It should be noted that
3736 the mailagent will work even if your system administrator forbids "|
3737 programs" hooks in the ~/.forward, provided you have access to some
3738 sort of cron daemon.
3740 http://www.cpan.org/authors/Raphael_Manfredi/
3742 ------------------------------
3744 Subject: 07.02 Why slocal writes messages to system mailbox that from(1) can't read.
3745 From: Bill Wohler <wohler at newt.com>
3746 Date: Mon, 1 May 1995 00:00:00 -0800
3748 Upgrade to MH 6.8 and set the RPATHS option. Better yet, use a more
3749 MH-like command instead of from: "scan -file $MAIL".
3751 ------------------------------
3753 Subject: 07.03 Where can I read about slocal and the format of .maildelivery?
3754 From: Bill Wohler <wohler at newt.com>
3755 Date: Fri, 1 Mar 1991 13:03:15 -0800
3757 See the slocal man page.
3759 Here is brief example of a .maildelivery file that stores messages
3760 to babble in a folder and the system mailbox, stores mh-users in a
3761 folder but not the system mailbox, and puts the rest in the system
3764 to mh-users | A "$MHLIB/rcvstore -create +lists/mh-users"
3765 cc mh-users | A "$MHLIB/rcvstore -create +lists/mh-users"
3766 to babble | R "$MHLIB/rcvstore -create +lists/babble"
3767 cc babble | R "$MHLIB/rcvstore -create +lists/babble"
3768 default - > ? /usr/spool/mail/wohler
3770 Your .forward file may look like (quotes necessary):
3772 "| $MHLIB/slocal -user your_login"
3774 In some implementations, the "-user your_login" is not needed. If
3775 not, manually running slocal with the flag will produce an error.
3777 See also chapter 12 (11) in the MH book, or the URL:
3779 http://rand-mh.sourceforge.net/book/mh/tocs/prmaau.html
3781 Alternatives to slocal include deliver, procmail, and mailagent.
3782 (See "What mail filters are available?")
3784 ------------------------------
3786 Subject: 07.04 How do I debug my .maildelivery file?
3787 From: Bill Wohler <wohler at newt.com>
3788 Date: Mon, 1 Mar 1993 00:00:00 -0800
3790 Use as many of the following as necessary.
3792 Put a message into a file and call slocal directly on it.
3794 $MHLIB/slocal -user $USER -verbose -debug < test-msg
3796 Modify your .forward to look like:
3798 "|/bin/sh -c 'exec >> /tmp/out 2>&1;
3799 $MHLIB/slocal -user $USER -verbose -debug'"
3801 Or modify a rule in .maildelivery to look like this:
3803 to foo | R "set -xv; exec >/tmp/out 2>&1; $MHLIB/rcvstore +foo"
3805 The previous examples are broken up for readability; the text must
3808 See also MH book section 12.11 (11.11), or the URL:
3810 http://rand-mh.sourceforge.net/book/mh/debugti.html
3812 ------------------------------
3814 Subject: 07.05 Why isn't slocal working?
3815 From: Bill Wohler <wohler at newt.com>
3816 Date: Mon, 1 Mar 1993 00:00:00 -0800
3818 If slocal doesn't appear to be doing anything, run the following
3820 $MHLIB/slocal -user your_login -verbose < file
3822 where "file" is some message in a mail folder. If you get something
3825 .maildelivery: ownership/modes bad (0, 154,154,0100666)
3827 your .maildelivery is writable by too many people. Make it writable
3828 only by you by running "chmod 644 .maildelivery".
3830 See also "How do I debug my .maildelivery file?"
3832 ------------------------------
3834 Subject: 07.06 Are there any good biff applications for MH?
3835 From: Rob Austein <sra at epilogue.com>
3836 Date: Tue, 01 Dec 1998 03:02:34 -0500
3838 I've been been using a program called xlbiff (X Literate Biff) and
3839 have been quite happy with it. By default, xlbiff generates its
3840 pop-up listings by running scan on your mail drop file, but it's not
3841 a big deal to customize xlbiff for more complicated setups if you
3842 make heavy use of procmail, multiple mail drops, and so on.
3844 From: Richard Coleman <coleman at math.gatech.edu>
3845 Date: 07 Jul 1997 03:31:42 -0400
3847 nmh (new MH) has an additional command (flist) that will tell you
3848 which folders have unseen messages. I can't imagine using MH without
3851 From: crow at tivoli.com (David L. Crow)
3852 Date: 7 Jul 97 09:36:32 GMT
3854 I have used the following X resource with xbiff before:
3856 xbiff*checkCommand: grep -q '^unread' `mhpath +inbox`/.mh_sequences \
3859 This should be all one line, but I split it with a line continuation
3860 character for readability.
3862 ------------------------------
3864 Subject: 07.07 How do I read new messages filed by procmail?
3865 From: Bill Wohler <wohler at newt.com>
3866 Date: Sun, 17 Oct 2004 15:17:14 -0700
3868 If you use MH-E, use "F n (mh-index-new-messages)" to display unseen
3871 From: Neil W Rickert <rickert+nn at cs.niu.edu>
3872 Date: 23 Apr 2002 20:38:57 GMT
3874 Here is my "unseen" shell script:
3879 "") grep unseen $HOME/Mail/context $HOME/Mail/*/.mh_sequences |
3880 sed -e '/\/fromme\//d' \
3881 -e "s=$HOME/Mail/==" \
3882 -e 's=/.mh_sequences:unseen=='
3885 mark -sequence unseen -add "$@"
3888 mark -sequence unseen -delete "$@"
3890 *) echo "Invalid arguments $*"
3894 From: Paul Fox <pgf-spam at foxharp.boston.ma.us>
3895 Date: Tue, 23 Apr 2002 20:13:42 GMT
3897 I have procmail deliver to a set of mbox files and use "inc -f foo"
3898 to inc from them. The names of the mbox files are the same as the MH
3899 folders which makes it easy to write a script that does something
3907 ------------------------------
3909 Subject: 08.00 ***** MH-E *****
3910 From: Bill Wohler <wohler at newt.com>
3911 Date: Fri, 1 Mar 1991 13:03:15 -0800
3913 ------------------------------
3915 Subject: 08.01 I have a question about MH-E
3916 From: Bill Wohler <wohler at newt.com>
3917 Date: Sat, 3 Mar 2001 13:51:29 -0800
3919 Let me send you over to:
3921 http://mh-e.sourceforge.net/
3923 This is the SourceForge MH-E project. It has mailing lists and files
3924 to download, and will let you submit patches or support requests.
3926 The Support Requests section may already contain an answer to your
3927 question. If not, you can post your question:
3929 http://sourceforge.net/tracker/?group_id=13357&atid=213357
3931 ------------------------------
3933 Subject: 09.00 ***** Xmh *****
3934 From: Bill Wohler <wohler at newt.com>
3935 Date: Fri, 1 Mar 1991 13:03:15 -0800
3937 ------------------------------
3939 Subject: 09.01 How can I get xmh to use Emacs as the editor?
3940 From: Bob Ellison <ellison at sei.cmu.edu>
3941 Date: Fri, 1 Mar 1991 13:03:15 -0800
3943 The modifications to xmh to support an external editor, annotations,
3944 and an append command can be found in the these places.
3946 ftp://ftp.x.org/R5contrib/xmh-mods-R5-1.7.Z 37k
3947 ftp://ftp.sei.cmu.edu/pub/xmh/xmh-mods-R5-1.7.Z 37k
3948 ftp://ftp.sei.cmu.edu/pub/xmh/xmh-mods-R6-1.0.Z 37k
3950 From: Andrew Wason <aw at bae.bellcore.com>
3951 Date: Fri, 1 Mar 1991 13:03:15 -0800
3953 As of R5, xmh has a new action proc called XmhShellCommand. A string
3954 parameter will be executed as a shell command with the currently
3955 selected messages as parameters (or the current message if there are
3956 no selected messages).
3958 Using this new action, a couple of shell scripts, a window version
3959 of emacs (e.g. xemacs) and some elisp code, xmh can use emacs as its
3960 editor instead of the built in Athena text widget editor. This
3961 doesn't require any source code changes to xmh. These are included
3962 in the Appendix "Switching xmh's editor".
3964 ------------------------------
3966 Subject: 09.02 Does xmh support subfolders?
3967 From: Steve Malowany <malowany at cenparmi.concordia.ca>
3968 Date: Fri, 1 Mar 1991 13:03:15 -0800
3970 Yes. Create one by invoking "Create Folder" as usual, and enter
3971 something like: existing-folder/new-sub-folder. You can then access
3972 the subfolder by popping up a menu over the "existing-folder" button
3977 From: John Cooper <jsc at saxon.Eng.Sun.COM>
3978 Date: Fri, 1 Mar 1991 13:03:15 -0800
3980 The R5 version of xmh does *not* handle nested sub-folders. If you
3981 create a folder as 'grab/some/bandwidth', xmh displays this folder
3982 name for the remainder of the session where it was created, BUT if
3983 you later re-run xmh, the folder is no longer visible to xmh.
3985 See also MH book section 15.6.2 (15.6.2), or the URL:
3987 http://rand-mh.sourceforge.net/book/xmh/orgfol.html#FolaSub
3989 ------------------------------
3991 Subject: 09.03 How do I precede included messages with ">" when replying in xmh?
3992 From: Len Makin <len at mel.dit.csiro.au>
3993 Date: Fri, 1 Mar 1991 13:03:15 -0800
3995 Include the following line in your ~/app-defaults/XMh file:
3997 Xmh*replyInsertFilter: "sed 's/^/> /'"
4001 Xmh.ReplyInsertFilter: $MHLIB/mhl -form repl.filter
4003 From: Andy Linton <andy.linton at comp.vuw.ac.nz>
4004 Date: Fri, 1 Mar 1991 13:03:15 -0800
4006 Using this means that you can chose to insert the original by use of
4007 the "Insert" button in the Draft message pane. See "How do I include
4008 messages in repl with or without ">"?" to find examples of
4011 See also MH book sections 15.1.4 (15.1.4), 16.3.3 (16.3.3), or the URLs:
4013 http://rand-mh.sourceforge.net/book/xmh/senmai.html#MorRep
4014 http://rand-mh.sourceforge.net/book/xmh/resfun.html#Rep
4016 ------------------------------
4019 From: Bill Wohler <wohler at newt.com>
4020 Date: Wed, 29 Sep 2004 00:04:34 -0700
4023 MHLIB Where MH support routines and files are kept; usually /usr/lib/mh
4024 or /usr/local/lib/mh.
4025 POP3 Post Office Protocol, RFC 1939
4026 MMDF Multi-channel Memo Distribution Facility
4027 MIME Multipurpose Internet Mail Extensions, RFC 1521
4028 IMAP Internet Message Access Protocol, RFC 1064, 1176
4029 TIS Trusted Information Systems
4030 PEM Privacy Enhanced Mail
4031 PGP Pretty Good Privacy
4032 SMTP Simple Mail Transport Protocol (STD 10; RFC 821)
4034 ------------------------------
4036 Subject: Acknowledgments
4037 From: Bill Wohler <wohler at newt.com>
4038 Date: Mon, 9 Sep 1996 01:37:27 -0700
4040 I'd like to thank the following people for providing ideas on the
4041 layout of this article:
4043 Joe Wells <jbw at bigbird.bu.edu> Richard M. Stallman <rms at gnu.org>
4044 David Elliott <dce at smsc.sony.com> Tom Christiansen <tchrist at perl.com>
4045 Eugene N. Miya <eugene at nas.nasa.gov>
4047 We are also grateful to Kim F. Storm <storm at olicom.dk> and Edward
4048 Vielmetti <emv at ox.com> and the folks mentioned in the text of this
4049 document who have provided answers or other information to make this a
4050 better document. I regret that it is possible that some names have
4051 been accidently omitted. I would also like to thank all the readers
4054 I'd also like to thank John Romine <jromine at yoyodyne.ICS.UCI.EDU> for
4055 maintaining MH and the MH Web page, Jerry Peek <jpeek at jpeek.com> for
4056 writing the MH bible and for all his hard work with the entire MH
4057 project, Stephen Gildea <gildea at stop.mail-abuse.org> for maintaining MH-E
4058 in years past and always sending me lots of great comments, Kimmo
4059 Suominen <kim at tac.nyc.ny.us> for maintaining the MH patch page, and
4060 Richard Coleman <coleman at math.gatech.edu> for taking MH to nmh.
4062 ------------------------------
4064 Subject: Switching xmh's editor
4065 From: Andrew Wason <aw at bae.bellcore.com>
4066 Date: Fri, 1 Mar 1991 13:03:15 -0800
4069 # This is a shell archive. Remove anything before this line, then unpack
4070 # it by saving it into a file and typing "sh file". To overwrite existing
4071 # files, type "sh file -c". You can also feed this as standard input via
4072 # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
4073 # will see the following message at the end:
4074 # "End of shell archive."
4075 # Contents: README Xmh.ad xmh-command.el xmhcommand xmhemacs
4076 # Wrapped by aw@jello on Fri Nov 15 17:10:34 1991
4077 PATH=/bin:/usr/bin:/usr/ucb ; export PATH
4078 if test -f 'README' -a "${1}" != "-c" ; then
4079 echo shar: Will not clobber existing file \"'README'\"
4081 echo shar: Extracting \"'README'\" \(1269 characters\)
4082 sed "s/^X//" >'README' <<'END_OF_FILE'
4083 XThis is a short description of what to do with each of the enclosed files.
4086 X Merge this in with your xmh resources. If you already have
4087 X user defined buttons, then you may need to renumber the
4088 X buttons in this resource file.
4091 X Byte compile this file and put it in your GNU emacs load-path.
4095 X Put these somewhere in your path.
4098 XOnce you have installed these, restart the R5 xmh with the new
4099 Xresources. When you press the repl, forw or comp buttons
4100 Xan xemacs window will come up with your draft message.
4102 XOnce you have written your mail, save it and exit GNU emacs (C-xC-c).
4103 XYou will be prompted if you want to send the current message.
4104 XIf you enter 'y', the message will be sent and the output will
4105 Xbe displayed in an emacs window (in case you use -verbose or -snoop).
4106 XThen you will be prompted to exit emacs. Enter 'y' when you are ready.
4108 XIf you answered 'n' when prompted to send the message,
4109 Xthen the draft message will be deleted and emacs will exit.
4111 XYou can modify the Xmh.ad resources to add more buttons.
4112 XAny MH command which accepts "+folder msg" can be used
4113 X(e.g. a replx shell script which includes the body of the
4114 Xmessage being replied to can be bound to a replx button)
4118 Xaw at bae.bellcore.com
4120 if test 1269 -ne `wc -c <'README'`; then
4121 echo shar: \"'README'\" unpacked with wrong size!
4125 if test -f 'Xmh.ad' -a "${1}" != "-c" ; then
4126 echo shar: Will not clobber existing file \"'Xmh.ad'\"
4128 echo shar: Extracting \"'Xmh.ad'\" \(457 characters\)
4129 sed "s/^X//" >'Xmh.ad' <<'END_OF_FILE'
4130 XXmh*CommandButtonCount: 3
4132 XXmh*commandBox.button1.label: repl
4133 XXmh*commandBox.button1.translations:\
4135 X <Btn1Up>: XmhShellCommand(xmhcommand y repl) unset()
4137 XXmh*commandBox.button2.label: forw
4138 XXmh*commandBox.button2.translations:\
4140 X <Btn1Up>: XmhShellCommand(xmhcommand y forw) unset()
4142 XXmh*commandBox.button3.label: comp
4143 XXmh*commandBox.button3.translations:\
4145 X <Btn1Up>: XmhShellCommand(xmhcommand n comp) unset()
4147 if test 457 -ne `wc -c <'Xmh.ad'`; then
4148 echo shar: \"'Xmh.ad'\" unpacked with wrong size!
4152 if test -f 'xmh-command.el' -a "${1}" != "-c" ; then
4153 echo shar: Will not clobber existing file \"'xmh-command.el'\"
4155 echo shar: Extracting \"'xmh-command.el'\" \(1294 characters\)
4156 sed "s/^X//" >'xmh-command.el' <<'END_OF_FILE'
4157 X;;; These functions are for use with xemacs and xmh.
4158 X;;; The R5 xmh has a new action - XmhShellCommand which executes
4159 X;;; a shell command with the current msg as an arg.
4160 X;;; By executing something like:
4161 X;;; XmhShellCommand(xmhcommand repl)
4162 X;;; you can use xemacs as your editor with xmh.
4164 X;;; The following elisp functions perform the basic whatnowproc functionality
4165 X;;; (quitting and deleting, sending)
4167 X;;; Andrew Wason aw at bae.bellcore.com
4170 X;;; Override C-xC-c
4171 X(define-key indented-text-mode-map "\C-x\C-c" 'xmh-command-send-or-delete)
4174 X(setq mhdraft (getenv "mhdraft")) ; save the filename of the draft
4177 X(find-file mhdraft) ; load the draft letter
4178 X(indented-text-mode)
4179 X(setq draft-buffer (current-buffer)) ; save the buffer the draft is in
4182 X(defun xmh-command-send-or-delete ()
4183 X "Prompt to send or delete letter, then quit."
4185 X (set-buffer draft-buffer)
4186 X (if (y-or-n-p "Send message? ")
4188 X (save-buffer) ; save the draft buffer
4189 X (message "Sending...")
4190 X (pop-to-buffer "MH mail delivery"); pop to a buffer for "send" output
4192 X (call-process "send" nil t t mhdraft) ; call MH "send"
4193 X (if (y-or-n-p "Exit? ")
4194 X (kill-emacs))) ; exit emacs
4195 X (delete-file mhdraft) ; delete the draft letter
4196 X (kill-emacs))) ; exit emacs
4198 if test 1294 -ne `wc -c <'xmh-command.el'`; then
4199 echo shar: \"'xmh-command.el'\" unpacked with wrong size!
4201 # end of 'xmh-command.el'
4203 if test -f 'xmhcommand' -a "${1}" != "-c" ; then
4204 echo shar: Will not clobber existing file \"'xmhcommand'\"
4206 echo shar: Extracting \"'xmhcommand'\" \(669 characters\)
4207 sed "s/^X//" >'xmhcommand' <<'END_OF_FILE'
4209 X# This shell should be invoked by the xmh XmhShellCommand() action as
4210 X# XmhShellCommand(xmhcommand y repl)
4211 X# XmhShellCommand(xmhcommand n comp) etc.
4212 X# If the second arg is y, then the message list will be used.
4214 X# We invoke the passed MH command on the identified message
4215 X# (we must strip the message number and folder from the pathname)
4218 X $2 -whatnowproc xmhemacs +`dirname \`echo $3 | \
4219 X sed "s;\\\`mhpath +\\\`/;;"\`` `basename $3`
4221 X# You can use this more readable version instead if you have ksh
4222 X# $2 -whatnowproc xmhemacs +$(dirname $(echo $3 | \
4223 X# sed "s;$(mhpath +)/;;")) $(basename $3)
4226 X $2 -whatnowproc xmhemacs
4229 if test 669 -ne `wc -c <'xmhcommand'`; then
4230 echo shar: \"'xmhcommand'\" unpacked with wrong size!
4232 chmod +x 'xmhcommand'
4233 # end of 'xmhcommand'
4235 if test -f 'xmhemacs' -a "${1}" != "-c" ; then
4236 echo shar: Will not clobber existing file \"'xmhemacs'\"
4238 echo shar: Extracting \"'xmhemacs'\" \(116 characters\)
4239 sed "s/^X//" >'xmhemacs' <<'END_OF_FILE'
4241 X# Invoke xemacs and load the xmh-command.el stuff.
4242 X# xmhemacs is used by xmhcommand
4243 Xxemacs -l xmh-command
4245 if test 116 -ne `wc -c <'xmhemacs'`; then
4246 echo shar: \"'xmhemacs'\" unpacked with wrong size!
4251 echo shar: End of shell archive.
4254 ------------------------------
4256 Subject: babyl2mh.pl
4257 From: Vivek Khera <khera at cs.duke.edu>
4258 Date: Fri, 1 Mar 1991 13:03:15 -0800
4261 # incorporate an RMAIL babyl file into an MH folder
4263 # usage: babyl2mh +folder babyl-file
4265 # V. Khera <khera at cs.duke.edu> 17-JUL-1991
4267 # where to find rcvstore
4268 $rcvstore = "/usr/local/lib/mh/rcvstore";
4271 # pull out command line args
4273 die "usage: babyl2mh +folder babyl-file\n" unless @ARGV == 2;
4276 # make sure folder name starts with a "+"
4277 (substr($folder,0,1) eq "+") || (substr($folder,0,0) = "+");
4280 print "Incorporating RMAIL file $bfname into MH folder $folder\n";
4283 # read in babyl file.
4285 $/ = "\037"; # this separates the records in a babyl file
4286 $* = 1; # records are multi-lines
4288 open(BABYL,$bfname) || die "Couldn't open $bfname\n";
4290 $_ = <BABYL>; # discard header.
4295 chop; # get rid of delimeter
4296 s/\f(.|\n)*\*\*\* EOOH \*\*\*\n//; # remove duplicate header information
4297 open(RCVSTORE,"|" . $rcvstore . " $folder");
4300 print "Message $msgnum done.\n";
4303 ------------------------------
4305 Subject: inco - babyl to MH converter
4306 From: Juergen Nickelsen <nickel at cs.tu-berlin.de>
4307 Date: Fri, 1 Mar 1991 13:03:15 -0800
4310 # Usage: inco [from [folder]]
4311 # "from" defaults to $HOME/Mail/outbound, "folder" to +inbox.
4313 lispfile=/tmp/inco.$$.el
4314 input=${1-$HOME/Mail/outbound}
4315 tmpmbox=/tmp/inc.$$.mbox
4318 if [ $# -ge 3 ]; then
4319 echo Usage: `basename $0` [ from [ folder ]]
4323 trap "rm -f $lispfile $tmpmbox ; exit 1" 1 2 15
4328 echo '(rmail-input "'$input'")
4329 (rmail-last-message)
4330 (setq last (rmail-what-message))
4331 (rmail-show-message 1)
4332 (while (not (equal (rmail-what-message) last))
4333 (rmail-output "'$tmpmbox'")
4334 (rmail-delete-forward nil))
4335 (rmail-output "'$tmpmbox'")
4336 (kill-buffer (current-buffer))
4339 emacs -batch -l $lispfile
4340 inc -file $tmpmbox $folder
4343 rm -f $lispfile $tmpmbox
4345 ------------------------------
4347 Subject: t2h - add hyperlinks to message viewed
4348 From: TANAKA Tomoyuki <tanaka at step.mother.com>
4349 Date: Mon, 13 Sep 1999 11:35:43 -0600
4352 # "t2h" by TT news:alt.tanaka-tomoyuki http://listen.to/TT
4353 # USE: t2h <file.txt >file.html
4354 # Or: show | t2h | lynx -
4360 s/http:[^ "&) ]*/<a href="&">&<\/a>/g
4361 s/news:[^ "&) ]*/<a href="&">&<\/a>/g
4362 s/ftp:[^ "&) ]*/<a href="&">&<\/a>/g
4363 s/telnet:[^ "&) ]*/<a href="&">&<\/a>/g
4371 ------------------------------
4373 Subject: srvrsmtp.c patch
4374 From: Paul Pomes <ppomes at Qualcomm.com>
4375 Date: Fri, 1 Mar 1991 13:03:15 -0800
4377 >From the 5.67 sources:
4379 *** srvrsmtp.c- Mon Feb 22 12:25:54 1993
4380 --- srvrsmtp.c Mon Feb 22 12:29:09 1993
4384 message("250", "Reset state");
4388 + /* clean up a bit if running in parent */
4390 + dropenvelope(CurEnv);
4391 + CurEnv = newenvelope(CurEnv);
4392 + CurEnv->e_flags = BlankEnvelope.e_flags;
4395 case CMDVRFY: /* vrfy -- verify address */
4397 ------------------------------
4399 Subject: IRIX config file
4400 From: Jack Repenning <jackr at informix.com>
4401 Date: 25 Jul 1995 02:35:41 GMT
4403 # Irix 5.3 (based on examples/sys5r4)
4405 bin /usr/local/bin/mh
4410 etc /usr/local/lib/mh
4411 ldoptions -L/usr/local/lib/mh
4417 popdir /usr/local/bin
4420 #slibdir /usr/local/lib/mh
4426 options FOLDPROT='"0700"'
4430 options MORE='"/usr/bsd/more"'
4431 options MSGPROT='"0600"'
4434 options SBACKUP='"\\#"'
4443 options _XOPEN_SOURCE
4446 From: David Paschich <dpassage at bigbook.com>
4447 Date: 23 Apr 96 21:27:12 GMT
4450 # a 4.2BSD VAX system running SendMail
4451 bin /usr/local/bin/mh
4453 etc /usr/local/lib/mh
4456 mandir /usr/local/man
4461 options BIND LOCKF FOLDPROT='"0700"' MHE MHRC MORE='"/usr/bsd/more"'
4462 options MSGPROT='"0600"' RPATHS SENDMTS SGI SMTP SOCKETS SYS5
4463 options TYPESIG="void" ncr MIME VSPRINTF UNISTD SYSVR4 SYS5DIR
4465 ------------------------------
4467 Subject: HP-UX 10.20 config file
4468 From: Marko Heikkinen <hema at iki.fi>
4469 Date: 06 Jan 1997 17:19:07 +0000
4473 etc /opt/mail/lib/mh
4481 ccoptions +DA1.0 +DS1.0
4485 slibdir: /opt/mail/lib
4497 options MORE='"/opt/gnu/bin/less"'
4498 options MSGPROT='"0600"'
4505 options TYPESIG=void
4510 curses -lcurses -ltermlib
4513 ------------------------------
4515 Subject: Removing duplicate messages (Bourne)
4516 From: Jerry Peek <jpeek at jpeek.com>
4517 Date: 20 Nov 1995 18:51:24 GMT
4519 Here's a simple-minded Bourne shell version. It uses
4520 "scan" to get the message number and message-id of each message. If
4521 a message has the same message-id as the previous message, the
4522 script adds its message number to the "remove" shell variable.
4528 scan -width 300 -format '%(msg) %{message-id}' |
4529 while read msg msgid; do
4530 if [ "$msgid" = "$lastmsgid" ]; then
4531 remove="$remove $msg"
4538 That's pretty simple-minded. For example, if the $remove variable
4539 gets too big, your system may complain. And I'm sure there are some
4540 more-efficient ways to find the list of duplicate message-ids. But
4543 Subject: Removing duplicate messages (Perl)
4544 From: rtor at ansa.co.uk (Owen Rees)
4545 Date: 20 Nov 1995 12:39:47 GMT
4547 I wrote a perl script to do this some time ago. All the usual dire
4548 warnings about destructive technology apply - take a backup, do it on
4549 a copy, try it on a small test case first etc. Don't use this script
4550 unless you are prepared to accept the consequences.
4552 #!/usr/local/bin/perl
4554 $version = "rmmdup 1";
4556 if (@ARGV == 0) { $folder = ""; }
4557 elsif (@ARGV == 1) { $folder = $ARGV[0];
4558 unless ( $folder =~ /^\+.+$/ )
4559 { die "usage $0 [+folder]\n"; };
4561 else { die "usage $0 [+folder]\n"; };
4565 open (scan, "scan $folder -format '%(msg) %{message-id}'|");
4567 { if ( ($msg,$msgid) = /^(\d+) (<.*>)$/)
4568 { if ($msgs{$msgid})
4569 { print "$msg duplicates $msgs{$msgid}\n";
4570 $rmmlist .= " $msg";
4572 else { $msgs{$msgid} = $msg; };
4575 if ( $rmmlist ) { exec "rmm $folder $rmmlist"; };
4578 Subject: Removing duplicate messages (Perl)
4579 From: Bill Wohler <wohler at newt.com>
4580 Date: Sun, 17 Oct 2004 13:00:20 -0700
4584 # Id: mhfinddup 6593 2004-09-02 16:34:24Z wohler
4588 mhfinddup - find duplicate messages
4592 mhfinddup [options] [folder ...]
4596 B<mhfinddup> finds and removes duplicate MH messages in the folders listed on
4597 the command line (default: current folder). By default, you deal with
4598 duplicate messages interactively. You can either remove the duplicate, not
4599 remove the duplicate, or view the original and duplicate message before
4602 If you use the B<-msgid> option to B<send>, then you probably don't want to
4603 list any F<+outbox> folders if you are using the B<--no-same-folder> option
4604 and you want to preserve your sent messages as well as your messages to
4607 Note that if you specify one or more folders, or if you use the B<--all>
4608 option, B<mhfinddup> recursively descends the given folders.
4612 Context is per B<flist>(1). That is, if F<+folder> is given, it will become
4613 the current folder. If multiple folders are given, the last one specified will
4614 become the current folder.
4622 Look for duplicates in all folders. If any folders are specified, this option
4627 Turn on debugging messages.
4631 Display the usage of this command.
4635 List duplicated messages.
4637 =item --no-same-folder
4639 Since it is common to use C<refile -link> to file a message in multiple
4640 folders, this script doesn't consider messages in different folders to be
4641 duplicates. Specify this option to list or remove duplicates across folders.
4645 Remove messages non-interactively. Use with care! For safety, the B<--list>
4646 option takes precedence if specified and is a good option to use before using
4651 Display program version.
4657 Returns 0 if all is well; non-zero otherwise.
4665 Interactively remove duplicates from the current folder.
4667 =item mhfinddup --all --list --no-same-folder
4669 List all duplicates regardless if they are in different folders or not.
4671 =item mhfinddup --rmm +lists
4673 Remove all duplicates in F<+lists>, recursively.
4679 B<rmm>(1), B<mhl>(1), B<scan>(1)
4687 Bill Wohler <wohler at newt.com>
4689 Copyright (c) 2003 Newt Software. All rights reserved.
4691 This program is free software; you can redistribute it and/or
4692 modify it under the terms of the GNU General Public License
4693 as published by the Free Software Foundation; either version 2
4694 of the License, or (at your option) any later version.
4696 This program is distributed in the hope that it will be useful,
4697 but WITHOUT ANY WARRANTY; without even the implied warranty of
4698 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4699 GNU General Public License for more details.
4701 You should have received a copy of the GNU General Public License
4702 along with this program; if not, you can find it at
4703 http://www.gnu.org/copyleft/gpl.html or write to the Free Software
4704 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
4710 # Packages and pragmas.
4716 my $cmd; # name by which command called
4717 ($cmd = $0) =~ s|^\./||; # ...minus the leading ./
4718 my $ver = '6593'; # program version with CVS noise
4720 # Variables (may be overridden by arguments).
4721 my $all = 0; # look in all folders
4722 my $debug = 0; # verbose mode
4723 my $help = 0; # display usage
4724 my $version = 0; # display version
4725 my $list = 0; # list duplicates
4726 my $no_same_folder = 0; # consider duplicates across folders
4727 my $rmm = 0; # remove duplicates without asking
4730 my $mhl = "/usr/lib/mh/mhl";
4731 my $tmp = "/tmp/mhfinddup$$";
4733 # Parse command line.
4734 # The use of the posix_default option is to ensure that folders like +a are
4735 # not confused with --all. I'd really prefer to set prefix_pattern to "(--|-)"
4736 # so that abbreviations of options can be used without being confused with
4737 # folders, but I couldn't make it so.
4739 Getopt::Long::Configure("pass_through", "posix_default");
4740 GetOptions('all' => \$all,
4744 'no-same-folder' => \$no_same_folder,
4746 'version' => \$version,
4749 show_version() if ($version);
4750 usage() if ($help || int(@ARGV) != int(map(/^\+/, @ARGV)));
4752 my @folders = expand_folders(@ARGV);
4753 print("Expanded " . join(" ", @ARGV) . " into\n" . join("\n", @folders) . "\n")
4756 print("Scanning for duplicate messages...\n");
4758 foreach my $folder (sort @folders) {
4759 print("Scanning $folder...\n") if ($debug);
4761 "MHCONTEXT=$tmp scan +$folder -format '%(msg) %{message-id}'|");
4763 if (my ($msg, $msgid) = /^(\d+) (<.*>)$/) {
4764 if ($msgs{$msgid}) {
4765 $msgs{$msgid} =~ m|^\+(.*)/(\d+)$|;
4766 my($f, $m) = ($1, $2);
4767 if ($folder eq $f || $no_same_folder) {
4768 handle_dup($f, $m, $folder, $msg);
4771 $msgs{$msgid} = "+$folder/$msg";
4780 sub expand_folders {
4783 print("Getting list of folders...");
4786 . (($all == 1 && @folders == 0) ? "-all" : join(" ", @folders))
4788 or die("Could not determine folders\n");
4790 chomp(my $current_folder = `mhparam Current-Folder`);
4791 $current_folder = quotemeta($current_folder);
4794 my ($folder, $a, $b, $c, $d, $e, $f, $g, $count) = split;
4795 if ($folder =~ /^$current_folder\+$/) {
4796 $folder =~ s/\+$//; # remove current folder indication
4798 next if ($count == 0);
4799 push(@folders, $folder);
4808 my($f1, $m1, $f2, $m2) = @_;
4813 print("+$f2/$m2 duplicate of +$f1/$m1");
4822 print(", remove? [Yns?] ");
4823 chomp($ans = <STDIN>);
4826 if ($ans eq "y" || $ans eq "") {
4827 system("rmm +$f2 $m2");
4828 } elsif ($ans eq "s") {
4829 system("$mhl `mhpath +$f1 $m1` `mhpath +$f2 $m2`");
4831 } elsif ($ans eq "?") {
4832 print("y, remove message (default)\n" .
4833 "n, don't remove message\n" .
4834 "s, show messages\n" .
4835 "?, show this message\n");
4844 Display usage information and exit.
4850 Usage: $cmd [options] [folder ...]
4851 --all remove duplicates in all folders
4852 --debug print actions that program takes
4853 --help display this message
4854 --list list duplicates only
4855 --no-same-folder consider duplicates even if in different folders
4856 --rmm remove duplicates without asking
4857 --version display program version
4864 Display version information and exit.
4869 print("$cmd version $ver\n".
4870 "Copyright (c) 2003 Bill Wohler <wohler at newt.com>\n\n".
4871 "$cmd comes with ABSOLUTELY NO WARRANTY.\n\n".
4872 "This is free software, and you are welcome\n".
4873 "to redistribute it under certain conditions.\n\n".
4874 "See `http://www.gnu.org/copyleft/gpl.html' for details.\n");
4881 outline-regexp: "^Subject:"