home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume6 / elm / part04 / doc / Users.guide < prev   
Encoding:
Text File  |  1986-11-30  |  24.9 KB  |  875 lines

  1. .PH ""
  2. .tm I trust we've run this through tbl first...
  3. \"
  4. \"  Users guide to the ELM mail system.
  5. \"  format with 'tbl Users.guide | troff -mm > Users.fmtd
  6. \"  or something similar.
  7. \"  (C) Copyright 1985 Dave Taylor
  8. \"
  9. \"  Last update: May 14th, 1986
  10. \"
  11. .PF ""
  12. \"  Define the big box macro for troff
  13. .de eb
  14. .sp -1    
  15. .nf
  16. \h'-.5n'\L'|\\nau-1'\l'\\n(.lu+1n\(ul'\L'-|\\nau+1'\l'|0u-.5n\(ul'
  17. .fi
  18. ..
  19. .ds HF 3  3 
  20. .ds HP 12 12
  21. .SA 1
  22. .nr Hy 1
  23. .nr Pt 1
  24. .nr Pi 8
  25. .lg 1
  26. .HM 1 1
  27. .rs
  28. .sp 5
  29. .ce 99
  30. .ps 20
  31. \fBElm Users Guide\fR
  32. .sp 2
  33. .ps 12
  34. \fIA painless introduction to electronic mail 
  35. using the \fBElm\fP mailer\fR
  36. .sp 5
  37. Dave Taylor
  38. .sp 
  39. Hewlett-Packard Laboratories
  40. 1501 Page Mill Road
  41. Palo Alto CA
  42. 94304
  43. .sp
  44. email: taylor\s10@\s12hplabs or hplabs!taylor
  45. .ps 10
  46. .sp 7
  47. \fBABSTRACT\fR
  48. .ce 0
  49. .sp
  50. .DS CB F
  51. While various parts of the Unix system have been
  52. updated into the `CRT' age (rather than the `teletype')
  53. the electronic mail systems haven't.  This document 
  54. presents the \fIElm\fR mail system which remedies
  55. this problem.  This mailer offers all the features of
  56. \fI/bin/mail\fR, \fImailx\fR, \fIMail\fR, \fIuumail\fR and \fINmail\fR in an
  57. unified and intuitive fashion.
  58. .DE
  59. .sp 5
  60. .ce
  61. .ps 18
  62. \fB\(co\fR\s12 Copyright 1986 by Dave Taylor
  63. .ps 10
  64. .SK
  65. .ce 99
  66. .ps 14
  67. \fBElm Users Guide\fR
  68. .ps 10
  69. .sp
  70. (version 1.1)
  71. .sp 2
  72. Dave Taylor
  73. Hewlett-Packard Laboratories
  74. 1501 Page Mill Road
  75. Palo Alto CA
  76. 94304
  77. .sp
  78. email: taylor@hplabs or hplabs!taylor
  79. .sp 2
  80. \*(DT
  81. .ce 0
  82. .nr P 1
  83. .PH "'Elm Users Guide''Version 1.1'"
  84. .PF "''Page \\\\nP''"
  85. .sp 3
  86. .H 1 "Introduction"
  87. .P 1
  88. The Unix\v'-.3'\s5TM\s10\v'.3' operating system was originally 
  89. written on a small PDP machine
  90. to work with teletypewriters.  Consequently, all the original software for
  91. the operating system was written with a `tty' in mind - they were all 
  92. line oriented, rather than screen oriented.
  93. .P
  94. Gradually this began to change, and, with the addition of the Berkeley
  95. .I vi
  96. visual shell to the 
  97. .I ed
  98. line editor, the trend seemed to be brought to the attention of 
  99. Unix systems designers.  
  100. .FS " "
  101. Historical note: shrewd users will recognize this as the old Unix 
  102. .lg 0
  103. \fIMsg\fR
  104. .lg 1
  105. mailer.  The name was changed to avoid a conflict with an old DEC-20
  106. mailer, and because the new name stands for \fBEL\fRectronic \fBM\fRail,
  107. which I think works out better!
  108. .FE
  109. .P
  110. Apparently, however, this wasn't enough of a significant event, as
  111. .I vi
  112. and
  113. .I notes
  114. are the only screen oriented software available
  115. (other than games, which are a taboo subject with managers
  116. and the like!).  Consequently, after becoming more and more 
  117. disenchanted
  118. with the existing electronic mail facilities (\fImail\fR
  119. and \fImailx\fR, both of which are essentially line editors) I decided
  120. to write my own!
  121. .P
  122. This document discusses the 
  123. .B Elm
  124. mailer, and includes a set of example screens and a discussion
  125. of configuration (for systems administrators).  It is broken
  126. into three main parts, the \fIElm Users Guide\fR, which you're holding,
  127. the \fIElm Reference Guide\fR, and the \fIElm Alias Users Guide\fR.
  128. .P
  129. This guide contains;
  130. this introduction, a session with the mailer, a
  131. discussion of non-interactive uses of \fBElm\fR,
  132. a brief foray into the \fBElm\fR utilities,
  133. and finally, credits and references.
  134. .P
  135. The \fIElm Reference Guide\fR contains;
  136. a discussion of the \fI.elmrc\fR file,
  137. starting options of 
  138. .B Elm,
  139. outgoing mail processing,
  140. responses of various commands,
  141. the mail archive file,
  142. the Notes system,
  143. the Alias system,
  144. system aliases etc,
  145. more on the utilities,
  146. and a section for expert users.
  147. .P
  148. The \fIElm Alias Users Guide\fR contains;
  149. a further discussion of \fIuser aliases\fR
  150. and \fIgroup aliases\fR,  System aliases,
  151. how to edit and install new aliases,
  152. the hostname routing database,
  153. the domain routing database,
  154. and so on.
  155. .P
  156. Any comments or problems with any of the documention or the program
  157. itself are welcome: all installed systems should have an alias
  158. that will ensure that I receive any mail sent to `elm'.
  159. .sp 2
  160. .H 1 "The Main System"
  161. .P 1
  162. Upon entry to the program, the main screen will be 
  163. displayed as below;
  164. \" display start, constant width, remember loc for BOX
  165. .DS CB
  166. .mk a)
  167. .mk a)
  168. .ce
  169. Mailbox is '/usr/mail/mymail' with 15 messages.  [Version 1.1]
  170.  
  171. .TS
  172. r c r l l l l.
  173.  ->        1    Apr 3    rob    (24)    Doing anything tonight?
  174.         2    Apr 5    Joe    (154)    bug in gammon game
  175.         3    Apr 5    root    (13)
  176.         4    Apr 6    root    (7)    (continuation of previous message)
  177.     U    5    Apr 8    decvax!mouse    (68)    Re: net.music article decvax:495
  178.         6    Apr 13    John Jacobs    (194)    How can you hate RUSH?
  179.         7    Apr 15    kevin    (27)    More software requests
  180.     N    8    Apr 18    games    (26)    Hi there
  181.     N    9    Apr 18    Don Knuth    (354)    Your version of TeX...
  182.     N    10    Apr 23    Carl Smith    (53)    (More silly stuff
  183.     N    11    Apr 24    jad@hpcnoe    (84)    Chico?  Why go there?
  184.     N    12    Apr 24    Larry Fenske    (49)    hi there...
  185. .TE
  186. .sp
  187. .ce 3
  188. |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
  189. A)lias, C)hange mailbox, D)elete, E)dit, F)orward, G)roup reply, M)ail, 
  190. N)ext, O)ptions, P)rint, R)eply, S)ave, T)ag, Q)uit, U)ndelete, or eX)it
  191.                                                             
  192. Elm : @
  193. .sp 2
  194. \" draw box, proportional Roman font back, display end
  195. .eb
  196. .DE
  197. .P 0
  198. There are a number of things to notice about this screen;
  199. .BL 4
  200. .LI
  201. First off, it's quite possible that on your screen the current message will
  202. be indicated by an inverse bar rather than an arrow. 
  203. Don't worry about it - it's just harder to have an inverse
  204. bar in a document than an arrow!
  205. .LI
  206. The top line always displays the current mail file, 
  207. the number of messages in the file, and the current 
  208. .B Elm
  209. version number.
  210. .LI
  211. The arrow (``->'') (or bar) always points to the current message.  
  212. .LI
  213. The first few characters on each line can indicate the following:
  214. .VL 6 5
  215. .LI "U"
  216. -  an \fIU\fRrgent message
  217. .LI "N"
  218. -  a \fIN\fRew message since you last read mail
  219. .LI "E"
  220. -  an \fIE\fRxpired message (not implemented)
  221. .LI "A"
  222. -  an \fIA\fRction is associated with the message
  223. .LI "D"
  224. -  the message is marked for \fID\fReletion
  225. .LI "+"
  226. -  the message is \fITagged\fR.
  227. .LE
  228. .LI
  229. Continuing from left to right, the next field is the message
  230. number.  For the most part you can ignore these unless you want
  231. to quickly move to a specific message (as we'll see later)
  232. .LI
  233. The date associated with each message is the date the person
  234. .I sent 
  235. the message.  
  236. .LI 
  237. The next field displayed indicates who the message is from.  
  238. \fBElm\fR will try to display the \fIname\fR of the person who 
  239. sent the message, rather than the their return address/login.  
  240. Some systems don't generate the correct headers, though, hence 
  241. messages like number 11, where it's
  242. the return address of the sender...
  243. .LI
  244. The number in parentheses is the number of lines in the message.
  245. .LI
  246. The final field is the (optional) subject of the message.  Note
  247. that message 3 has no subject.
  248. .LI
  249. A maximum of twelve messages are displayed at one time*.
  250. .FS *
  251. On terminals with greater than 25 lines, more messages will be 
  252. displayed automatically.  
  253. .FE
  254. Further into
  255. the document we'll learn how to change 'pages' in the mailbox. 
  256. .LI
  257. The three line mini-menu will always 
  258. indicate what commands are available at 
  259. the current moment.  
  260. .LI
  261. Finally, the '@' character indicates where the cursor would be, awaiting
  262. your input.
  263. .LE
  264. .P 0
  265. The typical action at this point is to use the 
  266. .I <return>
  267. key to read the current message.  This particular option actually isn't
  268. noted in the mini-menu, but choosing the '?=help' option will
  269. inform you of a number of choices other than those in the 
  270. basic menu!
  271. .P 0
  272. Pressing this key will clear the screen and display the 
  273. message using the local pager 
  274. (see \fIpager\fR in the \fI.elmrc\fR file).
  275. .P 0
  276. While reading is perhaps the most fundamental function that the
  277. .B Elm
  278. program performs, there are a number of other options available,
  279. namely;
  280. \" ensure we get a reasonable chunk of this table on the page...
  281. .ne 10
  282. .sp
  283. .VL 25 0 1
  284. .LI "Command"
  285. Action
  286. .LE
  287. .sp
  288. .VL 22 3 1
  289. .LI "|"
  290. Pipe current message or tagged messages to specified system command.
  291. .LI "!"
  292. Shell escape.
  293. .LI "?"
  294. Help mode - any key pressed will be explained.
  295. .LI "+, <space>,"
  296. .LI "  or <NEXT>"
  297. Next page of headers
  298. .LI "-, or <PREV>"
  299. Previous page of headers
  300. .LI "=, or <HOME>"
  301. Set current message to 1
  302. .LI "*, or "
  303. .LI " <SHIFT>-<HOME>"
  304. Set current to last message.
  305. .LI "<n>"
  306. Set current message to number n.
  307. .LI "/"
  308. Search for pattern in subject/from lines.
  309. .LI "//"
  310. Search for pattern in entire mailbox.
  311. .LI "<"
  312. Scan message for calendar entries*
  313. .FS *
  314. Some sites might opt not to have this feature
  315. available.
  316. .FE
  317. .LI ">"
  318. A synonym for `s' - \fIsave\fR message or messages.
  319. .sp
  320. .LI "a"
  321. Alias, change to 'alias' mode 
  322. .LI "b"
  323. Bounce - remail message**
  324. .LI "c"
  325. Change to new mail file
  326. .LI "d"
  327. Delete current message
  328. .LI "<control>-D"
  329. Delete all messsages matching specified pattern
  330. .LI "e"
  331. Edit mailbox file, resyncing upon reentry.
  332. .LI "f"
  333. Forward message to specified user**
  334. .FS **
  335. The difference between \fIForward\fR and \fIBounce\fR is rather 
  336. subtle -- a forwarded message is ``from'' you, with the
  337. original message included, whereas a bounced message
  338. is still from the original sender.  
  339. .FE
  340. .LI "g" 
  341. Group reply - reply to everyone who received the current message
  342. .LI "h"
  343. Display message + headers
  344. .LI "j"
  345. Increment current message by one
  346. .LI "k"
  347. Decrement current message by one
  348. .LI "m"
  349. Mail to arbitrary user(s)
  350. .LI "n or <return>"
  351. Next message (Read current, then increment)
  352. .LI "o"
  353. Alter current system options.
  354. .LI "p"
  355. Print current message or tagged messages.
  356. .LI "r"
  357. Reply to the author of current message
  358. .LI "s"
  359. Save current message or tagged messages to file
  360. .LI "t"
  361. Tag current message.
  362. .LI "<control>-T"
  363. Tag all messages matching specified pattern.
  364. .LI "q"
  365. Quit - mail deleted, saved in mbox or left.
  366. .LI "u"
  367. Undelete current message
  368. .LI "x"
  369. Exit - don't record as read, don't save...
  370. .sp
  371. .LI "^L"
  372. Rewrite screen.
  373. .LI "^M (<return>)"
  374. Read current message
  375. .LI "^Q, DEL"
  376. Exit - don't record as read, don't save...
  377. .LE
  378. .sp
  379. .P 0
  380. That are all the commands available at the main level of the
  381. .B Elm
  382. program!  Easy to remember, right?
  383. .sp 2
  384. \" again, make sure we start on a new page please
  385. .ne 10
  386. .P 0
  387. As an example, let's enter a series of commands and indicate
  388. what the display would be after each one;
  389. .sp
  390. .P 0
  391. First off, let's go to the next page of mail with `\fI+\fR';
  392. .DS CB
  393. .mk a)
  394. .ce
  395. Mailbox is '/usr/mail/mymail' with 15 messages.  [Version 1.1]
  396.  
  397. .TS
  398. r c r l l l l.
  399.  ->    N    13    Apr 3    Jack    (17)    Wanna buy some albums cheap?
  400.     N    14    Apr 5    Jack    (8)    Cancel the previous offer!
  401.     N    15    Apr 5    sdcsvax!dx    (420)    Moving day (long) 
  402. .TE
  403.      
  404.   
  405.      
  406.      
  407.   
  408.   
  409.   
  410.   
  411.   
  412.  
  413. .ce 3
  414. |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern 
  415. A)lias, C)hange mailbox, D)elete, E)dit, F)orward, G)roup reply, M)ail
  416. N)ext, O)ptions, P)rint, R)eply, S)ave, T)ag, Q)uit, U)ndelete, or eX)it
  417.                                                             
  418. Elm : @
  419. .sp 2
  420. .eb
  421. .DE
  422. .P 0
  423. Let's read the new current message, 13, by typing <\fIreturn\fR>.
  424. .DS CB
  425. .mk a)
  426. .tl 'Message #13 from Jack''Mailed April 3, 1985 at 8:45 pm'
  427.  
  428. Hey Dave! I've got some old AC/DC and KISS albums, and as I know
  429. you are a collector, do you want to buy them off of me before
  430. I make ashtrays out of them (or frisbees...)?
  431.  
  432.                         Humourously,
  433.                                         Jack 
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442. More: @
  443. .eb
  444. .DE
  445. .P 0
  446. Needless to say, we can't let this message go by without replying!
  447. So let's press <\fIreturn\fR> to return to the main menu, 
  448. then use the
  449. .I "reply"
  450. command to respond.
  451. .P 0
  452. After pressing the `\fIr\fR' key, the program asks if a copy of the 
  453. message is desired (the character under the cursor indicates the
  454. default if <return> is pressed.  In this case, the default is 'no');
  455. .sp
  456. .nf
  457.     copy message? (y/n) @
  458. .fi
  459. .P 0
  460. We choose to answer no, so press the `\fIn\fR' key.  Next 
  461. .B Elm
  462. verifies that the subject is okay;
  463. .sp
  464. .nf
  465.     Subject: Re: Wanna buy some albums cheap?@
  466. .fi
  467. .sp
  468. Typing anything other than <return> will allow us
  469. to change the subject to something more appropriate.
  470. We decide, however, to leave it be and press <\fIreturn\fR> again.
  471. .sp
  472. Finally, we're asked if we want to send copies of this
  473. message to anyone.  We don't, so we press <\fIreturn\fR> one
  474. more time.
  475. .P 0
  476. The program then puts us
  477. in the
  478. .I vi
  479. editor with a newly created file.
  480. .P 0
  481. After having entered a suitable reply, and left the editor,
  482. the 
  483. .B Elm
  484. system then verifies that we really want to send the message with;
  485. .sp
  486.     Are you sure you want to send this message? (y/n) @
  487. .sp
  488. To which the response is `\fIy\fR' for 'yes'.  It then sends the message off
  489. to Jack, who will receive it hopefully quite soon (or at least
  490. before he makes ashtrays out of the albums!)  (we'll ignore the
  491. next message, which seems to be relevent, because these little 
  492. displays are eating up space in this document anyway!!)
  493. .sp
  494. .P 0
  495. Message 13 is still the current message,
  496. so, now let's save it and the one after it from Jack, message 14,
  497. by \fItagging\fR them both.  We press `\fIt\fR' for \fItag\fR, which 
  498. puts the '+' tag indicator on this message, move to the next
  499. message with the `\fIj\fR' key, then press `\fIs\fR' for \fIsave\fR*
  500. .FS *
  501. Another subtle note: operations that work with tagged messages also
  502. always work with the current message, so we don't need to actually
  503. \fItag\fR message 14.
  504. .FE
  505. This prompts for the file to save to;
  506. .nf
  507.  
  508.    Save messages to: @
  509.  
  510. .fi
  511. to which we answer \fIjack\fR.  The two messages are then saved to
  512. the specified file, marked for deletion, and the \fItags\fR are
  513. removed from them.
  514. .P 0
  515. The screen is now;
  516. .DS CB
  517. .mk a)
  518. .ce
  519. Mailbox is '/usr/mail/mymail' with 15 messages.  [Version 1.1]
  520. .nf
  521.  
  522. .TS
  523. r c r l l l l.
  524.  ->    \ D    13    Apr 3    Jack    (17)    Wanna buy some albums cheap?
  525.     \ D    14    Apr 5    Jack    (8)    Cancel the previous offer!
  526.     N    15    Apr 5    sdcsvax!dx    (420)    Moving day (long) 
  527. .TE
  528. .sp 10    
  529. .ce 3
  530. |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
  531. A)lias, C)hange mailbox, D)elete, E)dit, F)orward, G)roup reply, M)ail, 
  532. N)ext, O)ptions, P)rint, R)eply, S)ave, T)ag, Q)uit, U)ndelete, or eX)it
  533.                                                             
  534. Elm : @
  535. .sp 2
  536. .eb
  537. .DE
  538. .P 0
  539. Now lets go back to the first page of messages by typing '\fI=\fR';
  540. .DS CB
  541. .mk a)
  542. .ce
  543. Mailbox is '/usr/mail/mymail' with 15 messages.  [Version 1.1]
  544. .nf
  545.  
  546. .TS
  547. r c r l l l l.
  548.  ->        1    Apr 3    rob    (24)    Doing anything tonight?
  549.         2    Apr 5    Joe    (154)    bug in gammon game
  550.         3    Apr 5    root    (13)
  551.         4    Apr 6    root    (7)    (continuation of previous message)
  552.     U    5    Apr 8    decvax!mouse    (68)    Re: net.music article decvax:495
  553.         6    Apr 13    John Jacobs    (194)    How can you hate RUSH?
  554.         7    Apr 15    kevin    (27)    More software requests
  555.     N    8    Apr 18    games    (26)    Hi there
  556.     N    9    Apr 18    Don Knuth    (354)    Your version of TeX...
  557.     N    10    Apr 23    Carl Smith    (53)    (More silly stuff
  558.     N    11    Apr 24    jad@hpcnoe    (84)    Chico?  Why go there?
  559.     N    12    Apr 24    Larry Fenske    (49)    hi there...
  560. .TE
  561. .sp
  562. .ce 3
  563. |=pipe, !=shell, ?=help, <n>=set current to n, /=search pattern
  564. A)lias, C)hange mailbox, D)elete, E)dit, F)orward, G)roup reply, M)ail, 
  565. N)ext, O)ptions, P)rint, R)eply, S)ave, T)ag, Q)uit, U)ndelete, or eX)it
  566.                                                             
  567. Elm : @
  568. .sp 2
  569. .eb
  570. .DE
  571. .P 0
  572. Gee..note five not only looks mildly interesting but it's an 
  573. \fBU\fRrgent message too!  So 
  574. let's read it by typing \fI5<return>\fR
  575. to make that the current message, and press <\fIreturn\fR> again
  576. to read it.  After reading
  577. the message we decide that it's utterly worthless, not even worth
  578. replying to, let alone saving, so we'll mark it
  579. for future deletion with the `d' \fIdelete\fR key.
  580. .P 0
  581. A `D' is put next to the message now...
  582. .P 0
  583. Before we finish up, we suddenly remember that one of the 
  584. messages was supposed to be about how to write decent 
  585. documentation for Unix software, so let's try to find it...
  586. .P 0
  587. First off, we'll move back to message one with the `\fI=\fR'
  588. key and then use the `/' \fIpattern matching\fR command:
  589. .nf
  590.  
  591.     Elm : Pattern                   / = match anywhere in messages
  592.     Match pattern: @
  593.  
  594. .fi
  595. we'll type in \fIdocument\fR (it's case insensitive) and see if the system 
  596. can find it.  After a brief second or two it returns 'pattern not found.'
  597. Hmm...maybe it's not either the from or the subject of
  598. any of the messages...In case that's true, let's try using 
  599. the \fImatch anywhere in message\fR command;
  600. .P 0
  601. We again type `/' for \fIpattern matching\fR;
  602. .nf
  603.  
  604.     Elm : Pattern                      / = match anywhere in messages
  605.     Match pattern: @
  606.  
  607. .fi
  608. And now we'll use `/' again to get the match anywhere in file
  609. option.  Now the bottom of the screen looks like;
  610. .nf
  611.  
  612.     Elm : Pattern                     / = match anywhere in messages
  613.     Match pattern (in entire mailbox): @
  614.  
  615. .fi
  616. to which we respond \fIdocument\fR again.  
  617. .P 0
  618. The mailer then searches through each line of all the messages in 
  619. the file and moves the current message pointer to message 
  620. number 7.  A quick check reveals that this message indeed
  621. contains the word `document', but it's not the one we want,
  622. so we're going to just get outta here!
  623. .P 0
  624. We've had enough mail for today, so lets quit, leaving
  625. all the mail in the incoming mailbox, except those few we've
  626. marked for deletion;
  627. .sp
  628. .I Quit
  629. prompts;
  630. .sp
  631. .nf
  632.    Delete messages? (y/n) @
  633. .fi
  634. .sp
  635. to which we answer `\fIy\fR' for yes.  The next prompt is then;
  636. .sp
  637. .nf
  638.    Keep mail in incoming mailbox? (y/n) @
  639. .fi
  640. .sp
  641. to which we also answer yes...the program then quickly saves
  642. the files, removing message 5, 13 and 14 as it goes along, and exits.
  643. .sp 2
  644. .P 0
  645. As you can see, the program is pretty easy to use!  In fact, it was
  646. designed to be used without this documentation at all, so you 
  647. could toss this right now (but don't - think of the tree that 
  648. sacrificed it's precious life to allow this printout!)
  649. .sp 2
  650. .H 1 "Non-Interactive Uses of Elm"
  651. .P 1
  652. Before we discuss the \fBElm\fR utilities, it's worth noting that 
  653. there are a couple of other ways to use the main mail
  654. system, namely to 'send only' and to send files (batchmail).
  655. .P
  656. To send a message to someone without any of the associated 
  657. overhead of the main system being loaded, you can invoke the
  658. mailer with the name(s) of the people to send to.  The 
  659. mailer will then prompt for Subject, Copies, and then drop
  660. you in your editor (defined in the ".elmrc" file) to compose
  661. the message.   When composition is complete, the program 
  662. verifies transmission then terminates.  For example;
  663. .nf
  664.  
  665.   $ \fBelm dave_taylor\fR
  666.   To: hplabs!taylor
  667.   Subject: \fBthis is a test\fR
  668.   Copies To: \fB<return>\fR
  669.  
  670.   <invokes editor, message composed, then>
  671.  
  672.   Are you sure you want to send this? (y/n) \fBy\fR
  673.  
  674.   mail sent.
  675.  
  676.   $
  677.  
  678. .fi
  679. Note that the user input is in \fBbold\fR face, so you can see that
  680. the mailer verified the alias expansion too!
  681. .sp
  682. .P
  683. The mailer also supports batch type mailing, of files and so on,
  684. by using the following starting sequence;
  685. .nf
  686.  
  687.   $ \fBelm -s "File help.c" dave_taylor < help.c\fR
  688.  
  689. .fi
  690. which will read in the file and transmit it to the specified user
  691. with the specified subject.  Note that the program is intelligent
  692. enough to check to see what the standard input is from this 
  693. invocation, so a command of the form
  694. .nf
  695.  
  696.   $ \fBelm -s "file help.c" dave_taylor\fR
  697.  
  698. .fi
  699. would result in the following sequence since the program is reading
  700. the "standard in" for information;
  701. .nf
  702.  
  703.   $ \fBelm -s "file help.c" dave_taylor\fR
  704.   To: hplabs!taylor
  705.   Subject: file help.c
  706.  
  707.   Enter your message, ending with ^D
  708.  
  709.   \fBthis is the message
  710.   Please don't ask me why I used this wierd mode!
  711.  
  712.   ^D\fR
  713.   <end-of-message>
  714.  
  715.   $
  716.  
  717. .fi
  718. which is reasonable behaviour!!  (not only that, but this is 
  719. almost exactly what \fI/bin/mail\fR does in the same situation!!)
  720. .sp 2
  721. .H 1 "The Elm Utilities"
  722. .sp
  723. .P
  724. The \fBElm\fR program is really much more than a single
  725. program for reading and writing mail.  It's a unified 
  726. environment for intelligently dealing with electronic
  727. mail.  As a consequence, it contains a number of other
  728. programs to aid in the easy processing of email, 
  729. including the following pieces;
  730. .VL 14 2
  731. .LI "checkalias"
  732. A script that contains the line \fBelm -c \$*\fR.
  733. .LI "newalias"
  734. This program installs new aliases - please see the 
  735. \fIElm Alias Users Guide\fR for more information.
  736. .LI "newmail"
  737. This program is designed to be put into `background' and then
  738. monitors your incoming mailbox for new mail.  Whenever you
  739. receive new mail, the program will asynchronously write to the
  740. screen a notification, including whom the new mail is from and 
  741. what the subjects of the messages are.  The output looks like;
  742. .DS
  743. New mail has arrived;
  744.  
  745. From Jimmy Carter - Urgent matters of state
  746. From joe@ucbvax.arpa - Did I hear someone say PARTY??
  747. .DE
  748. This is quite helpful for deciding in `real time' whether it's
  749. necessary to read the mail immediately or not.
  750. .LI "wnewmail"
  751. This is extremely similar to \fInewmail\fR but is 
  752. slightly modified to run in a windowing environment.
  753. The differences are that it stays in `foreground' (thereby
  754. taking over a window entirely), and outputs for new 
  755. mail in a slightly more succint format;
  756. .DS
  757. Mail from Jimmy Carter -- Urgent matters of state
  758. Mail From joe@ucbvax.arpa -- Did I hear someone say PARTY??
  759. .DE
  760. .LI "readmsg"
  761. This handy little program can be used in two ways...first off,
  762. it can be used to easily read a specific message in the
  763. incoming mailbox, specified by ordinal number, by a string that
  764. the message contains, or by the metacharacter `$' which 
  765. represents the last message in the mailbox.
  766. .P 0
  767. For example;
  768. .DS
  769. $ \fBreadmsg 4 5 9 | lpr\fR
  770. .DE 
  771. would generate a printout, \fIsans\fR headers, of the fourth,
  772. fifth and ninth messages in your mailbox.
  773. .DS
  774. $ \fBreadmsg Carter | page\fR
  775. .DE
  776. would be a fast way to read what `ole Jimmy has to say...
  777. and
  778. .DS
  779. $ \fBreadmsg -h hear someone say\fR
  780. .DE
  781. would list, including the message headers, the message
  782. containing the string ``hear someone say''.
  783. .LI "from"
  784. Similar to the Berkeley \fIfrom\fR command, this will
  785. give you a ``table of contents'' of either the current
  786. mailbox or a mailbox of your choice.   It's useful to
  787. see what mail is pending, or what's in a mailbox.
  788. .LI "printmail"
  789. This is a formatting routine that knows that mailboxes look
  790. like and inserts either formfeeds or dashed lines between
  791. messages.  It can be used in either of two ways - either 
  792. a mailbox file can be \fIpiped\fR to it or it can be given
  793. a list of mailbox file names to format.  The only option
  794. on the program is `-d' which indicates that you want to have
  795. a dashed line separating messages rather than a formfeed.
  796. .P 0
  797. For example;
  798. .DS
  799. $ \fBprintmail -d | lpr\fR
  800. .DE
  801. will print out your current incoming mailbox, separating the messages
  802. by a dashed line.
  803. .DS
  804. $ \fBreadmsg 3 4 10 | printmail | lpr\fR
  805. .DE
  806. will print messages 3, 4, and 10 from your incoming mailbox,
  807. separated by formfeeds (that is, each message will start on it's
  808. own page).
  809. .P 0
  810. Finally,
  811. .DS
  812. $ \fBprintmail ~/mbox ~/Mail/mail.sent | lpr\fR
  813. .DE
  814. will print all the messages saved in \fImbox\fR and in your \fImail.sent\fR
  815. files.  The second file will be started on a new page regardless of
  816. the presence or absence of the `-d' dashed line option.
  817. .LI "newalias"
  818. This is used to install new user/group aliases.  Please see the
  819. \fIElm Alias Users Guide\fR for further information on this!
  820. .LI "fastmail"
  821. Sometimes you want to have a batchmailing system that works as
  822. quickly as possible, not bothering with aliases or any of the
  823. other ``deluxe'' features of \fBElm\fR.  An example of this would
  824. be if you have a large mailing list for a newsletter, say.
  825. This command, \fIfastmail\fR, is designed just for that purpose.
  826. It avoids the lengthy startup time of \fBElm\fR while still
  827. generating valid \fIRFC-822\fR* mail.
  828. .FS *
  829. If you don't know what RFC-822 is, don't worry about it!
  830. .FE
  831. Please see the `man' entry for more information on this
  832. command (use \fBman fastmail\fR after installation).
  833. .LE
  834. .sp 3
  835. .H 1 "Credits and So on"
  836. .P
  837. This mailer has been evolving over the past year or so with
  838. invaluable comments on the interface and general mail 
  839. issues from the following people;
  840. Walter Underwood, Larry Fenske, Rob Sartin,
  841. John Dilley (who got the SPECTRUM version checked out, too!) and Carl DierschowX.
  842. .sp
  843. For the Berkeley implementation, lots of help came from
  844. John Lebovitz and Ken Stone.
  845. .sp
  846. For the Amdahl/UTS implementation, thanks to Scott McGregor and
  847. Stan Isaacs.
  848. .sp
  849. For the Sun problems, Dave England in Lancaster (UK) turned out to be
  850. ``bloody useful'', as he would no doubt say.
  851. .sp
  852. The Pyramid version is due to the work of Steve Malone
  853. of the University of Washington.
  854. .sp
  855. A few others have been amazingly disciplined at reporting problems
  856. and (usually, much to my relief) indicating the fixes needed,
  857. namely Guy Hillyer and Bruce Townsend. 
  858. .sp
  859. There have been many, many others, too numerous to mention, that
  860. have inspired me with questions like "Why can't Elm..." or 
  861. "Why does it ..." or "Can we make it..." too.  
  862. .sp
  863. Also helpful was the ability to have my `own' machine to 
  864. close up the many many iterative loops that this software
  865. has gone through - since being on a big multi-user machine
  866. tends to slow it down to a standstill...
  867. For that, I thank HP Colorado Networks Division for their 
  868. support, and now HP Labs for the wonderful working environment
  869. that I have here (more than any one person is safe having!)
  870. .P
  871. Finally, it's also been a very useful experience overall,
  872. confirming my beliefs that iterative software design and
  873. keeping a close watch on users (not to mention an open
  874. mind and mailbox!) improves a product manyfold.
  875.