2 Allow complex boolean expressions in "pick"
5 Add profile switches that will "answer" prompts,
6 sa "Draft exists, delete?"
9 Have the stand-alone "anno" prompt for component and text.
12 More elaborate "<command> -help". (But see objections in
16 MH should be able to pass the terminal type to the editor.
19 Mail sent to mailing list aliases should also be sent to "news"
20 (Complex problem--but see BSB's msg /r/phyl/Mail/MH/134)
23 Allow a "delete-after: <date>" component to MH; have a
24 daemon go thru everyone's MH folders and delete stale
25 messages. (see /r/phyl/Mail/MH/45...)
28 Add a -noformat option to mhl--to get rid of " at RAND-UNIX"
29 when the message is listed.
32 Have a file "/etc/Newsgroups" with lists of people
33 who should see certain news, so that systems personnel
34 can decide who should see certain topics and not have to
38 "ali -user" to give the reverse info from "ali aliasname";
39 viz, given a user, what aliases will send mail to him.
46 There could .mh_profile entries that specify the
47 defaults for the various components for messages,
48 and all programs like comp & forw could look to
49 those instead of looking to a 'compform' or the like.
52 From-Component: dave-yost
56 Link messages instead of copying them
59 Have "news -folder" change your current folder to the 1st unread
60 news folder, thus allowing you to use all the usual MH commands on it.
66 "All plain files that now reside in 'Mail' should live in a
67 subdirectory like 'Mail/M'. Now I can unprotect the 'Mail'
68 directory, so that I can selectively grant snoop permission on any
69 folder without fear of making my other miscellaneous files like
70 'draft' vulnerable. All I have to do is protect 'Mail/M'." --Dave
75 Date: 3 Feb 1981 15:57:05-PST
76 From: CSVAX.kas at Berkeley
77 Message-ID: <601.350091987@CSVAX.Berkeley>
78 To: Day@Rand-Unix, Urban@Rand-Unix
79 Subject: Re: Updated MH to run in 4bsd environment
80 In-reply-to: Your message of 27 Jan 1981 2011-PST (Tuesday).
83 I have finished making the new version of MH run in our 4bsd
84 environment. That is, our version of MH runs compatibly with
85 the standard v7 mail program, the Berkeley Mail, UNIX sndmsg, msg,
86 and others. Some of the things I encountered may be of use to
87 you in making your distribution of MH easier to install in 4bsd systems.
91 ali.c Changed to use a #define for the MailAlias file.
92 Should really have created a new strings file for it.
94 annotate.c Now uses the character defined by CBACKUP instead of ,
95 for the backup convention. We have a line of the form:
97 40 4 * * * find / -name '#*' -atime +3 -exec rm -f {} \;
99 in /usr/lib/crontab and it seemed easier to make MH
100 obey that than to convince users to use ,
102 conflict.c Used to reference ``struct dir'' which in our system at
103 least is defined in /usr/include/sys/dir.h as
106 dist.c Changed to use CBACKUP, instead of comma
108 folder.c Removed fflush(stdout) after each line of output. This makes
109 the program appear to run faster.
111 forw.c Changed to use CBACKUP, not comma
113 inc.c Changed to call a program unixtomh (described later) which
114 reads mail in standard unix format and converts it to MH
115 format. Now has -file filename flag to read messages
116 from a file (many users already have mbox files full of
117 unix format mail. they can do inc -file mbox +mbox to
118 convert this to an MH folder). Also has -keep to
119 prefer close(creat(mailboxname, 0600)) to unlink to
120 help users preserve a non-publically readable mode on
123 mail.c Renamed mhmail.c to avoid confusion
125 mhl.c Changed to use termlib to clear terminal screen correctly.
126 Fixed its argument processing so it won't try to open flag
129 news.c s/struct dir/struct direct/
131 rmf.c Uses CBACKUP instead of comma
133 rmm.c Uses CBACKUP instead of comma
135 scan.c Has -reverse flag to look at headers newest first. A user
136 with a HUGE inbox demanded this.
138 send.c Uses CBACKUP instead of comma
140 unixtomh.c Created program to read unix format mail and put it in MH
141 format. This is invoked by inc.
143 mh.h Although this is the wrong place to do it, added CBACKUP
144 #define to give backup character. Should really be in
147 mailsys.h Changed path names to end with / to satisfy the assumption
148 in inc.c that they look that way.
150 deliver.c Now makes temporary file in /tmp, not /usr/tmp/mh,
151 doesn't check validity of network addressees,
152 Only outputs From: and Date: in fcc copy of message,
153 invokes /etc/delivermail on all recipients to actually
154 deliver the mail, removed putdate() routine in favor
155 of shared (with unixtomh) version in subs, and now
156 uses #define MAILALIASES.
158 Also, a couple of minor notes: we do not have a strings.h file in
159 /usr/include, which I assume gave the return types of routines like
160 rindex() and friends. A number of files include system files as, eg:
165 this requires that you give the preprocessor flag -I/usr/include/sys
166 for it to be found. This creates problems for the make depend stuff
167 since include files are not necessarily in /usr/include. I got around
168 this by simply editing out the header file dependencies from the
171 Finally, to get around the conflict between /usr/bin/file and the MH file
172 command, I made a program fakefile which examines its arguments. If any
173 begin with +, it invokes MH file, else /usr/bin/file. This seems to
176 I have everything sccs'd so I can send you sccs source, diffs, new source
177 or whatever if you like.
183 Sort folders by time-received.
186 Whenever a news topic is created, a suitable message to news.everyone
187 should announce that fact and try to sell users on the new topic.
190 "... I've been hacking up an MH to
191 put the attributes in the file names, format n-aaa, where n is
192 the message number, and the a's are the attribute characters,
193 initially, only 's' for 'seen' being implemented. This is VERY
194 efficient, and only runs into the original problems Norm pointed
195 out...the name is difficult to guess from an environment which
196 does not allow wild-cards, such as inside the editor.
198 "Personally, I think the advantage gained is well worth the
199 messiness. I would like to be able to say "scan unseen",
200 or "file seen +handled", etc. This can't be done in ANY
201 other fashion under UNIX without losing lots of other important
202 features, such as preservation on copy."
207 Allow personal alias files.
210 "No personal aliases because there ain't no way to reply!
211 The 733 syntax is totally botched on "file inclusion".
212 There should be a meta-syntax for using a file as an
213 address, which deliver programs ALL AROUND THE NET could
218 "You could have personal aliases if they were expanded into the
223 "Screw -time and -numdate. How about a -display <string> option,
224 where <string> is a printf-like format that dictates exactly the
225 way you want the scan to look. Something like:
227 scan -display '%3(num) %2(mo)/%2(day)/%2(yr) \
228 %2(hour):%2(min)-(timezone) \
229 %10(from) %40(subject)%(incl)(body)'
231 "It has been suggested that the 'ls' command should have an option
237 Scan and inc should display control characters in readable form.
238 (Except, for example, ^G, ^I)
244 Integrate MH file naming conventions with Unix naming conventions.
245 So, for example, when in the editor, you could reference
249 "Replied-to" Subject fields should somehow keep track of
250 the "generation" of the replied-to message.
252 2/26/81 Dave Clemans, SDC
254 Because the ISC system is a UNIX V6 variant, and MH is set up for
255 V7, there are a few differences:
257 Because of name conflicts between MH programs and ISC programs,
261 are in the directory /misc/bin. The version of file in /misc/bin
262 is a preprocessor; if its argument list has an argument with a '+'
263 as its first character, it calls /usr/bin/file.msg, otherwise it
266 MH wants to look at a few environment variables, which don't exist
267 on UNIX V6. They are simulated using the global shell variables of
268 the SDC-extended "Harvard" shell. For people who use the "Harvard"
269 shell (hsh), this procedure is handled automatically. For people
270 who use the Berkeley C shell (csh) or people who use the ISC shell,
271 a special command has to be run at least once, and possible every
272 time that you log in, depending on how often you change things.
273 What follows is a short description of that command:
275 /misc/bin/mhsetup <login name> <home directory> <search path>
278 <login name> is your actual login name USER
279 <home directory> is your login directory HOME
280 <search path> is the PWB/UNIX style path PATH
282 There also has been a few extensions made to MH at SDC. A short
285 a. Registered mail: send has a -register and a -noregister switch.
286 A receipt is sent back to the sending user when the receiving
287 user types "inc" and a registered message is received. (Done by
288 adding a "Registered" component to the message)
290 b. Fcc: Multiple folder names are accepted in this component and
293 c. Personal mailing lists: In addition to the mailing lists
294 accepted by the /etc/MailAliases file, users can maintain
295 private mailing lists. These are referenced by addresses of the
296 form "<path", where path is the name of the mailing list. It is
297 looked for first in the current directory, and then in the users
298 Mail directory. It should have the same format as a list of
299 addresses typed in by hand.
301 d. Automatic forwarding: If a user has accounts on multiple
302 machines, but only uses one of them on a regular basis, it is
303 possible to have all messages from those other machines
304 automatically forwarded to the machine that is used regularly.
305 The same database hook used by this is also used to provide full
307 (i.e., Full Name <user at host>)
308 (Done by having a file with one line for each user, of the format:
309 <user> <flag> <address> :<Full Name>
310 <user> is the local user name
311 <flag> says whether or not to forward
312 <address> is the forwarding address
313 <Full Name> is the users full name)
315 e. Msg/Sndmsg: There are msg/sndmsg programs in /misc/bin that
316 look very similar to normal ARPAnet msg/sndmsg programs, but
317 which interface to MH.
319 f. Repl: repl has "-fccme" and "-nofccme" switches for making file
320 copies of replies to messages.
322 g. Next/Prev: next and prev have "-pr" and "-nopr" switches. They
323 have the same effect as the "-pr" and "-nopr" switches in show.
325 The "onstruct is recognized and handled correctly. The only
326 transport mechanism available currently is the Berkeley network (from
328 (Hooks do exist to add others, specifically UUCP). Currently defined
330 sdc-70 the R&D 11/70 system
331 sdc-net the 11/45 network support machine
333 Two other host names exist for sending mail into the ISC mail system.
334 These are "sdc-70x" and "local".
336 For any problems, or for more information, send a message to dgc
346 Delayed mail delivery: add a "Deliver-date:" header containing
350 "send" in the background
355 "... the sender would decide which of the four possible
358 2. send to terminal only
359 3. send to terminal and also mail
360 4. send to terminal if possible, otherwise mail
362 "Furthermore, messages added to your mailbox would indicate whether
363 they were sent as mail or tty messages, so you could discard
364 messages which were intended to be displayed on the the terminal."
369 Automatic mail agents, per Dave Farber
372 <command> -nochangedir
375 bcc recipients should SEE the bcc header in their copy of
380 Repl should have an option that includes
381 the replied-to message in the body of the
382 new message, indented one tabstop, so you
383 can intersperse answers with original text.
384 (But see objections in mail subsequent to the
388 scan -name; folder -name
389 to return full path names of message files
392 You should be able to anti-alias a login id,
393 making the user unknown for mail delivery purposes.
397 Scansub should insert ">>" if msg body all fits on the scan line.
400 Speed MH up by having 2 interfaces: a monolithic environment
401 for speed in commonly used commands, and the current MH
402 environment for generality.
405 Move all the scattered mail alias files to /usr/MailLists.
406 Also move /etc/MailAliases and /etc/mh to /usr.
409 add a -noreorder switch to request that MH process the msg
410 list in the GIVEN order, not in sorted order.
413 There should be a common LOGFILE to be written by srvrftp,
417 An environment variable should be set so that MH can choose
418 an editor based on your terminal type.
425 Modularize the delivery process so that new networks can
426 be easily incorporated (e.g., SU-DSN is on the arpanet as well as
429 Host table lookup: "joe at destination"
434 From: wales at UCLA-Security (Rich Wales)
435 Subject: mail security and mailing to files/pipes
438 From: greep at SU-DSN
440 How about an option in comp (along with "list", "edit", "quit", and
441 "send") to get a new shell? Sometimes I'm in the middle of composing
442 a message and realize there's some program I want to run.
445 From: Dave-Yost at RAND-UNIX
446 Subject: 'message does not exist'
448 If I do something with cur and the message pointed to doesn't
449 exist, I think mh should automatically look for the next message.
450 Or at least it should be something I can opt for with an entry in
454 % show # look at the current message
455 % rmm # decide to junk it
456 % ... # do some other work
457 % show # show current message if not deleted, else next
458 Message 18 doesn't exist.
463 From: Dave-Yost at RAND-UNIX
464 Subject: mh vs mail or msg or ms or Berkmail or ...
466 I'll tell ya, I'm a fan of mh and everything, but
467 mh has GOT to be optionally available as a
468 monolithic program within which you give mh
471 (See /r/phyl/Mail/MH for discussion)
474 SUBJECT: An mh argument to specify the profile file
475 From: norm at RAND-UNIX
477 What the world needs is for every mh command to have an optional
478 flag, say "-profile", which introduces an alternative file to be
479 used, for all purposes, instead of .mh_profile.
481 This capability has a number of obvious and less obvious
482 consequences that would make mh a much more powerful system and
483 seems to have little adverse impact when not used.
487 Subject: mail aliases and automatic forwarding
489 MH should provide facilities for a user to
490 forward/unforward his mail somewhere easily.
491 This does NOT mean telling him that all he has
492 to do is write a shell procedure and install it
493 in his .mh_receive file. The MH command I am
494 proposing would do that for you, and do the
495 appropriate locking against race conditions.
496 You need to be able to divert your incoming mail,
497 and to set up other aliases to your login name--
498 in this case, the command should send a message
499 to a system administrator requresting the alias.
501 Bell mail allows a user to write, for example,
503 in the beginning of your mail spool file to
504 forward mail. (Brian also points out that that is
505 also the ONLY aliasing that they provide.)
506 I don't think this is such a good idea, since
507 it requires knowledge of where the mail spool file is,
508 and is susceptible to a race condition if incoming mail
509 comes in while you are messing with the spool