Added -check/-nocheck switches to sortm(1). Also removed obsolete
[mmh] / docs / historical / ADMIN-19910201.txt
1
2
3
4
5
6
7
8
9                                   _\bd_\bi_\bs_\bc_\ba_\br_\bd _\bt_\bh_\bi_\bs _\bp_\ba_\bg_\be
10
11
12
13
14                                      The RAND _\bM_\bH
15                                    Message Handling
16                                        System:
17                                 Administrator's Guide
18
19                                      UCI Version
20
21
22                                    February 1, 1991
23                                     6.7.1a #6[UCI]
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60 \e9\e9
61
62
63
64
65
66
67
68
69
70
71
72
73                                    _\b1. _\bI_\bN_\bT_\bR_\bO_\bD_\bU_\bC_\bT_\bI_\bO_\bN
74
75
76
77 \e9
78
79
80 \e9       _\bS_\bc_\bo_\bp_\be _\bo_\bf _\bt_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt
81
82             This is the Administrator's Guide to _\bM_\bH.  If you don't maintain  an
83        _\bM_\bH  system,  don't read this; the information is entirely too technical.
84        If you are a maintainer, then read this guide until you  understand  it,
85        follow the advice it gives, and then forget about the guide.
86
87             Before continuing, I'll point out two facts:
88
89
90
91                  _\bT_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt _\bw_\bi_\bl_\bl _\bn_\be_\bv_\be_\br _\bc_\bo_\bn_\bt_\ba_\bi_\bn _\ba_\bl_\bl _\bt_\bh_\be _\bi_\bn_\bf_\bo_\br_\bm_\ba_\bt_\bi_\bo_\bn
92                                _\by_\bo_\bu _\bn_\be_\be_\bd _\bt_\bo _\bm_\ba_\bi_\bn_\bt_\ba_\bi_\bn _\bM_\bH.
93
94                _\bF_\bu_\br_\bt_\bh_\be_\br_\bm_\bo_\br_\be, _\bt_\bh_\bi_\bs _\bd_\bo_\bc_\bu_\bm_\be_\bn_\bt _\bw_\bi_\bl_\bl _\bn_\be_\bv_\be_\br _\bc_\bo_\bn_\bt_\ba_\bi_\bn _\be_\bv_\be_\br_\by_\bt_\bh_\bi_\bn_\bg
95                              _\bI _\bk_\bn_\bo_\bw _\ba_\bb_\bo_\bu_\bt _\bm_\ba_\bi_\bn_\bt_\ba_\bi_\bn_\bi_\bn_\bg _\bM_\bH.
96
97
98
99        _\bM_\bH, and mailsystems in general, are more complex than most people  real-
100        ize.   A  combination of experience, intuition, and tenacity is required
101        to maintain _\bM_\bH properly.  This document can provide only guidelines  for
102        bringing  up  an  _\bM_\bH  system  and maintaining it.  There is a sufficient
103        amount of customization possible that not all events or problems can  be
104        forseen.
105
106
107
108 \e9       _\bS_\bu_\bm_\bm_\ba_\br_\by
109
110             During _\bM_\bH generation, you specify several  configuration  constants
111        to  the _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg program.  These directives take into consideration such
112        issues as hardware and operating system dependencies in the source code.
113        They also factor out some major mailsystem administrative decisions that
114        are likely to be made consistantly at sites with  more  than  one  host.
115        The  manual  entry  _\bm_\bh-_\bg_\be_\bn (8)  describes  all  the static configuration
116        directives.
117
118             However,  when  you  install  _\bM_\bH  you  may  wish   to   make   some
119        site-specific  or  host-specific  changes  which aren't hardware or even
120        software related.  Rather, they are  administrative  decisions.   That's
121        what  this  guide is for: it describes all of the dynamically tailorable
122        directives.
123
124 \e9
125
126
127
128
129
130
131
132
133
134                                          -2-
135
136
137             Usually,  after  installing   _\bM_\bH,   you'll   want   to   edit   the
138        /usr/local/lib/mh/mtstailor  file.   This  file  fine-tunes  the  way _\bM_\bH
139        interacts with the message transport  system  (MTS).   Section  2  talks
140        about the MTS interface and MTS tailoring.
141
142             After that, if you're running the UCI BBoards facility, or the  POP
143        facility, you'll need to know how to maintain those systems.  Sections 3
144        and 4 talk about these.
145
146             If for some reason you're not running an MTS that can  handle  both
147        Internet  and _\bU_\bU_\bC_\bP traffic, you should read-up on mail filtering in Sec-
148        tion 5.  Although this is considered "old technology" now,  the  mechan-
149        isms  described  in Section 5 were really quite useful when first intro-
150        duced way back in 1981.
151
152             Finally, you may want to know how to modify  the  _\bM_\bH  source  tree.
153        Section 6 talks (a little bit) about that.
154
155             The last two sections describe a few hidden features in _\bM_\bH, and the
156        configuration options that were in effect when this guide was generated.
157
158             After _\bM_\bH is installed, you should define the  address  "Bug-MH"  to
159        map to either you or the _\bP_\bo_\bs_\bt_\bM_\ba_\bs_\bt_\be_\br at your site.
160
161             In addition, if you want to tailor  the  behavior  of  _\bM_\bH  for  new
162        users,  you  can  create and edit the file /usr/local/lib/mh/mh.profile.
163        When the _\bi_\bn_\bs_\bt_\ba_\bl_\bl-_\bm_\bh program is run for a user, if this file  exists,  it
164        will copy it into the user's .mh_profile file.
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188 \e9
189 \e9
190
191
192
193
194
195
196
197
198
199
200
201
202                                  _\b2. _\bT_\bH_\bE _\bM_\bT_\bS _\bI_\bN_\bT_\bE_\bR_\bF_\bA_\bC_\bE
203
204
205
206 \e9
207             The    file    /usr/local/lib/mh/mtstailor    customizes    certain
208        host-specific  parameters  of  _\bM_\bH related primarily to interactions with
209        the  transport  system.   The  parameters  in  this  file  override  the
210        compiled-in  defaults given during _\bM_\bH configuration.  Rather than recom-
211        piling _\bM_\bH on each host to make minor customizations, it is easier simply
212        to  modify  the  mtstailor file.  All hosts at a given site normally use
213        the same mtstailor file, though this need not be the case.
214
215             It is a good idea to run  the  _\bc_\bo_\bn_\bf_\bl_\bi_\bc_\bt (8)  program  each  morning
216        under _\bc_\br_\bo_\bn.  The following line usually suffices:
217
218             00 05 * * * /usr/local/lib/mh/conflict -mail PostMaster
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254 \e9                                    -3-
255
256
257
258
259
260
261
262
263
264   MH-TAILOR(5)                      -4-                       MH-TAILOR(5)
265
266
267   _\bN_\bA_\bM_\bE
268        /usr/local/lib/mh/mtstailor - system customization for  MH  message
269   system
270
271   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
272        any _\bM_\bH command that interacts with the MTS
273
274   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
275
276        The file /usr/local/lib/mh/mtstailor defines run-time  options  for
277        those  _\bM_\bH  programs  which interact (in some form) with the message
278        transport system.  At present, these (user) programs are: _\ba_\bp,  _\bc_\bo_\bn_\b-
279        _\bf_\bl_\bi_\bc_\bt, _\bi_\bn_\bc, _\bm_\bs_\bg_\bc_\bh_\bk, _\bm_\bs_\bh, _\bp_\bo_\bs_\bt, _\br_\bc_\bv_\bd_\bi_\bs_\bt, and _\br_\bc_\bv_\bp_\ba_\bc_\bk.
280
281        The options available along with default values and  a  description
282        of their meanings are listed below:
283
284        localname:
285             The host name _\bM_\bH considers local.  If not  set,  depending  on
286             the  version  of UNIX you're running, _\bM_\bH will query the system
287             for this value (e.g., <whoami.h>,  gethostname,  etc.).   This
288             has  no  equivalent  in the _\bM_\bH configuration file.  POP client
289             hosts have this value set to the name of the POP service host.
290
291        systemname:
292             The name of the local host in the _\bU_\bU_\bC_\bP "domain".  If not  set,
293             depending on the version of UNIX you're running, _\bM_\bH will query
294             the system for this value.  This has no equivalent in  the  _\bM_\bH
295             configuration file.
296
297        mmdfldir: /usr/spool/mail
298             The directory where maildrops are kept.  If this is empty, the
299             user's  home  directory  is  used.   This overrides the "mail"
300             field in the _\bM_\bH configuration file.
301
302        mmdflfil:
303             The name of the maildrop file in the directory where maildrops
304             are  kept.   If  this is empty, the user's login name is used.
305             This overrides the "mail" field in the _\bM_\bH configuration file.
306
307        mmdelim1: \001\001\001\001\n
308             The beginning-of-message delimiter for maildrops.
309
310        mmdelim2: \001\001\001\001\n
311             The end-of-message delimiter for maildrops.
312
313        mmailid: 0
314             If non-zero, then  support  for  MMailids  in  /etc/passwd  is
315             enabled.   Basically,  the pw_gecos field in the password file
316             is of the form
317
318                  My Full Name <mailid>
319
320   [mh.6]                           MH.6.7                      UCI version
321
322
323
324
325
326
327
328
329
330   MH-TAILOR(5)                      -5-                       MH-TAILOR(5)
331
332
333             The _\bM_\bH internal routines that deal with user  and  full  names
334             will return "mailid" and "My Full Name" respectively.
335
336        lockstyle: 0
337             The locking-discipline to perform.  A value of  "0"  means  to
338             use  _\bf_\bl_\bo_\bc_\bk  if  available,  or _\bl_\bo_\bc_\bk_\bf if LOCKF was defined when
339             building _\bM_\bH.  On non-BSD42 systems, standard _\bB_\be_\bl_\bl_\bM_\ba_\bi_\bl  locking
340             is  used.  A value of "1" means to use _\bB_\be_\bl_\bl_\bM_\ba_\bi_\bl locking always
341             (the name of the lock is based on the file name).  A value  of
342             "2"  means to use _\bM_\bM_\bD_\bF locking always (the name of the lock is
343             based on device/inode pairs).
344
345        lockldir:
346             The name of the directory for making locks.   If  your  system
347             doesn't  have the _\bf_\bl_\bo_\bc_\bk or _\bl_\bo_\bc_\bk_\bf syscalls, then this directory
348             is used when creating locks.  If the value is empty, then  the
349             directory of the file to be locked is used.
350
351        maildelivery: /usr/local/lib/mh/maildelivery
352             The name of the system-wide default ._\bm_\ba_\bi_\bl_\bd_\be_\bl_\bi_\bv_\be_\br_\by  file.   See
353             _\bm_\bh_\bo_\bo_\bk (1) for the details.
354
355        everyone: 200
356             The highest user-id which should NOT receive mail addressed to
357             "everyone".
358
359        noshell:
360             If set, then each user-id greater than "everyone" that  has  a
361             login  shell  equivalent to the given value (e.g., "/bin/csh")
362             indicates that mail for "everyone" should not be sent to them.
363             This is useful for handling admin, dummy, and guest logins.
364
365     _\bM_\ba_\bi_\bl _\bF_\bi_\bl_\bt_\be_\br_\bi_\bn_\bg
366
367        These  options  are  only  available  if  you  compiled   _\bM_\bH   with
368        "options MF".
369
370        uucpchan: name of _\bU_\bU_\bC_\bP channel
371             Usually "UUCP".  This has no equivalent in the  _\bM_\bH  configura-
372             tion file.
373
374        uucpldir: /usr/spool/mail
375             The name of the directory where _\bU_\bU_\bC_\bP maildrops are kept.  This
376             has no equivalent in the _\bM_\bH configuration file.
377
378        uucplfil:
379             The name of the maildrop file  in  the  directory  where  _\bU_\bU_\bC_\bP
380             maildrops  are  kept.  If this is empty, the user's login name
381             is used.  This has no equivalent in the _\bM_\bH configuration file.
382
383        umincproc: /usr/local/lib/mh/uminc
384             The path to the program that filters _\bU_\bU_\bC_\bP-style  maildrops  to
385
386   [mh.6]                           MH.6.7                      UCI version
387
388
389
390
391
392
393
394
395
396   MH-TAILOR(5)                      -6-                       MH-TAILOR(5)
397
398
399             _\bM_\bM_\bD_\bF-style maildrops.
400
401     _\bS_\bt_\ba_\bn_\bd-_\bA_\bl_\bo_\bn_\be _\bD_\be_\bl_\bi_\bv_\be_\br_\by
402
403        These options are only available if you compiled _\bM_\bH to  use  stand-
404        alone delivery (i.e., "mts: mh").
405
406        mailqdir: /usr/spool/netmail
407             The directory where network mail is queued.
408
409        tmailqdir: /usr/tmp
410             The directory where network mail queue files are built.
411
412        syscpy: 1
413             If ON, unauthorized mail is copied to the overseer.
414
415        overseer: root
416             The user that receives reports of unauthorized mail.
417
418        mailer: root
419             The user acting for the mail system.
420
421        fromtmp: /tmp/rml.f.XXXXXX
422             The _\bm_\bk_\bt_\be_\bm_\bp template for storing from lines.
423
424        msgtmp: /tmp/rml.m.XXXXXX
425             The _\bm_\bk_\bt_\be_\bm_\bp template for storing the rest of the message.
426
427        errtmp: /tmp/rml.e.XXXXXX
428             The _\bm_\bk_\bt_\be_\bm_\bp template for  storing  error  messages  from  other
429             mailers.
430
431        tmpmode: 0600
432             The octal mode which temporary files are set to.
433
434        okhosts: /usr/local/lib/mh/Rmail.OKHosts
435             A file containing a list of hosts that can sent ARPAnet mail.
436
437        okdests: /usr/local/lib/mh/RMail.OKDests
438             A file containing a list of  hosts  that  can  always  receive
439             mail.
440
441     _\bT_\bh_\be `/_\bs_\bm_\bt_\bp' _\bM_\bT_\bS _\bS_\bu_\bf_\bf_\bi_\bx
442
443        These options are only  available  if  you  compiled  _\bM_\bH  with  the
444        "/smtp" suffix to your "mts:" configuration.
445
446        hostable: /usr/local/lib/mh/hosts
447             The exceptions file for /etc/hosts used by _\bp_\bo_\bs_\bt to try to find
448             official names.  The format of this file is quite simple:
449
450                  1. Comments are surrounded by sharp (`#') and newline.
451
452   [mh.6]                           MH.6.7                      UCI version
453
454
455
456
457
458
459
460
461
462   MH-TAILOR(5)                      -7-                       MH-TAILOR(5)
463
464
465                  2. Words are surrounded by whitespace.
466                  3. The first word on the line is the official name  of  a
467                  host.
468                  4. All words following the official names are aliases for
469                  that host.
470
471        servers: localhost \01localnet
472             A lists of hosts and networks which to look for  SMTP  servers
473             when posting local mail.  It turns out this is a major win for
474             hosts which don't run an message transport system.  The  value
475             of  "servers"  should  be one or more items.  Each item is the
476             name of either a host or a net (in the  latter  case,  precede
477             the  name  of  the  net by a \01).  This list is searched when
478             looking for a smtp server to post mail.  If a host is present,
479             the SMTP port on that host is tried.  If a net is present, the
480             SMTP port on each host in that net is tried.  Note that if you
481             are  running  with  the BIND code, then any networks specified
482             are ignored (sorry, the interface went away under BIND).
483
484     _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
485
486        This option is only available if you compiled _\bM_\bH to use _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl as
487        your delivery agent (i.e., "mts: sendmail").
488
489        sendmail: /usr/lib/sendmail
490             The pathname to the _\bs_\be_\bn_\bd_\bm_\ba_\bi_\bl program.
491
492     _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl
493
494        This option is only available if you compiled _\bM_\bH with  POP  support
495        enabled (i.e., "pop: on").
496
497        pophost:
498             The name of the default POP service host.  If this is not set,
499             then _\bM_\bH looks in the standard maildrop areas for waiting mail,
500             otherwise the named POP service host is consulted.
501
502     _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bD_\be_\bl_\bi_\bv_\be_\br_\by
503
504        This  option  is  only  available   if   you   compiled   _\bM_\bH   with
505        "bbdelivery: on".
506
507        bbdomain:
508             The local BBoards domain (a UCI hack).
509
510     _\bB_\bB_\bo_\ba_\br_\bd_\bs & _\bT_\bh_\be _\bP_\bO_\bP
511
512        These  options  are  only  available  if  you  compiled   _\bM_\bH   with
513        "bboards: pop" and "pop: on".
514
515        popbbhost:
516             The POP service host which also acts as a BBoard server.  This
517
518   [mh.6]                           MH.6.7                      UCI version
519
520
521
522
523
524
525
526
527
528   MH-TAILOR(5)                      -8-                       MH-TAILOR(5)
529
530
531             variable should be set on the POP BBoards client host.
532
533        popbbuser:
534             The guest account on the POP/BB service host.  This should  be
535             a  different  login ID than either the POP user or the BBoards
536             user.  (The user-id "ftp" is highly recommended.)  This  vari-
537             able  should be set on both the POP BBoards client and service
538             hosts.
539
540        popbblist: /usr/local/lib/mh/hosts.popbb
541             A file containing of lists of hosts that are  allowed  to  use
542             the  POP  facility  to access BBoards using the guest account.
543             If this file is not present, then  no  check  is  made.   This
544             variable should be set on the POP BBoards service host.
545
546     _\bB_\bB_\bo_\ba_\br_\bd_\bs & _\bT_\bh_\be _\bN_\bN_\bT_\bP
547
548        This  option  is  only  available   if   you   compiled   _\bM_\bH   with
549        "bboards: nntp" and "pop: on".
550
551        nntphost:
552             The host which  provides  the  NNTP  service.   This  variable
553             should be set on the NNTP BBoards client host.
554
555     _\bF_\bi_\bl_\be _\bL_\bo_\bc_\bk_\bi_\bn_\bg
556
557        A few words on locking: _\bM_\bH has a flexible locking system for making
558        locks  on  files.   There are two mtstailor variables you should be
559        aware of "lockstyle" and "lockldir".  The first controls the method
560        of  locking,  the  second  says where lock files should be created.
561        The "lockstyle" variable can take on three  values:  0,  1,  2.   A
562        value  of  0 is useful on BSD42 systems.  If you included the LOCKF
563        option when building _\bM_\bH, the _\bl_\bo_\bc_\bk_\bf syscall is used,  otherwise  the
564        _\bf_\bl_\bo_\bc_\bk syscall is used.  If you're not on a 4.2BSD system, a locking
565        style of 0 is considered the same as locking style 1.
566
567        A value of 1 or 2 specifies that a file  should  be  created  whose
568        existence  means "locked" and whose non-existence means "unlocked".
569        A value of 1 says to construct the lockname by appending ".lock" to
570        the  name of the file being locked.  A value of 2 says to construct
571        the lockname by looking at the device and inode numbers of the file
572        being  locked.   If  the "lockldir" variable is not specified, lock
573        files will be created in the directory where the file being  locked
574        resides.   Otherwise,  lock  files will be created in the directory
575        specified by "lockldir".  Prior to installing _\bM_\bH,  you  should  see
576        how locking is done at your site, and set the appropriate values.
577
578   _\bF_\bi_\bl_\be_\bs
579        /usr/local/lib/mh/mtstailor         tailor file
580
581
582 \e9
583 \e9  [mh.6]                           MH.6.7                      UCI version
584
585
586
587
588
589
590
591
592
593   MH-TAILOR(5)                      -9-                       MH-TAILOR(5)
594
595
596   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
597        None
598
599
600   _\bS_\be_\be _\bA_\bl_\bs_\bo
601        mh-gen(8), mh-mts(8)
602
603
604   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
605        As listed above
606
607
608   _\bC_\bo_\bn_\bt_\be_\bx_\bt
609        None
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647 \e9
648 \e9  [mh.6]                           MH.6.7                      UCI version
649
650
651
652
653
654
655
656
657
658   MH-MTS(8)                         -10-                         MH-MTS(8)
659
660
661   _\bN_\bA_\bM_\bE
662        mh-mts - the MH interface to the message transport system
663
664   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
665        SendMail
666
667        MMDF (any release)
668
669        stand-alone
670
671   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
672
673        _\bM_\bH can use a wide range of message  transport  systems  to  deliver
674        mail.   Although the _\bM_\bH administrator usually doesn't get to choose
675        which MTS to use (since  it's  already  in  place),  this  document
676        briefly describes the interfaces.
677
678        When communicating with _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, _\bM_\bH always uses the SMTP  to  post
679        mail.   Depending  on the _\bM_\bH configuration, _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl may be invoked
680        directly (via a _\bf_\bo_\br_\bk and an _\be_\bx_\be_\bc), or _\bM_\bH may open a TCP/IP  connec-
681        tion to the SMTP server on the localhost.
682
683        When communicating with _\bM_\bM_\bD_\bF, normally _\bM_\bH uses the  "mm_"  routines
684        to  post  mail.   However,  depending  on  the _\bM_\bH configuration, _\bM_\bH
685        instead may open a TCP/IP connection to  the  SMTP  server  on  the
686        localhost.
687
688        When using the stand-alone system (NOT  recommended),  _\bM_\bH  delivers
689        local  mail  itself  and queues _\bU_\bU_\bC_\bP and network mail.  The network
690        mail portion will probably have to be modified to reflect the local
691        host's  tastes,  since there is no well-known practice in this area
692        for all types of UNIX hosts.
693
694        If you are running a UNIX system with TCP/IP networking, then it is
695        felt  that  the best interface is achieved by using either _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl
696        or _\bM_\bM_\bD_\bF with the SMTP option.  This gives greater flexibility.   To
697        enable this option you append the /smtp suffix to the mts option in
698        the _\bM_\bH configuration.  This yields two primary  advantages:  First,
699        you  don't  have to know where _\bs_\bu_\bb_\bm_\bi_\bt or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl live.  This means
700        that _\bM_\bH binaries (e.g., _\bp_\bo_\bs_\bt ) don't have to have this  information
701        hard-coded,  or can run different programs altogether; and, second,
702        you can post mail with the server  on  different  systems,  so  you
703        don't  need either _\bM_\bM_\bD_\bF or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl on your local host.  Big win in
704        conserving cycles and disk space.  Since _\bM_\bH supports the notion  of
705        a server search-list in this respect, this approach can be tolerant
706        of faults.  Be sure to set "servers:" as described in  mh-tailor(8)
707        if you use this option.
708
709        There are four disadvantages to using the SMTP option: First,  only
710        UNIX  systems  with TCP/IP are supported.  Second, you need to have
711        an SMTP server running somewhere on any network your local host can
712        reach.   Third, this bypasses any authentication mechanisms in _\bM_\bM_\bD_\bF
713
714   [mh.6]                           MH.6.7                      UCI version
715
716
717
718
719
720
721
722
723
724   MH-MTS(8)                         -11-                         MH-MTS(8)
725
726
727        or _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl.  Fourth, the file  /etc/hosts  is  used  for  hostname
728        lookups  (although  there  is  an  exception file).  In response to
729        these disadvantages though: First, there's got to be an SMTP server
730        somewhere around if you're in the Internet or have a local network.
731        Since the server search-list  is  very  general,  a  wide-range  of
732        options are possible.  Second, SMTP should be fixed to have authen-
733        tication mechanisms in it, like POP.  Third, _\bM_\bH won't choke on mail
734        to  hosts  whose  official  names  it can't verify, it'll just plug
735        along (and besides if you enable the  BERK  or  DUMB  configuration
736        options, _\bM_\bH ignores the hosts file altogether).
737
738   _\bF_\bi_\bl_\be_\bs
739        /usr/local/lib/mh/mtstailor         tailor file
740
741
742   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
743        None
744
745
746   _\bS_\be_\be _\bA_\bl_\bs_\bo
747        _\bM_\bM_\bD_\bF-_\bI_\bI: _\bA _\bT_\be_\bc_\bh_\bn_\bi_\bc_\ba_\bl _\bR_\be_\bv_\bi_\be_\bw, Proceedings, Usenix Summer '84 Confer-
748        ence
749        _\bS_\bE_\bN_\bD_\bM_\bA_\bI_\bL -- _\bA_\bn _\bI_\bn_\bt_\be_\br_\bn_\be_\bt_\bw_\bo_\br_\bk _\bM_\ba_\bi_\bl _\bR_\bo_\bu_\bt_\be_\br
750        mh-tailor(8), post(8)
751
752
753   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
754        None
755
756
757   _\bC_\bo_\bn_\bt_\be_\bx_\bt
758        None
759
760
761   _\bB_\bu_\bg_\bs
762        The /usr/local/lib/mh/mtstailor file ignores the information in the
763        _\bM_\bM_\bD_\bF-_\bI_\bI tailoring file.  It should not.
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778 \e9
779 \e9       [mh.6]                           MH.6.7                      UCI version
780
781
782
783
784
785
786
787
788
789
790
791
792                                       _\b3. _\bB_\bB_\bO_\bA_\bR_\bD_\bS
793
794
795
796 \e9
797             The UCI BBoards facility has two aspects: message reading, and mes-
798        sage  delivery.   The configuration directives applicable to BBoards are
799        "bboards: on/off/pop/nntp" and "bbdelivery: on/off".
800
801
802 \e9       _\bB_\bB_\bo_\ba_\br_\bd _\bD_\be_\bl_\bi_\bv_\be_\br_\by
803
804             If you enabled BBoards delivery ("bbdelivery:  on")  during  confi-
805        guration,  then  the initial environment for bboards delivery was set-up
806        during installation.  A BBoard called "system" is established, which  is
807        the BBoard for general discussion.
808
809             To add more BBoards,  become  the  "bboards"  user,  and  edit  the
810        /usr/bboards/BBoards  file.   The file support/bboards/Example is a copy
811        of the /usr/bboards/BBoards file that we use at UCI.   When  you  add  a
812        BBoard,  you  don't  have  to  create  the files associated with it, the
813        BBoards delivery system will do that automatically.
814
815             Private BBoards may be created.   To  add  the  fictitious  private
816        BBoard  "hacks",  add  the appropriate entry to the BBoards file, create
817        the empty file /usr/bboards/hacks.mbox (or whatever), change the mode of
818        this file to 0640, and change the group of the file to be the groupid of
819        the people that you want to be able to read it.  Also be sure to add the
820        "bboards"  user  to  this  group (in /etc/group), so the archives can be
821        owned correctly.
822
823             By using the special INVIS  flag  for  a  BBoard,  special  purpose
824        BBoards  may be set-up which are invisible to the _\bM_\bH user.  For example,
825        if a site distributes a BBoard both locally to a number of machines  and
826        to a number of distant machines.  It might be useful to have two distri-
827        bution lists: one for all machines on the list, and the other for  local
828        machines  only.  This is actually very simple to do.  For the main list,
829        put the standard entry of information in the /usr/bboards/BBoards  file,
830        with  the  complete distribution list.  For the local machines list, and
831        add a similar entry to the /usr/bboards/BBoards file.   All  the  fields
832        should  be the same except three: the BBoard name should reflect a local
833        designation (e.g., "l-hacks"), the distribution list should contain only
834        machines at the local site, and the flags field should contain the INVIS
835        flag.  Since the two entries share the same primary and  archive  files,
836        messages  sent to either list are read by local users, while only thoses
837        messages sent to the main list are read by all users.
838
839             Two automatic facilities for dealing with BBoards exist:  automatic
840        archiving and automatic aliasing.  The file support/bboards/crontab con-
841        tains some entries that you should add to your /usr/lib/crontab file  to
842        run  the  specified  programs at times that are convenient for you.  The
843
844                                          -12-
845
846
847
848
849
850
851
852
853
854                                          -13-
855
856
857        bboards.daily file is run once a day and generates an alias file for _\bM_\bH.
858        By  using  this  file,  users of _\bM_\bH can use, for example, "unix-wizards"
859        instead of "unix-wizards@brl-vgr" when they want to send  a  message  to
860        the  "unix-wizards"  discussion  group.   This is a major win, since you
861        just have to know the name of the group,  not  the  address  where  it's
862        located.
863
864             The bboards.weekly file is run once a week and handles old messages
865        (those  received  more than 12 days ago) in the BBoards area.  In short,
866        those BBoards which are marked for automatic archiving will  have  their
867        old messages placed in the /usr/bboards/archive/ area, or have their old
868        messages removed.  Not only does this make BBoards faster to  read,  but
869        it conveniently partitions the new messages from the old messages so you
870        can easily put the old messages on tape and then remove them.  It  turns
871        out that this automatic archiving capability is also a major win.
872
873             At UCI, our policy is to save archived messages on tape (every  two
874        months  or so).  We use a program called _\bb_\bb_\bt_\ba_\br to implement our particu-
875        lar policy.  Since some BBoards are private (see  above),  we  save  the
876        archives  on two tapes: one containing the world-readable archives (this
877        tape is read-only accessible to all users by calling the operator),  and
878        the  other  containing  the  non-world-readable  ones (this tape is kept
879        locked-up somewhere).
880
881
882 \e9       _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bP_\bO_\bP
883
884             If you configured _\bM_\bH with "bboards: pop" and "pop: on", then the _\bM_\bH
885        user is allowed to read BBoards on a server machine instead of the local
886        host (thus saving disk space).  For completely transparent behavior, the
887        administrator  may  set  certain  variables in the mtstailor file on the
888        client host.  The variable "popbbhost" indicates the host where  BBoards
889        are kept (it doesn't have to be the POP service host, but this host must
890        run both a POP server and the BBoards system).  The variable "popbbuser"
891        indicates  the  guest  account  on this host for BBoards.  This username
892        should not be either the POP user or  the  BBoards  user.   Usually  the
893        anonymous  FTP  user  (ftp)  is  the best choice.  Finally, the variable
894        "popbblist" indicates the name of a file which contains a list of  hosts
895        (one to a line, official host names only) which should be allowed to use
896        the POP facility to access BBoards via the guest account.  (If the  file
897        is not present, then no check is made.)
898
899             The "popbbuser" variable should be set on both the client and  ser-
900        vice host.  The "popbbhost" variable need be set only on the client host
901        (the  value,  of  course,  is  the  name  of  the  service  host).   The
902        "popbblist" variable need be set only on the service host.
903
904             Finally, on the client host, if a POP service host  is  not  expli-
905        citly given by the user (i.e., "popbbhost" is implicitly used), then _\bb_\bb_\bc
906        will explicitly check the local host prior  to  contacting  the  service
907        host.   This  allows  each  POP  client host to have a few local BBoards
908
909 \e9
910
911
912
913
914
915
916
917
918
919                                          -14-
920
921
922        (e.g., each host could have one called "system"), and then have the  POP
923        service host used for all the rest (a site-wide BBoard might be known as
924        "general").
925
926
927 \e9       _\bB_\bB_\bo_\ba_\br_\bd_\bs _\bw_\bi_\bt_\bh _\bt_\bh_\be _\bN_\bN_\bT_\bP
928
929             If you configured _\bM_\bH with "bboards: nntp" and "pop: on",  then  the
930        _\bM_\bH  user  is  allowed to read the Network News on a server machine using
931        the standard _\bb_\bb_\bc command.   For  completely  transparent  behavior,  the
932        administrator  may  set the "nntphost" variable in the mtstailor file to
933        indicate the host where the Network News is kept.  The "nntphost"  vari-
934        able  should be set only on the client host Finally, on the client host,
935        if an NNTP service host is not  explicitly  given  by  the  user  (i.e.,
936        "nntphost" is implicitly used), then _\bb_\bb_\bc will explicitly check the local
937        host prior to contacting the service host.  This allows each NNTP client
938        host  to have a few local BBoards (e.g., each host could have one called
939        "system"), and then have the NNTP service host used for to read the Net-
940        work News.
941
942             Reading  BBoards  via  the  POP  and  via  the  NNTP  are  mutually
943   exclusive.
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974 \e9
975
976
977
978
979
980
981
982
983
984   BBOARDS(5)                        -15-                        BBOARDS(5)
985
986
987   _\bN_\bA_\bM_\bE
988        BBoards - BBoards database
989
990   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
991        /usr/bboards/BBoards
992
993   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
994
995        The BBoards database contains for each BBoard the following  infor-
996        mation:
997
998        _\bf_\bi_\be_\bl_\bd               _\bv_\ba_\bl_\bu_\be
999        name                the name of the BBoard
1000        aliases             local aliases for the BBoard
1001                            (separated by commas)
1002        primary file        the .mbox file
1003        encrypted password  leadership password
1004        leaders             local list maintainers (separated by commas)
1005                            usernames from the _\bp_\ba_\bs_\bs_\bw_\bd (5) file,
1006                            or groupnames preceded by `=' from the
1007                            _\bg_\br_\bo_\bu_\bp (5) file
1008        network address     the list address
1009        request address     the list maintainer's address
1010        relay               the host acting as relay for the local domain
1011        distribution sites  (separated by commas)
1012        flags               special flags (see <bboards.h>)
1013
1014        This is an ASCII file.  Each field within each  BBoard's  entry  is
1015        separated from the next by a colon.  Each BBoard entry is separated
1016        from the next by a new-line.  If the password  field  is  null,  no
1017        password  is  demanded;  if  it contains a single asterisk, then no
1018        password is valid.
1019
1020        This file resides in the home directory  of  the  login  "bboards".
1021        Because  of  the  encrypted passwords, it can and does have general
1022        read permission.
1023
1024   _\bF_\bi_\bl_\be_\bs
1025        /usr/bboards/BBoards                BBoards database
1026
1027
1028   _\bS_\be_\be _\bA_\bl_\bs_\bo
1029        bbaka(8), bbexp(8), bboards (8), bbtar(8)
1030
1031
1032   _\bB_\bu_\bg_\bs
1033        A binary indexed file format should be available for fast access.
1034
1035        Appropriate precautions must be taken  to  lock  the  file  against
1036        changes  if  it is to be edited with a text editor.  A _\bv_\bi_\bb_\bb program
1037        is needed.
1038 \e9
1039 \e9  [mh.6]                           MH.6.7                      UCI version
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049   BBOARDS(5)                        -16-                        BBOARDS(5)
1050
1051
1052   _\bN_\bA_\bM_\bE
1053        bbaka - generate an alias list for BBoards
1054
1055   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1056        /usr/bboards/bbaka [system]
1057
1058   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1059
1060        The _\bb_\bb_\ba_\bk_\ba program reads the BBoards database and  produces  on  its
1061        standard output a file suitable for inclusion in either the _\bM_\bM_\bD_\bF-_\bI_\bI
1062        aliases file (if the argument `system' is given).  If the  argument
1063        is  not  given,  then  _\bb_\bb_\ba_\bk_\ba produces on its standard output a file
1064        suitable for becoming the /usr/local/lib/mh/BBoardsAliases file.
1065
1066   _\bF_\bi_\bl_\be_\bs
1067        /usr/bboards/BBoards                BBoards database
1068        /usr/local/lib/mh/BBoardsAliases    BBoards aliases file for _\bM_\bH
1069
1070
1071   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1072        None
1073
1074
1075   _\bS_\be_\be _\bA_\bl_\bs_\bo
1076        bboards(5)
1077
1078
1079   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1080        None
1081
1082
1083   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1084        None
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103 \e9
1104 \e9  [mh.6]                           MH.6.7                      UCI version
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114   BBEXP(8)                          -17-                          BBEXP(8)
1115
1116
1117   _\bN_\bA_\bM_\bE
1118        bbexp - expunge the BBoards area
1119
1120   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1121        /usr/bboards/bbexp [-_\bf_\bi_\br_\bs_\bt-_\bm_\be_\bt_\br_\bi_\bc] [-_\bs_\be_\bc_\bo_\bn_\bd-_\bm_\be_\bt_\br_\bi_\bc] [bboards ...]
1122
1123   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1124
1125        The _\bb_\bb_\be_\bx_\bp program reads the  BBoards  database  and  calls  _\bm_\bs_\bh  to
1126        archive the named BBoards (or all BBoards if none are specified).
1127
1128        The first-metric (which defaults to 12) gives the age  in  days  of
1129        the  "BB-Posted:" field for messages which should be expunged.  The
1130        second-metric (which defaults to 20) gives the age in days  of  the
1131        "Date:"  field  for messages which should be expunged.  Any message
1132        which meets either metric  will  be  either  archived  or  removed,
1133        depending on what the _\bB_\bB_\bo_\ba_\br_\bd_\bs (5) file says.
1134
1135   _\bF_\bi_\bl_\be_\bs
1136        /usr/bboards/BBoards                BBoards database
1137
1138
1139   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1140        None
1141
1142
1143   _\bS_\be_\be _\bA_\bl_\bs_\bo
1144        msh(1), bboards(5)
1145
1146
1147   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1148        None
1149
1150
1151   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1152        None
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168 \e9
1169 \e9  [mh.6]                           MH.6.7                      UCI version
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179   BBOARDS(8)                        -18-                        BBOARDS(8)
1180
1181
1182   _\bN_\bA_\bM_\bE
1183        bboards - BBoards channel/mailer
1184
1185   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1186        /usr/mmdf/chans/bboards fd1 fd2 [y]
1187
1188        /usr/local/lib/mh/sbboards bboard ...
1189
1190        /usr/local/lib/mh/sbboards file maildrop directory bboards.bboard
1191
1192   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1193
1194        For _\bM_\bM_\bD_\bF, the BBoards channel delivers mail to the BBoards  system.
1195        For  _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl and stand-alone _\bM_\bH, the SBBoards mailer performs this
1196        task.
1197
1198        For each address given, these programs consult the _\bb_\bb_\bo_\ba_\br_\bd_\bs (5) file
1199        to  ascertain  information  about  the BBoard named by the address.
1200        The programs then perform local delivery,  if  appropriate.   After
1201        that,  with the exception of _\bs_\bb_\bb_\bo_\ba_\br_\bd_\bs running under stand-alone _\bM_\bH,
1202        the programs perform redistribution, if appropriate.
1203
1204        For redistribution, the return address is set  to  be  the  request
1205        address at the local host, so bad addresses down the line return to
1206        the nearest point of  authority.   If  any  failures  occur  during
1207        redistribution,  a  mail  message  is  sent  to  the  local request
1208        address.
1209
1210   _\bF_\bi_\bl_\be_\bs
1211        /usr/local/lib/mh/mtstailor         tailor file
1212        /usr/bboards/BBoards                BBoards database
1213
1214
1215   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1216        None
1217
1218
1219   _\bS_\be_\be _\bA_\bl_\bs_\bo
1220        bboards(5), bbaka(8)
1221
1222
1223   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1224        None
1225
1226
1227   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1228        None
1229
1230
1231
1232
1233 \e9
1234 \e9  [mh.6]                           MH.6.7                      UCI version
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244   BBTAR(8)                          -19-                          BBTAR(8)
1245
1246
1247   _\bN_\bA_\bM_\bE
1248        bbtar - generate the names of archive files to be put to tape
1249
1250   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1251        /usr/bboards/bbtar [private] [public]
1252
1253   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1254
1255        The _\bb_\bb_\bt_\ba_\br program reads the BBoards database and  produces  on  its
1256        standard  output  the names of BBoards archives which should be put
1257        to tape, for direct use in a _\bt_\ba_\br (1) command.
1258
1259        If the argument `private' is given, only private BBoards  are  con-
1260        sidered.   If  the  argument `public' is given, only public BBoards
1261        are considered.  This lets  the  BBoards  administrator  write  two
1262        tapes,  one  for  general read-access (the public BBoards), and one
1263        for restricted access.  The default is all BBoards
1264
1265        For example:
1266
1267             cd archive              # change to the archive directory
1268             tar cv `bbtar private`  # save all private BBoard archives
1269
1270        After the archives have  been  saved  to  tape,  they  are  usually
1271        removed.  The archives are then filled again, usually automatically
1272        by cron jobs which run _\bb_\bb_\be_\bx_\bp (8).
1273
1274   _\bF_\bi_\bl_\be_\bs
1275        /usr/bboards/BBoards                BBoards database
1276
1277
1278   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1279        None
1280
1281
1282   _\bS_\be_\be _\bA_\bl_\bs_\bo
1283        bboards(5), bbexp(8)
1284
1285
1286   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1287        None
1288
1289
1290   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1291        None
1292
1293
1294
1295
1296
1297
1298 \e9
1299 \e9       [mh.6]                           MH.6.7                      UCI version
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312                                         _\b4. _\bP_\bO_\bP
1313
1314
1315
1316 \e9
1317             For POP (Post Office Protocol) client hosts, you need to  edit  the
1318        /usr/local/lib/mh/mtstailor  file to know about two hosts: the SMTP ser-
1319        vice host and the POP service  host.   Normally,  these  are  the  same.
1320        Change  the "localname" field of the mtstailor file of _\bM_\bH in the file to
1321        be the name of the POP service host.  This makes replies  to  mail  gen-
1322        erated  on  the POP client host possible, since _\bM_\bH will consider use the
1323        hostname of the POP service host as  the  local  hostname  for  outgoing
1324        mail.   Also  set  the value of "pophost" to this value.  This tells _\bi_\bn_\bc
1325        and _\bm_\bs_\bg_\bc_\bh_\bk to use POP instead of looking  for  mail  locally.   Finally,
1326        make  sure  the value of "servers" includes the name of the SMTP service
1327        host.  The recommended value for "servers" is:
1328
1329             servers: SMTP-service-host localhost \01localnet
1330
1331             If you want more information on the Post Office  Protocol  used  by
1332        _\bM_\bH,      consult      the      files     support/pop/rfc1081.txt     and
1333        support/pop/rfc1082.txt which describe the _\bM_\bH version of the POP: POP3.
1334
1335             For POP service hosts, you need to run  a  daemon,  _\bp_\bo_\bp_\bd (8).   The
1336        daemon should start at multi-user boot time, so adding the lines:
1337
1338             if [ -f /etc/popd ]; then
1339                 /etc/popd & echo -n ' pop'                  >/dev/console
1340             fi
1341
1342        to the /etc/rc.local file is sufficient.
1343
1344             The port assigned to the POP3 protocol is  "110".   For  historical
1345        reasons,  many  sites are using port "109" which is the port assigned to
1346        the "POP" (ver. 1) protocol.  The configuration option  "POPSERVICE"  is
1347        the name of the port number that _\bM_\bH POP will try to use, and defaults to
1348        the name "pop".
1349
1350             To generate _\bM_\bH to use newer assigned port number, in your _\bM_\bH config
1351        file, add:
1352
1353             options POPSERVICE='"pop3"'
1354
1355        And on both the POP client and service hosts, you  need  to  define  the
1356        port that the POP service uses.  Add the line:
1357
1358             pop3            110/tcp
1359
1360        to the /etc/services file (if it's not already there).
1361
1362
1363
1364 \e9                                         -20-
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374                                          -21-
1375
1376
1377             There are two ways to administer POP: In "naive" mode, each user-id
1378        in  the  _\bp_\ba_\bs_\bs_\bw_\bd (5) file is considered a POP subscriber.  No changes are
1379        required for the mailsystem on the  POP  service  host.   However,  this
1380        method  requires  that each POP subscriber have an entry in the password
1381        file.  The POP server will fetch the user's mail from wherever maildrops
1382        are kept on the POP service host.  This means that if maildrops are kept
1383        in the user's home directory, then each POP subscriber must have a  home
1384        directory.
1385
1386             In "smart" mode (enabled via "DPOP" being given as a  configuration
1387        option),  the  list  of  POP subscribers and the list of login users are
1388        completely separate name spaces.  A separate database (simple file simi-
1389        lar  to  the  _\bB_\bB_\bo_\ba_\br_\bd_\bs (5) file) is used to record information about each
1390        POP subscriber.  Unfortunately, the local mailsystem must be changed  to
1391        reflect  this.   This  requires  two changes (both of which are simple):
1392        First, the aliasing  mechanism  is  augmented  so  that  POP  subscriber
1393        addresses are diverted to a special delivery mechanism.  _\bM_\bH comes with a
1394        program, _\bp_\bo_\bp_\ba_\bk_\ba (8), which generates the additional  information  to  be
1395        put  in the mailsystem's alias file.  Second, a special POP channel (for
1396        MMDF-II) or POP mailer (for SendMail) performs the actual delivery (_\bm_\bh._\b6
1397        supplies  both).   All  it really does is just place the mail in the POP
1398        spool area.
1399
1400             These two different philosophies are not compatible on the same POP
1401        service  host:  one or the other, but not both may be run.  Clever mail-
1402        system people will note that the POP mechanism is really a special  case
1403        of the more general BBoards mechanism.
1404
1405             In addition,  there  is  one  user-visible  difference,  which  the
1406        administrator  controls  the availability of.  The difference is whether
1407        the POP subscriber must supply a password to the POP server:  The  first
1408        method  uses  the  standard  ARPA  technique of sending a username and a
1409        password.  The appropriate programs (_\bi_\bn_\bc,  _\bm_\bs_\bg_\bc_\bh_\bk,  and  possibly  _\bb_\bb_\bc )
1410        will prompt the user for this information.
1411
1412             The second method (which is enabled via "RPOP"  being  given  as  a
1413        configuration  option)  uses  the Berkeley UNIX reserved port method for
1414        authentication.  This requires that the two  or  three  mentioned  above
1415        programs  be  _\bs_\be_\bt_\bu_\bi_\bd to root.  (There are no known holes in any of these
1416        programs.)
1417
1418             To add a POP subscriber, for the first method, one  simply  follows
1419        the  usual procedures for adding a new user, which eventually results in
1420        adding a line to the _\bp_\ba_\bs_\bs_\bw_\bd (5) file; for the second  method,  one  must
1421        edit the POP database file (kept in the home directory of the POP user),
1422        and then run the _\bp_\bo_\bp_\ba_\bk_\ba program.  The output of this program  is  placed
1423        in the aliases file for the transport system (e.g., /usr/lib/aliases for
1424        SendMail).
1425
1426             These two different philosophies are compatible  on  the  same  POP
1427        service  host:  to  selectively  disable  RPOP  for  hosts  which aren't
1428        trusted, either modify the ._\br_\bh_\bo_\bs_\bt_\bs file in the case of  POP  subscribers
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440                                          -22-
1441
1442
1443        being  UNIX logins, or zero the contents of network address field of the
1444   _\bp_\bo_\bp (5) file for the desired POP subscribers.
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494 \e9
1495 \e9
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505   POP(5)                            -23-                            POP(5)
1506
1507
1508   _\bN_\bA_\bM_\bE
1509        POP - POP database of subscribers
1510
1511   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1512        /usr/spool/pop/POP
1513
1514   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1515
1516        The POP database has exactly the same  format  as  the  _\bB_\bB_\bo_\ba_\br_\bd_\bs (5)
1517        database,  although  many  fields are unused.  Currently, only four
1518        fields are examined:
1519
1520        _\bf_\bi_\be_\bl_\bd               _\bv_\ba_\bl_\bu_\be
1521        name                the POP subscriber
1522        primary file        the maildrop for the POP subscriber
1523                            (relative to the POP directory)
1524        encrypted password  the POP subscriber's password
1525        network address     the remote user allowed to RPOP
1526
1527        This is an ASCII file.  Each field  within  each  POP  subscriber's
1528        entry  is  separated from the next by a colon.  Each POP subscriber
1529        is separated from the next by a new-line.  If the password field is
1530        null, then no password is valid.
1531
1532        To add a new POP subscriber, edit the file adding a line such as
1533
1534             mrose::mrose:::::::0
1535
1536        Then, use _\bp_\bo_\bp_\bw_\br_\bd to set the password for the  POP  subscriber.   If
1537        you wish to allow POP subscribers to access their maildrops without
1538        supplying a password (by using privileged ports), fill-in the  net-
1539        work address field, as in:
1540
1541             mrose::mrose:::mrose@nrtc-isc::::0
1542
1543        which permits "mrose@nrtc-isc" to access the maildrop for  the  POP
1544        subscriber "mrose".  Multiple network addresses may be specified by
1545        separating them with commas, as in:
1546
1547             dave::dave:9X5/m4yWHvhCc::dave@romano.wisc.edu,dave@rsch.wisc.edu::::
1548
1549        To  disable  a  POP subscriber from _\br_\be_\bc_\be_\bi_\bv_\bi_\bn_\bg mail, set the primary
1550        file name to the empty string.  To prevent a  POP  subscriber  from
1551        _\bp_\bi_\bc_\bk_\bi_\bn_\bg-_\bu_\bp mail, set the encrypted password to "*" and set the net-
1552        work address to the empty string.
1553
1554        This file resides in home directory of the login "pop".  Because of
1555        the  encrypted passwords, it can and does have general read permis-
1556        sion.
1557
1558
1559 \e9
1560 \e9  [mh.6]                           MH.6.7                      UCI version
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570   POP(5)                            -24-                            POP(5)
1571
1572
1573   _\bF_\bi_\bl_\be_\bs
1574        /usr/spool/pop/POP                  POP database
1575
1576
1577   _\bS_\be_\be _\bA_\bl_\bs_\bo
1578        bboards(5), pop(8), popaka(8), popd(8), popwrd(8)
1579
1580
1581   _\bB_\bu_\bg_\bs
1582        A binary indexed file format should be available for fast access.
1583
1584        Appropriate precautions must be taken  to  lock  the  file  against
1585        changes  if it is to be edited with a text editor.  A _\bv_\bi_\bp_\bo_\bp program
1586        is needed.
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624 \e9
1625 \e9  [mh.6]                           MH.6.7                      UCI version
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635   POP(8)                            -25-                            POP(8)
1636
1637
1638   _\bN_\bA_\bM_\bE
1639        pop - POP channel/mailer
1640
1641   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1642        /usr/mmdf/chans/pop fd1 fd2 [y]
1643
1644        /usr/local/lib/mh/spop POP-subscriber ...
1645
1646   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1647
1648        For _\bM_\bM_\bD_\bF-_\bI_\bI, the POP channel delivers mail to the  POP  spool  area
1649        for  later  retrieval  by  POP subscribers.  For _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl, the SPOP
1650        mailer performs this task.
1651
1652        For each address given, these programs consult the _\bp_\bo_\bp (5) file  to
1653        obtain  information  about the POP-subscriber named by the address.
1654        The programs then deliver the message to the  spool  area  for  the
1655        POP-subscriber.
1656
1657   _\bF_\bi_\bl_\be_\bs
1658        /usr/local/lib/mh/mtstailor         tailor file
1659        /usr/spool/pop/POP                  POP database
1660
1661
1662   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1663        None
1664
1665
1666   _\bS_\be_\be _\bA_\bl_\bs_\bo
1667        bboards(5), bbaka(8)
1668
1669
1670   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1671        None
1672
1673
1674   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1675        None
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689 \e9
1690 \e9  [mh.6]                           MH.6.7                      UCI version
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700   POPAKA(8)                         -26-                         POPAKA(8)
1701
1702
1703   _\bN_\bA_\bM_\bE
1704        popaka - generate POP entries for SendMail or MMDF-II alias file
1705
1706   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1707        /usr/local/lib/mh/popaka
1708
1709   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1710
1711        The _\bp_\bo_\bp_\ba_\bk_\ba program reads the POP database and produces on its stan-
1712        dard  output  a  file  suitable  for  inclusion  in the SendMail or
1713        _\bM_\bM_\bD_\bF-_\bI_\bI aliases file.  The contents of this file  divert  mail  for
1714        POP subscribers to the POP channel.
1715
1716   _\bF_\bi_\bl_\be_\bs
1717        /usr/spool/pop/POP                  POP database
1718
1719
1720   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1721        None
1722
1723
1724   _\bS_\be_\be _\bA_\bl_\bs_\bo
1725        pop(5)
1726
1727
1728   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1729        None
1730
1731
1732   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1733        None
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754 \e9
1755 \e9  [mh.6]                           MH.6.7                      UCI version
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765   POPD(8)                           -27-                           POPD(8)
1766
1767
1768   _\bN_\bA_\bM_\bE
1769        popd - the POP server
1770
1771   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1772        /usr/etc/popd [-p portno] (under /etc/rc.local)
1773
1774   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1775
1776        The _\bp_\bo_\bp_\bd server implements the Post Office protocol,  as  described
1777        in  RFC1081  and RFC1082.  Basically, the server listens on the TCP
1778        port named "pop" for connections and enters the POP upon establish-
1779        ing a connection.  The `-p' option overrides the default TCP port.
1780
1781   _\bF_\bi_\bl_\be_\bs
1782        /usr/spool/pop/POP                  POP database
1783
1784
1785   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1786        None
1787
1788
1789   _\bS_\be_\be _\bA_\bl_\bs_\bo
1790        _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl - _\bv_\be_\br_\bs_\bi_\bo_\bn _\b3 (aka RFC-1081),
1791        _\bP_\bo_\bs_\bt _\bO_\bf_\bf_\bi_\bc_\be  _\bP_\br_\bo_\bt_\bo_\bc_\bo_\bl  -  _\bv_\be_\br_\bs_\bi_\bo_\bn  _\b3:  _\bE_\bx_\bt_\be_\bn_\bd_\be_\bd  _\bs_\be_\br_\bv_\bi_\bc_\be  _\bo_\bf_\bf_\be_\br_\bi_\bn_\bg_\bs
1792        (RFC-1082),
1793        pop(5)
1794
1795
1796   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1797        None
1798
1799
1800   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1801        None
1802
1803
1804   _\bH_\bi_\bs_\bt_\bo_\br_\by
1805        For historical reasons, the _\bM_\bH POP defaults to using the port named
1806        "pop"  (109) instead of its newly assigned port named "pop3" (110).
1807        See the POPSERVICE configuration option for more details.
1808
1809        Previous versions of the server (10/28/84) had the restriction that
1810        the  POP  client  may retrieve messages for login users only.  This
1811        restriction has been lifted, and  true  POB  support  is  available
1812        (sending  mail  to a mailbox on the POP service host which does not
1813        map to a user-id in the password file).
1814
1815
1816
1817
1818
1819 \e9
1820 \e9  [mh.6]                           MH.6.7                      UCI version
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830   POPWRD(8)                         -28-                         POPWRD(8)
1831
1832
1833   _\bN_\bA_\bM_\bE
1834        popwrd - set password for a POP subscriber
1835
1836   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1837        /usr/local/lib/mh/popwrd POP-subscriber
1838
1839   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1840
1841        The _\bp_\bo_\bp_\bw_\br_\bd program lets the super-user or the master POP user or  a
1842        "leader"  of a POP subscriber change the password field for the POP
1843        subscriber in the POP database.  This program is  very  similar  to
1844        the _\bp_\ba_\bs_\bs_\bw_\bd (1) program.
1845
1846        Since only the super-user and the master POP user  may  change  any
1847        other  fields of the POP database (using an ordinary editor), it is
1848        possible for the system administrator to delegate responsibility to
1849        others to manage groups of POP subscribers.
1850
1851   _\bF_\bi_\bl_\be_\bs
1852        /usr/spool/pop/POP                  POP database
1853
1854
1855   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
1856        None
1857
1858
1859   _\bS_\be_\be _\bA_\bl_\bs_\bo
1860        pop(5)
1861
1862
1863   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
1864        None
1865
1866
1867   _\bC_\bo_\bn_\bt_\be_\bx_\bt
1868        None
1869
1870
1871   _\bB_\bu_\bg_\bs
1872        Although _\bp_\bo_\bp_\bw_\br_\bd does locking against other invocations  of  _\bp_\bo_\bp_\bw_\br_\bd,
1873        editor  locking for the POP database in general is not implemented.
1874        A _\bv_\bi_\bp_\bo_\bp program is needed.
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884 \e9
1885 \e9       [mh.6]                           MH.6.7                      UCI version
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898                                   _\b5. _\bM_\bA_\bI_\bL _\bF_\bI_\bL_\bT_\bE_\bR_\bI_\bN_\bG
1899
1900
1901
1902 \e9
1903             There was a time when users on a UNIX host might have had two mail-
1904        drops:  one  from  _\bM_\bM_\bD_\bF  and the other from _\bU_\bU_\bC_\bP.  This was really a bad
1905        problem since it prevented using a single user-interface on all of  your
1906        mail.  Furthermore, if you wanted to send a message to addresses on dif-
1907        ferent mailsystems, you couldn't send just one message.   To  solve  all
1908        these  problems, the notion of _\bm_\ba_\bi_\bl _\bf_\bi_\bl_\bt_\be_\br_\bi_\bn_\bg was developed that allowed
1909        sophisticated munging and relaying between the two pseudo-domains.
1910
1911             _\bM_\bH will perform mail filtering, transparently, if given the MF con-
1912        figuration  option.   However,  with  the advent of _\bS_\be_\bn_\bd_\bM_\ba_\bi_\bl and further
1913        maturation of _\bM_\bM_\bD_\bF, _\bM_\bH doesn't really need to  do  this  anymore,  since
1914        these message transport agents handle it.
1915
1916             The mail-filtering stuff is too complicated.  It should be simpler,
1917   but, protocol translation really _\bi_\bs difficult.
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950 \e9                                    -29-
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960   MF(1)                             -30-                             MF(1)
1961
1962
1963   _\bN_\bA_\bM_\bE
1964        muinc, musift, uminc, umsift - mail filters
1965
1966   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
1967        /usr/local/lib/mh/muinc
1968
1969        /usr/local/lib/mh/musift [files ...]
1970
1971        /usr/local/lib/mh/uminc
1972
1973        /usr/local/lib/mh/umsift [files ...]
1974
1975   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
1976
1977        The mail filters are a set of programs that filter  mail  from  one
1978        format  to another.  In particular, _\bU_\bU_\bC_\bP- and _\bM_\bM_\bD_\bF-style mail files
1979        are handled.
1980
1981        _\bm_\bu_\bi_\bn_\bc filters mail from the user's _\bM_\bM_\bD_\bF maildrop  into  the  user's
1982        _\bU_\bU_\bC_\bP  maildrop;  similarly, _\bu_\bm_\bi_\bn_\bc filters mail from the user's _\bU_\bU_\bC_\bP
1983        maildrop into the user's _\bM_\bM_\bD_\bF maildrop.  These two programs respect
1984        each system's maildrop locking protocols.
1985
1986        _\bm_\bu_\bs_\bi_\bf_\bt filters each file on the command line (or the standard input
1987        if  no  arguments are given), and places the result on the standard
1988        output in _\bU_\bU_\bC_\bP format.  The files (or standard input) are  expected
1989        to  be  in  _\bM_\bM_\bD_\bF format.  _\bu_\bm_\bs_\bi_\bf_\bt does the same thing filtering _\bU_\bU_\bC_\bP
1990        formatted files (or input), and places the _\bM_\bM_\bD_\bF formatted result on
1991        the  standard  output.  No locking protocols are used by these pro-
1992        grams.
1993
1994        If the files aren't in the expected format, the mail  filters  will
1995        try to recover.  In really bad cases, you may lose big.
1996
1997   _\bF_\bi_\bl_\be_\bs
1998        /usr/spool/mail/                    UUCP spool area for maildrops
1999        /usr/spool/mail/$USER               Location of standard maildrop
2000
2001
2002   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
2003        None
2004
2005
2006   _\bS_\be_\be _\bA_\bl_\bs_\bo
2007        _\bP_\br_\bo_\bp_\bo_\bs_\be_\bd _\bS_\bt_\ba_\bn_\bd_\ba_\br_\bd _\bf_\bo_\br _\bM_\be_\bs_\bs_\ba_\bg_\be _\bH_\be_\ba_\bd_\be_\br _\bM_\bu_\bn_\bg_\bi_\bn_\bg (aka RFC-886),
2008        inc(1)
2009
2010
2011   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
2012
2013
2014 \e9
2015 \e9  [mh.6]                           MH.6.7                      UCI version
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025   MF(1)                             -31-                             MF(1)
2026
2027
2028   _\bC_\bo_\bn_\bt_\be_\bx_\bt
2029
2030
2031   _\bB_\bu_\bg_\bs
2032        Numerous; protocol translation is very difficult.
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079 \e9
2080 \e9  [mh.6]                           MH.6.7                      UCI version
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090   RMAIL(8)                          -32-                          RMAIL(8)
2091
2092
2093   _\bN_\bA_\bM_\bE
2094        rmail - UUCP interface to mail
2095
2096   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
2097        rmail address ...
2098
2099   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
2100
2101        _\bR_\bm_\ba_\bi_\bl is intended as a replacement for those systems without  _\bS_\be_\bn_\bd_\b-
2102        _\bM_\ba_\bi_\bl  or  _\bM_\bM_\bD_\bF.   It  is  normally  invoked by _\bu_\bu_\bx on behalf of the
2103        remote _\bU_\bU_\bC_\bP site.  For each address, it decides where to  send  it:
2104        either locally, via another _\bU_\bU_\bC_\bP link, or via the Internet.
2105
2106        _\bR_\bm_\ba_\bi_\bl implements a crude access control facility by consulting  the
2107        files  Rmail.OkHosts  and  Rmail.OkDests  in the /usr/local/lib/mh/
2108        directory.  Hosts listed in the former file can  send  messages  to
2109        anywhere  they please.  Hosts listed in the latter file can receive
2110        messages from anywhere.  Note that a host listed in the first  file
2111        is implicitly listed in the second file.
2112
2113   _\bF_\bi_\bl_\be_\bs
2114        /usr/local/lib/mh/mtstailor         tailor file
2115        /usr/local/lib/mh/Rmail.OkHosts     list of privileged hosts
2116        /usr/local/lib/mh/Rmail.OkDests     list of privileged destinations
2117
2118
2119   _\bP_\br_\bo_\bf_\bi_\bl_\be _\bC_\bo_\bm_\bp_\bo_\bn_\be_\bn_\bt_\bs
2120        None
2121
2122
2123   _\bS_\be_\be _\bA_\bl_\bs_\bo
2124        mf(1)
2125
2126
2127   _\bD_\be_\bf_\ba_\bu_\bl_\bt_\bs
2128        None
2129
2130
2131   _\bC_\bo_\bn_\bt_\be_\bx_\bt
2132        None
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144 \e9
2145 \e9       [mh.6]                           MH.6.7                      UCI version
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158                                     _\b6. _\bM_\bH _\bH_\bA_\bC_\bK_\bI_\bN_\bG
2159
2160
2161
2162 \e9
2163             Finally, here's a little information on modifying the  _\bM_\bH  sources.
2164        A word of advice however:
2165
2166
2167                                         _\bD_\bO_\bN'_\bT
2168
2169
2170
2171        If you really want new _\bM_\bH capabilities, write a  shell  script  instead.
2172        After all, that's what UNIX is all about, isn't it?
2173
2174             Here's the organization of the _\bM_\bH source tree.
2175
2176             conf/        configurator tree
2177             config/      compiled configuration constants
2178             dist/        distributor
2179             doc/         manual entries
2180             h/           include files
2181             miscellany/  various sundries
2182             mts/         MTS-specific areas
2183                          mh/        standalone delivery
2184                          mmdf/      MMDF-I, MMDF-II
2185                          sendmail/  SendMail, SMTP
2186             papers/      papers about _\bM_\bH
2187             sbr/         subroutines
2188             support/     support programs and files
2189                          bboards/   UCI BBoards facility
2190                          general/   templates
2191                          pop/       POP facility
2192             tma/         Trusted Mail Agent (not present in all distributions)
2193             uip/         programs
2194             zotnet/      MTS-independent areas
2195                          bboards/   UCI BBoards facility
2196                          mf/        Mail Filtering
2197                          mts/       MTS constants
2198                          tws/       date routines
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210 \e9                                    -33-
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220   MH-HACK(8)                        -34-                        MH-HACK(8)
2221
2222
2223   _\bN_\bA_\bM_\bE
2224        mh-hack - how to hack MH
2225
2226   _\bS_\bY_\bN_\bO_\bP_\bS_\bI_\bS
2227        big hack attack
2228
2229   _\bD_\bE_\bS_\bC_\bR_\bI_\bP_\bT_\bI_\bO_\bN
2230
2231        This is a description of how one can modify the _\bM_\bH system.  The  _\bM_\bH
2232        distribution has a lot of complex inter-relations, so before you go
2233        modifying any code, you should read this  and  understand  what  is
2234        going on.
2235
2236        ADDING A NEW PROGRAM
2237             Suppose you want to create a new _\bM_\bH command  called  "pickle".
2238             First, create and edit "pickle.c" in the uip/ directory.  Next
2239             edit conf/makefiles/uip to include "pickle".   This  file  has
2240             directions  at  the  end  of it which explain how it should be
2241             modified.  Next, update any documentation  (described  below).
2242             At  this  point  you  can  re-configure _\bM_\bH.  See _\bm_\bh-_\bg_\be_\bn(_\b8) for
2243             instructions on how to do this (basically, you want  "mhconfig
2244             MH").
2245
2246        ADDING A NEW SUBROUTINE
2247             Suppose you want to create a new _\bM_\bH routine  called  "pickle".
2248             First, create and edit "pickle.c" in the sbr/ directory.  Next
2249             edit conf/makefiles/sbr to include "pickle".   This  file  has
2250             directions  at  the  end  of it which explain how it should be
2251             modified.  You should modify  config/mh.h  to  define  "pickle
2252             ();".   Similarly,  sbr/llib-lsbr should be modified for _\bl_\bi_\bn_\bt.
2253             At this point you can re-configure _\bM_\bH.
2254
2255        UPDATING DOCUMENTATION
2256             Edit whatever files you want in conf/doc/.  When documenting a
2257             new program, such as "pickle", you should create a manual page
2258             with the name "pickle.rf".  The file conf/doc/template  has  a
2259             manual page template that you can use.  If you are documenting
2260             a new program, then you should also update three other  files:
2261             The  file  conf/doc/mh.rf  should  be  modified to include the
2262             ".NA" section from "pickle.rf".  The file conf/doc/mh-chart.rf
2263             should   be   modified  to  include  the  ".SY"  section  from
2264             "pickle.rf".  Finally, the file conf/doc/MH.rf should be modi-
2265             fied  to  include a ".so pickle.me".  Naturally, none of these
2266             changes will be reflected in the configuration until you actu-
2267             ally run _\bm_\bh_\bc_\bo_\bn_\bf_\bi_\bg.
2268
2269   _\bF_\bi_\bl_\be_\bs
2270        Too numerous to mention.  Honest.
2271
2272
2273
2274 \e9
2275 \e9  [mh.6]                           MH.6.7                      UCI version
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285   MH-HACK(8)                        -35-                        MH-HACK(8)
2286
2287
2288   _\bS_\be_\be _\bA_\bl_\bs_\bo
2289        mh-gen(8)
2290
2291
2292   _\bB_\bu_\bg_\bs
2293        Hacking is an art, but most programmers are butchers, not artists.
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339 \e9
2340 \e9       [mh.6]                           MH.6.7                      UCI version
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353                                   _\b7. _\bH_\bI_\bD_\bD_\bE_\bN _\bF_\bE_\bA_\bT_\bU_\bR_\bE_\bS
2354
2355
2356
2357 \e9
2358             The capabilities discussed here should not be used on a  production
2359        basis,  as they are either experimental, are useful for debugging _\bM_\bH, or
2360        are otherwise not recommended.
2361
2362
2363
2364 \e9       _\bD_\be_\bb_\bu_\bg _\bF_\ba_\bc_\bi_\bl_\bi_\bt_\bi_\be_\bs
2365
2366             The _\bm_\ba_\br_\bk command has a `-debug' switch which essentially prints out
2367        all the internal _\bM_\bH data structures for the folder you're looking at.
2368
2369             The _\bp_\bo_\bs_\bt command has a `-debug' switch which  does  everything  but
2370        actually  post  the  message  for you.  Instead of posting the draft, it
2371        sends it to the standard output.  Similarly, _\bs_\be_\bn_\bd has a `-debug'  switch
2372        which gets passed to _\bp_\bo_\bs_\bt.
2373
2374             Some _\bM_\bH commands look at envariables to determine debug-mode opera-
2375        tion of certain new facilities.  The current list of envariables is:
2376
2377             MHFDEBUG     OVERHEAD facility
2378             MHLDEBUG     mhl
2379             MHPDEBUG     pick
2380             MHPOPDEBUG   POP transactions
2381             MHVDEBUG     window management transactions
2382             MHWDEBUG     alternate-mailboxes
2383
2384
2385
2386 \e9       _\bF_\bo_\br_\bw_\ba_\br_\bd_\bi_\bn_\bg _\bM_\ba_\bi_\bl
2387
2388             The _\bf_\bo_\br_\bw and _\bm_\bh_\bl commands have  two  switches,  `-dashmunging'  and
2389        `-nodashmunging'  which enable or disable the prepending of `- ' in for-
2390        warded messages.  To use `-nodashmunging', you must use  an  _\bm_\bh_\bl  filter
2391        file.
2392
2393
2394
2395 \e9       _\bS_\be_\bn_\bd
2396
2397             The _\bs_\be_\bn_\bd command has two switches, `-unique' and `-nounique', which
2398        are  useful  to certain individuals who, for obscure reasons, do not use
2399        draft-folders.
2400
2401             "Distribution Carbon Copy" addresses may be specified in  the  _\bD_\bc_\bc:
2402        header.  This header is removed before posting the message,and a copy of
2403
2404                                          -36-
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414                                          -37-
2415
2416
2417        the message is distributed to each listed address.  This could  be  con-
2418        sidered a form of Blind Carbon Copy which is best used for sending to an
2419        address which would never reply (such as an auto-archiver).
2420
2421
2422
2423 \e9       _\bP_\bo_\bs_\bt_\bi_\bn_\bg _\bM_\ba_\bi_\bl
2424
2425             If you're running a version of _\bM_\bH which talks directly to  an  _\bS_\bM_\bT_\bP
2426        server  (or  perhaps an advanced _\bM_\bM_\bD_\bF submit process), there are lots of
2427        interesting switches for your amusement which _\bs_\be_\bn_\bd and _\bp_\bo_\bs_\bt understand:
2428             -mail         Use the _\bM_\bA_\bI_\bL command (default)
2429             -saml         Use the _\bS_\bA_\bM_\bL command
2430             -send         Use the _\bS_\bE_\bN_\bD command
2431             -soml         Use the _\bS_\bO_\bM_\bL command
2432             -snoop        Watch the _\bS_\bM_\bT_\bP transaction
2433             -client host  Claim to be "host" when posting mail
2434             -server host  Post mail with "host"
2435
2436             The last switch is to be useful when _\bM_\bH resides on  small  worksta-
2437        tions  (or  PC:s) in a network--they can post their outgoing mail with a
2438        local relay, and reduce the load on the local  system.   On  POP  client
2439        hosts,  the  `-server host'  switch is defaulted appropriately using the
2440        SMTP search-list mechanism.  The _\bw_\bh_\bo_\bm command understands the last three
2441        switches.
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469 \e9
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482                                _\b8. _\bC_\bO_\bN_\bF_\bI_\bG_\bU_\bR_\bA_\bT_\bI_\bO_\bN _\bO_\bP_\bT_\bI_\bO_\bN_\bS
2483
2484
2485
2486 \e9
2487             This manual was generated with the following configuration  options
2488        in effect:
2489
2490
2491        ________________________________________________________________________
2492
2493                    Generation Date             February 1, 1991
2494                    Primary Directory           /usr/local/
2495                    Secondary Directory         /usr/local/lib/mh/
2496                    Maildrop Location           /usr/spool/mail/$USER
2497                    POP Support                 Enabled
2498                    BBoards using NNTP          Enabled
2499                    Transport System            MMDF-II with SMTP
2500        ________________________________________________________________________
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534 \e9                                         -38-
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547                                        _\bC_\bO_\bN_\bT_\bE_\bN_\bT_\bS
2548
2549
2550
2551
2552        Section
2553
2554           1.  INTRODUCTION ...............................................    1
2555 \e9            Scope of this document .......................................    1
2556 \e9            Summary ......................................................    1
2557
2558           2.  THE MTS INTERFACE ..........................................    3
2559                MH-TAILOR .................................................    4
2560                MH-MTS ....................................................   10
2561
2562           3.  BBOARDS ....................................................   12
2563 \e9            BBoard Delivery ..............................................   12
2564 \e9            BBoards with the POP .........................................   13
2565 \e9            BBoards with the NNTP ........................................   14
2566                BBOARDS ...................................................   15
2567                BBAKA .....................................................   16
2568                BBEXP .....................................................   17
2569                BBOARDS ...................................................   18
2570                BBTAR .....................................................   19
2571
2572           4.  POP ........................................................   20
2573                POP .......................................................   23
2574                POP .......................................................   25
2575                POPAKA ....................................................   26
2576                POPD ......................................................   27
2577                POPWRD ....................................................   28
2578
2579           5.  MAIL FILTERING .............................................   29
2580                MF ........................................................   30
2581                RMAIL .....................................................   32
2582
2583           6.  MH HACKING .................................................   33
2584                MH-HACK ...................................................   34
2585
2586           7.  HIDDEN FEATURES ............................................   36
2587 \e9            Debug Facilities .............................................   36
2588 \e9            Forwarding Mail ..............................................   36
2589 \e9            Send .........................................................   36
2590 \e9            Posting Mail .................................................   37
2591
2592           8.  CONFIGURATION OPTIONS ......................................   38
2593
2594
2595 \e9
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619 \e9                               THE RAND MH
2620
2621 \e9                            MESSAGE HANDLING
2622
2623 \e9                                 SYSTEM:
2624
2625 \e9                          ADMINISTRATOR'S GUIDE
2626
2627
2628
2629
2630
2631
2632                                UCI Version
2633
2634
2635
2636
2637
2638                             Marshall T. Rose
2639
2640
2641
2642
2643                              _\bF_\bi_\br_\bs_\bt _\bE_\bd_\bi_\bt_\bi_\bo_\bn:
2644
2645                                _\bM_\bH _\bC_\bl_\ba_\bs_\bs_\bi_\bc
2646
2647             (_\bN_\bo_\bt _\bt_\bo _\bb_\be _\bc_\bo_\bn_\bf_\bu_\bs_\be_\bd _\bw_\bi_\bt_\bh _\ba _\bw_\be_\bl_\bl-_\bk_\bn_\bo_\bw_\bn _\bs_\bo_\bf_\bt _\bd_\br_\bi_\bn_\bk)
2648
2649
2650
2651
2652
2653
2654
2655                             February 1, 1991
2656
2657                              6.7.1a #6[UCI]
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723 \e9
2724 \e9
2725
2726
2727
2728
2729