Annotation of 43BSD/contrib/mh/conf/doc/ADMIN.rf, revision 1.1

1.1     ! root        1: .\"    @(MHWARNING)
        !             2: .po +.75i
        !             3: .de $c                          \" Major Heading printer
        !             4: .ce
        !             5: .b "\\s12\\n+(ch.\\ \\$1\\s0"   \" 12 Point Bold Header
        !             6: .(x
        !             7: 
        !             8: \ \ \ \\n(ch.\\ \\ \\$1
        !             9: .)x
        !            10: .sp 45p         \" 45 point space or about 1/2 inch
        !            11: ..
        !            12: \".nr xs .15v     \" Put index entries closer together
        !            13: .(x
        !            14: 
        !            15: Section
        !            16: .)x _
        !            17: .de $0          \" Sub-Heading macro called AFTER printing the heading
        !            18: .(x
        !            19: .sp .3v
        !            20: .ti .5i
        !            21: \\$1
        !            22: .)x
        !            23: ..
        !            24: .de $s          \" Macro to print footnote separator
        !            25: \"\l'2i'        \" No line drawn
        !            26: .if n \
        !            27: .       sp 1.3  \" But extra space to make up for it.
        !            28: ..
        !            29: .fc ^ ~         \" The characters ^ and ~ CANNOT BE USED
        !            30: \"                 throughout this document except as field
        !            31: \"                 delimiter & pad indicator!
        !            32: .he ''-%-''
        !            33: .ll 32P         \" 32 Picas or about 5+1/3 inch Line Length
        !            34: .if n .ll 72m   \" Use 72 ems for nroff
        !            35: .nr ss 30p      \" 30 point space before section titles
        !            36: .nr fm 5v       \" Rand likes bigger than normal [3v] bottom margins
        !            37: .nr bm 7v       \"   ditto
        !            38: .ds . \\fB.\\fP\\h'-(1m/3)' \" Bold period to stand out.
        !            39: .ds << <\\h!-(\\w'<'/2)!<
        !            40: .ds >> >\\h!-(\\w'>'/2)!>
        !            41: .ds ** \v'-3p'\s+1*\s0\v'+3p'
        !            42: .so version.rf
        !            43: .tp
        !            44: .(l C
        !            45: \fIdiscard this page\fR
        !            46: .sp 4
        !            47: The Rand \fIMH\fR
        !            48: Message Handling
        !            49: System:
        !            50: Administrator's Guide
        !            51: .sp
        !            52: UCI Version
        !            53: .sp 2
        !            54: \*(td
        !            55: \*(MH
        !            56: .)l
        !            57: .++ C
        !            58: .+c INTRODUCTION
        !            59: 
        !            60: .uh "Scope of this document"
        !            61: .pp
        !            62: This is the Administrator's Guide to \fIMH\fR.
        !            63: If you don't maintain an \fIMH\fR system,
        !            64: don't read this;
        !            65: the information is entirely too technical.
        !            66: If you are a maintainer,
        !            67: then read this guide until you understand it,
        !            68: follow the advice it gives,
        !            69: and then forget about the guide.
        !            70: .pp
        !            71: Before continuing, I'll point out two facts:
        !            72: .sp 2
        !            73: .(l C
        !            74: \fIThis document will never contain all the information
        !            75: you need to maintain MH.
        !            76: .sp
        !            77: Furthermore, this document will never contain everything
        !            78: I know about maintaining MH.\fR
        !            79: .)l
        !            80: .sp 2
        !            81: \fIMH\fR,
        !            82: and mailsystems in general,
        !            83: are more complex than most people realize.
        !            84: A combination of experience, intuition, and tenacity is required to maintain
        !            85: \fIMH\fR properly.
        !            86: This document can provide only guidelines for bringing up an \fIMH\fR system
        !            87: and maintaining it.
        !            88: There is a sufficient amount of customization possible that not all events or
        !            89: problems can be forseen.
        !            90: 
        !            91: .uh "Summary"
        !            92: .pp
        !            93: During \fIMH\fR generation,
        !            94: you specify several configuration constants to the \fImhconfig\fR program.
        !            95: These directives take into consideration such issues as hardware and
        !            96: operating system dependencies in the source code.
        !            97: They also factor out some major mailsystem administrative decisions
        !            98: that are likely to be made consistantly at sites with more than one host.
        !            99: The manual entry \fImh\-gen\fR\0(8) describes all the static configuration
        !           100: directives.
        !           101: .pp
        !           102: However,
        !           103: when you install \fIMH\fR you may wish to make some site\-specific
        !           104: or host\-specific changes which aren't hardware or even software related.
        !           105: Rather, they are administrative decisions.
        !           106: That's what this guide is for: it describes all of the dynamically tailorable
        !           107: directives.
        !           108: .pp
        !           109: Usually, after installing \fIMH\fR, you'll want to edit the
        !           110: \fB@(MHETCPATH)/mtstailor\fR file.
        !           111: This file fine-tunes the way \fIMH\fR interacts with the message transport
        !           112: system (MTS).
        !           113: Section 2 talks about the MTS interface and MTS tailoring.
        !           114: .pp
        !           115: After that, if you're running the UCI BBoards facility,
        !           116: or the POP facility,
        !           117: you'll need to know how to maintain those systems.
        !           118: Sections 3 and 4 talk about these.
        !           119: .pp
        !           120: If for some reason
        !           121: you're not running an MTS that can handle both Internet and \fIUUCP\fR traffic,
        !           122: you should read\-up on mail filtering in Section 5.
        !           123: Although this is considered \*(lqold technology\*(rq now,
        !           124: the mechanisms described in Section 5 were really quite useful when
        !           125: first introduced way back in 1981.
        !           126: .pp
        !           127: Finally, you may want to know how to modify the \fIMH\fR source tree.
        !           128: Section 6 talks (a little bit) about that.
        !           129: .pp
        !           130: The last two sections describe a few hidden features in \fIMH\fR,
        !           131: and the configuration options that were in effect when this guide was
        !           132: generated.
        !           133: .pp
        !           134: After \fIMH\fR is installed, you should define the address \*(lqBug\-MH\*(rq
        !           135: to map to either you or the \fIPostMaster\fR at your site.
        !           136: .pp
        !           137: In addition,
        !           138: if you want to tailor the behavior of \fIMH\fR for new users,
        !           139: you can create and edit the file \fB@(MHETCPATH)/mh.profile\fR.
        !           140: When the \fIinstall-mh\fR program is run for a user,
        !           141: if this file exists, it will copy it into the user's \&.mh\(ruprofile
        !           142: file.
        !           143: 
        !           144: .\" macros for the .me/.man files
        !           145: .de SC
        !           146: .he '\\$1(\\$2)'-%-'\\$1(\\$2)'
        !           147: .bp
        !           148: .(x
        !           149: .ti .8i
        !           150: \\$1
        !           151: .)x
        !           152: ..
        !           153: .de NA
        !           154: .b \\s-2NAME\\s0
        !           155: .ti .5i
        !           156: ..
        !           157: .de SY
        !           158: .sp
        !           159: .b \\s-2SYNOPSIS\\s0
        !           160: .in 1i
        !           161: .ti .5i
        !           162: .na
        !           163: ..
        !           164: .de DE
        !           165: .ad
        !           166: .sp
        !           167: .in 0
        !           168: .b  \\s-2DESCRIPTION\\s0
        !           169: .sp
        !           170: .fi
        !           171: .in .5i
        !           172: ..
        !           173: .de Hh
        !           174: .ad
        !           175: .sp
        !           176: .in 0
        !           177: .b "\\s-2Helpful Hints\\s0"
        !           178: .sp
        !           179: .fi
        !           180: .in .5i
        !           181: ..
        !           182: .de Fi
        !           183: .(b L
        !           184: .ti 0
        !           185: .b \\s-2Files\\s0
        !           186: .ta \w'@(MHETCPATH)/ExtraBigFileName  'u
        !           187: ..
        !           188: .de Pr
        !           189: .)b
        !           190: .(b L F
        !           191: .ta \w'ExtraBigProfileName  'u
        !           192: .ti 0
        !           193: .b "\\s-2Profile Components\\s0"
        !           194: .ti .5i
        !           195: ..
        !           196: .de Ps
        !           197: .ti .5i
        !           198: ..
        !           199: .de Sa
        !           200: .)b
        !           201: .(b L F
        !           202: .ti 0
        !           203: .b "\\s-2See Also\\s0"
        !           204: .br
        !           205: ..
        !           206: .de De
        !           207: .)b
        !           208: .(b L
        !           209: .in .5i
        !           210: .ti 0
        !           211: .b \\s-2Defaults\\s0
        !           212: ..
        !           213: .de Ds
        !           214: ..
        !           215: .de Co
        !           216: .)b
        !           217: .(b L F
        !           218: .ti 0
        !           219: .b \\s-2Context\\s0
        !           220: .br
        !           221: ..
        !           222: .de Hi
        !           223: .)b
        !           224: .(b L F
        !           225: .ti 0
        !           226: .b \\s-2History\\s0
        !           227: .br
        !           228: ..
        !           229: .de Bu
        !           230: .)b
        !           231: .(b L F
        !           232: .ti 0
        !           233: .b \\s-2Bugs\\s0
        !           234: .br
        !           235: ..
        !           236: .de En
        !           237: .)b
        !           238: .in 0
        !           239: ..
        !           240: 
        !           241: .+c "THE MTS INTERFACE"
        !           242: .pp
        !           243: The file \fB@(MHETCPATH)/mtstailor\fR customizes
        !           244: certain host\-specific parameters of \fIMH\fR
        !           245: related primarily to interactions with the transport system.
        !           246: The parameters in this file override the compiled\-in defaults given during
        !           247: \fIMH\fR configuration.
        !           248: Rather than recompiling \fIMH\fR on each host to make minor customizations,
        !           249: it is easier simply to modify the \fBmtstailor\fR file.
        !           250: All hosts at a given site normally use the same \fBmtstailor\fR file,
        !           251: though this need not be the case.
        !           252: .pp
        !           253: It is a good idea to run the \fIconflict\fR\0(8) program each morning
        !           254: under \fIcron\fR.
        !           255: The following line usually suffices:
        !           256: 
        !           257: .ti +.5i
        !           258: 00 05 * * * /usr/uci/lib/mh/conflict -mail PostMaster
        !           259: 
        !           260: .if t \{
        !           261: .ll 6.5i
        !           262: .lt 6.5i
        !           263: \}
        !           264: .fo '[mh.6]'MH'UCI version'
        !           265: .po -.50i
        !           266: .so mh-tailor.me
        !           267: .so mh-mts.me
        !           268: .po +.50i
        !           269: .he ''-%-''
        !           270: .fo ''''
        !           271: .br
        !           272: .if t \{
        !           273: .ll 32P
        !           274: .lt 32P
        !           275: \}
        !           276: 
        !           277: .+c "BBOARDS"
        !           278: .pp
        !           279: If you enable the UCI BBoards facility during configuration,
        !           280: then the initial environment for bboards
        !           281: was set\-up during installation.
        !           282: A BBoard called \*(lqsystem\*(rq is established,
        !           283: which is the BBoard for general discussion.
        !           284: .pp
        !           285: To add more BBoards, become the \*(lqbboards\*(rq user,
        !           286: and edit the \fB@(BBHOME)/BBoards\fR file.
        !           287: The file \fBsupport/bboards/Example\fR is a copy of the
        !           288: \fB@(BBHOME)/BBoards\fR file that we use at UCI.
        !           289: When you add a BBoard,
        !           290: you don't have to create the files associated with it,
        !           291: the BBoards delivery system will do that automatically.
        !           292: .pp
        !           293: Private BBoards may be created.
        !           294: To add the fictitious private BBoard \*(lqhacks\*(rq,
        !           295: add the appropriate entry to the BBoards file,
        !           296: create the empty file \fB@(BBHOME)/hacks.mbox\fR (or whatever),
        !           297: change the mode of this file to 0640,
        !           298: and change the group of the file to be the groupid of the people that you
        !           299: want to be able to read it.
        !           300: Also be sure to add the \*(lqbboards\*(rq user to this group
        !           301: (in \fB/etc/group\fR),
        !           302: so the archives can be owned correctly.
        !           303: .pp
        !           304: By using the special INVIS flag for a BBoard,
        !           305: special purpose BBoards may be set\-up which are invisible to the \fIMH\fR
        !           306: user.
        !           307: For example,
        !           308: if a site distributes a BBoard both locally to a number of machines and to a
        !           309: number of distant machines.
        !           310: It might be useful to have two distribution lists:
        !           311: one for all machines on the list, and the other for local machines only.
        !           312: This is actually very simple to do.
        !           313: For the main list,
        !           314: put the standard entry of information in the \fB@(BBHOME)/BBoards\fR file,
        !           315: with the complete distribution list.
        !           316: For the local machines list,
        !           317: and add a similar entry to the \fB@(BBHOME)/BBoards\fR file.
        !           318: All the fields should be the same except three:
        !           319: the BBoard name should reflect a local designation (e.g., \*(lql\-hacks\*(rq),
        !           320: the distribution list should contain only machines at the local site,
        !           321: and the flags field should contain the INVIS flag.
        !           322: Since the two entries share the same primary and archive files,
        !           323: messages sent to either list are read by local users,
        !           324: while only thoses messages sent to the main list are read by all users.
        !           325: .pp
        !           326: Two automatic facilities for dealing with BBoards exist:
        !           327: automatic archiving and automatic aliasing.
        !           328: The file \fBsupport/bboards/crontab\fR contains some entries that you
        !           329: should add to your \fB/usr/lib/crontab\fR file to run the specified programs
        !           330: at times that are convenient for you.
        !           331: The \fBbboards.daily\fR file is run once a day and generates an alias file
        !           332: for \fIMH\fR.
        !           333: By using this file, users of \fIMH\fR can use, for example,
        !           334: \*(lqunix\-wizards\*(rq instead of \*(lqunix\-wizards@brl\-vgr\*(rq
        !           335: when they want to send a message to the \*(lqunix\-wizards\*(rq
        !           336: discussion group.
        !           337: This is a major win, since you just have to know the name of the group,
        !           338: not the address where it's located.
        !           339: .pp
        !           340: The \fBbboards.weekly\fR file is run once a week and handles old
        !           341: messages (those received more than 12 days ago) in the BBoards area.
        !           342: In short,
        !           343: those BBoards which are marked for automatic archiving
        !           344: will have their old messages placed in the \fB@(BBHOME)/archive/\fR area,
        !           345: or have their old messages removed.
        !           346: Not only does this make BBoards faster to read,
        !           347: but it conveniently partitions the new messages from the old messages
        !           348: so you can easily put the old messages on tape and then remove them.
        !           349: It turns out that this automatic archiving capability is also a major
        !           350: win.
        !           351: .pp
        !           352: At UCI,
        !           353: our policy is to save archived messages on tape (every two months or so).
        !           354: We use a program called \fIbbtar\fR to implement our particular policy.
        !           355: Since some BBoards are private (see above),
        !           356: we save the archives on two tapes:
        !           357: one containing the world\-readable archives
        !           358: (this tape is read-only accessible to all users by calling the operator),
        !           359: and the other containing the non\-world\-readable ones
        !           360: (this tape is kept locked\-up somewhere).
        !           361: .pp
        !           362: If POP is enabled with BBoards,
        !           363: a third directive, POPBBoards, may be enabled.
        !           364: This allows the \fIMH\fR user to read BBoards on a server machine
        !           365: instead of the local host (thus saving disk space).
        !           366: For completely transparent behavior,
        !           367: the administrator may set certain variables in the \fBmtstailor\fR file
        !           368: on the client host.
        !           369: The variable \*(lqbbpophost\*(rq indicates the host where BBoards are
        !           370: kept
        !           371: (it doesn't have to be the POP service host,
        !           372: but this host must run both a POP server and the BBoards system).
        !           373: The variable \*(lqbbpopuser\*(rq indicates the guest account on this host
        !           374: for BBoards.
        !           375: This username should not be either the POP user or the BBoards user.
        !           376: Usually the anonymous FTP user (ftp) is the best choice.
        !           377: Finally, the variable \*(lqpopbblist\*(rq indicates the name of a file which
        !           378: contains a list of hosts (one to a line, official host names only) which
        !           379: should be allowed to use the POP facility to access BBoards via the guest
        !           380: account.
        !           381: (If the file is not present, then no check is made.)
        !           382: .pp
        !           383: The \*(lqpopbbuser\*(rq variable should be set on both the client and service
        !           384: host.
        !           385: The \*(lqpopbbhost\*(rq variable need be set only on the client host
        !           386: (the value, of course, is the name of the service host).
        !           387: The \*(lqpopbblist\*(rq variable need be set only on the service host.
        !           388: .pp
        !           389: Finally,
        !           390: on the client host,
        !           391: if a POP service host is not explicitly given by the user
        !           392: (i.e., \*(lqpopbbhost\*(rq is implicitly used),
        !           393: then \fIbbc\fR will explicitly check the local host prior to contacting
        !           394: the service host.
        !           395: This allows each POP client host to have a few local BBoards
        !           396: (e.g., each host could have one called \*(lqsystem\*(rq),
        !           397: and then have the POP service host used for all the rest
        !           398: (a site\-wide BBoard might be known as \*(lqgeneral\*(rq).
        !           399: .if t \{
        !           400: .ll 6.5i
        !           401: .lt 6.5i
        !           402: \}
        !           403: .fo '[mh.6]'MH'UCI version'
        !           404: .po -.50i
        !           405: .so bboards5.me
        !           406: .so bbaka.me
        !           407: .so bbexp.me
        !           408: .so bboards8.me
        !           409: .so bbtar.me
        !           410: .po +.50i
        !           411: .he ''-%-''
        !           412: .fo ''''
        !           413: .br
        !           414: .if t \{
        !           415: .ll 32P
        !           416: .lt 32P
        !           417: \}
        !           418: 
        !           419: .+c "POP"
        !           420: .pp
        !           421: For POP (Post Office Protocol) client hosts,
        !           422: you need to edit the \fB@(MHETCPATH)/mtstailor\fR file to know about two
        !           423: hosts:
        !           424: the SMTP service host and the POP service host.
        !           425: Normally, these are the same.
        !           426: Change the \*(lqlocalname\*(rq field of the \fBmtstailor\fR file
        !           427: of \fIMH\fR in the file to be the name of the POP service host.
        !           428: Also set the value of \*(lqpophost\*(rq to this value.
        !           429: Finally,
        !           430: make sure the value of \*(lqservers\*(rq includes the name of the SMTP
        !           431: service host.
        !           432: The recommended value for \*(lqservers\*(rq is:
        !           433: 
        !           434: .ti +.5i
        !           435: servers:\ SMTP\-service\-host localhost \\01localnet
        !           436: .pp
        !           437: If you want more information on the Post Office Protocol used by \fIMH\fR,
        !           438: consult the file \fBsupport/pop/pop.rfc\fR,
        !           439: which is the \fIMH\fR revision to RFC918.
        !           440: .pp
        !           441: For POP service hosts,
        !           442: you need to run a daemon, \fIpopd\fR\0(8).
        !           443: The daemon should start at multi\-user boot time,
        !           444: so adding the lines:
        !           445: .sp
        !           446: .nf
        !           447: .in +.5i
        !           448: if [ \-f /etc/popd ]; then
        !           449:     /etc/popd & echo \-n ' pop'                        >/dev/console
        !           450: fi
        !           451: .in \-.5i
        !           452: .fi
        !           453: to the \fB/etc/rc.local\fR file is sufficient.
        !           454: In addition,
        !           455: on both the POP client and service hosts,
        !           456: you need to define the port that the POP service uses.
        !           457: Add the line
        !           458: .nf
        !           459: .in +.5i
        !           460: pop            109/tcp         # experimental
        !           461: .in \-.5i
        !           462: .fi
        !           463: to the \fB/etc/services\fR file (if it's not already there).
        !           464: .pp
        !           465: There are two ways to administer POP:
        !           466: In \*(lqnaive\*(rq mode,
        !           467: each user-id in the \fIpasswd\fR\0(5) file is considered a POP subscriber.
        !           468: No changes are required for the mailsystem on the POP service host.
        !           469: However,
        !           470: this method requires that each POP subscriber have an entry in the password
        !           471: file.
        !           472: The POP server will fetch the user's mail from wherever maildrops are kept on
        !           473: the POP service host.
        !           474: This means that if maildrops are kept in the user's home directory,
        !           475: then each POP subscriber must have a home directory.
        !           476: 
        !           477: In \*(lqsmart\*(rq mode
        !           478: (enabled via \*(lqDPOP\*(rq being given as a configuration option),
        !           479: the list of POP subscribers and the list of
        !           480: login users are completely separate name spaces.
        !           481: A separate database (simple file similar to the \fIBBoards\fR\0(5) file)
        !           482: is used to record information about each POP subscriber.
        !           483: Unfortunately,
        !           484: the local mailsystem must be changed to reflect this.
        !           485: This requires two changes (both of which are simple):
        !           486: First,
        !           487: the aliasing mechanism is augmented so that POP subscriber addresses
        !           488: are diverted to a special delivery mechanism.
        !           489: \fIMH\fR comes with a program, \fIpopaka\fR\0(8),
        !           490: which generates the additional information to be put in the mailsystem's
        !           491: alias file.
        !           492: Second,
        !           493: a special POP channel (for MMDF-II) or POP mailer (for SendMail)
        !           494: performs the actual delivery (\fImh.6\fR supplies both).
        !           495: All it really does is just place the mail in the POP spool area.
        !           496: .pp
        !           497: These two different philosophies are not compatible on the same POP service
        !           498: host: one or the other, but not both may be run.
        !           499: Clever mailsystem people will note that
        !           500: the POP mechanism is really a special case of the more general
        !           501: BBoards mechanism.
        !           502: .pp
        !           503: In addition, there is one user-visible difference,
        !           504: which the administrator controls the availability of.
        !           505: The difference is whether the POP subscriber must supply a password to the POP
        !           506: server:
        !           507: The first method uses the standard ARPA technique of sending a username and a
        !           508: password.
        !           509: The appropriate programs (\fIinc\fR, \fImsgchk\fR, and possibly \fIbbc\fR\0)
        !           510: will prompt the user for this information.
        !           511: .pp
        !           512: The second method
        !           513: (which is enabled via \*(lqRPOP\*(rq being given as a configuration option)
        !           514: uses the Berkeley UNIX reserved port method for authentication.
        !           515: This requires that the two or three mentioned above programs be
        !           516: \fIsetuid\fR to root.
        !           517: (There are no known holes in any of these programs.)
        !           518: .pp
        !           519: These two different philosophies are compatible on the same POP service host:
        !           520: to selectively disable RPOP for hosts which aren't trusted,
        !           521: either modify the \fI\&.rhosts\fR file in the case of POP subscribers being
        !           522: UNIX logins,
        !           523: or zero the contents of network address field of the \fIpop\fR\0(5) file for
        !           524: the desired POP subscribers.
        !           525: .if t \{
        !           526: .ll 6.5i
        !           527: .lt 6.5i
        !           528: \}
        !           529: .fo '[mh.6]'MH'UCI version'
        !           530: .po -.50i
        !           531: .so pop5.me
        !           532: .so pop8.me
        !           533: .so popaka.me
        !           534: .so popd.me
        !           535: .so popwrd.me
        !           536: .po +.50i
        !           537: .he ''-%-''
        !           538: .fo ''''
        !           539: .br
        !           540: .if t \{
        !           541: .ll 32P
        !           542: .lt 32P
        !           543: \}
        !           544: 
        !           545: .+c "MAIL FILTERING"
        !           546: .pp
        !           547: There was a time when users on a UNIX host might have had two maildrops:
        !           548: one from \fIMMDF\fR and the other from \fIUUCP\fR.
        !           549: This was really a bad problem since it prevented using a single
        !           550: user\-interface on all of your mail.
        !           551: Furthermore,
        !           552: if you wanted to send a message to addresses on different mailsystems,
        !           553: you couldn't send just one message.
        !           554: To solve all these problems,
        !           555: the notion of \fImail filtering\fR was developed that allowed sophisticated
        !           556: munging and relaying between the two pseudo\-domains.
        !           557: .pp
        !           558: \fIMH\fR will perform mail filtering, transparently, if given the MF
        !           559: configuration option.
        !           560: However,
        !           561: with the advent of \fISendMail\fR and further maturation of \fIMMDF\fR,
        !           562: \fIMH\fR doesn't really need to do this anymore,
        !           563: since these message transport agents handle it.
        !           564: .pp
        !           565: The mail\-filtering stuff is too complicated.
        !           566: It should be simpler, but, protocol translation really \fIis\fR difficult.
        !           567: .if t \{
        !           568: .ll 6.5i
        !           569: .lt 6.5i
        !           570: \}
        !           571: .fo '[mh.6]'MH'UCI version'
        !           572: .po -.50i
        !           573: .so mf.me
        !           574: .so rmail.me
        !           575: .po +.50i
        !           576: .he ''-%-''
        !           577: .fo ''''
        !           578: .br
        !           579: .if t \{
        !           580: .ll 32P
        !           581: .lt 32P
        !           582: \}
        !           583: 
        !           584: .+c "MH HACKING"
        !           585: .pp
        !           586: Finally, here's a little information on modifying the \fIMH\fR sources.
        !           587: A word of advice however:
        !           588: .sp 2
        !           589: .ce
        !           590: .b \s+4DON'T\s0
        !           591: .sp 2
        !           592: .lp
        !           593: If you really want new \fIMH\fR capabilities,
        !           594: write a shell script instead.
        !           595: After all, 
        !           596: that's what UNIX is all about, isn't it?
        !           597: .pp
        !           598: Here's the organization of the \fIMH\fR source tree.
        !           599: .sp
        !           600: .nf
        !           601: .in +.5i
        !           602: .ta \w'miscellany/  'u +\w'sendmail/  'u
        !           603: conf/  configurator tree
        !           604: config/        compiled configuration constants
        !           605: dist/  distributor
        !           606: doc/   manual entries
        !           607: h/     include files
        !           608: mts/   MTS\-specific areas
        !           609:        mh/     standalone delivery
        !           610:        mmdf/   MMDF\-I, MMDF\-II
        !           611:        sendmail/       SendMail, SMTP
        !           612: miscellany/    various sundries
        !           613: papers/        papers about \fIMH\fR
        !           614: sbr/   subroutines
        !           615: support/       support programs and files
        !           616:        bboards/        UCI BBoards facility
        !           617:        general/        templates
        !           618:        pop/    POP facility
        !           619: uip/   programs
        !           620: zotnet/        MTS\-independent areas
        !           621:        bboards/        UCI BBoards facility
        !           622:        mf/     Mail Filtering
        !           623:        mts/    MTS constants
        !           624:        tws/    date routines
        !           625: .re
        !           626: .in -.5i
        !           627: .fi
        !           628: .if t \{
        !           629: .ll 6.5i
        !           630: .lt 6.5i
        !           631: \}
        !           632: .fo '[mh.6]'MH'UCI version'
        !           633: .po -.50i
        !           634: .so mh-hack.me
        !           635: .po +.50i
        !           636: .he ''-%-''
        !           637: .fo ''''
        !           638: .br
        !           639: .if t \{
        !           640: .ll 32P
        !           641: .lt 32P
        !           642: \}
        !           643: 
        !           644: .+c "HIDDEN FEATURES"
        !           645: .pp
        !           646: The capabilities discussed here should not be used on a production basis,
        !           647: as they are either experimental or are useful for debugging \fIMH\fR.
        !           648: 
        !           649: .uh "Debug Facilities"
        !           650: .pp
        !           651: The \fImark\fR command has a `\-debug' switch which essentially prints out
        !           652: all the internal \fIMH\fR data structures for the folder you're looking at.
        !           653: .pp
        !           654: The \fIpost\fR command has a `\-debug' switch which does everything but
        !           655: actually post the message for you.
        !           656: Instead of posting the draft, it sends it to the standard output.
        !           657: Similarly,
        !           658: \fIsend\fR has a `\-debug' switch which gets passed to \fIpost\fR.
        !           659: .pp
        !           660: Some \fIMH\fR commands look at envariables to determine debug\-mode operation
        !           661: of certain new facilities.
        !           662: The current list of envariables is:
        !           663: .sp
        !           664: .nf
        !           665: .in +.5i
        !           666: .ta \w'MHLPOPDEBUG  'u
        !           667: ^MHFDEBUG~^OVERHEAD facility
        !           668: ^MHLDEBUG~^mhl
        !           669: ^MHPDEBUG~^pick
        !           670: ^MHPOPDEBUG~^POP transactions
        !           671: ^MHVDEBUG~^window management transactions
        !           672: ^MHWDEBUG~^alternate\-mailboxes
        !           673: .re
        !           674: .in -.5i
        !           675: .fi
        !           676: 
        !           677: .uh "Send"
        !           678: .pp
        !           679: The \fIsend\fR command has two switches, `\-unique' and `\-nounique',
        !           680: which are useful to certain individuals who, for obscure reasons,
        !           681: do not use draft\-folders.
        !           682: 
        !           683: .uh "Posting Mail"
        !           684: .pp
        !           685: If you're running a version of \fIMH\fR which talks directly to an
        !           686: \fISMTP\fR server (or perhaps an advanced \fIMMDF\fR submit process),
        !           687: there are lots of interesting switches for your amusement which \fIsend\fR
        !           688: and \fIpost\fR understand:
        !           689: .nf
        !           690: .in +.5i
        !           691: .ta \w'-server host  'u
        !           692: ^-mail~^Use the \fIMAIL\fR command (default)
        !           693: ^-saml~^Use the \fISAML\fR command
        !           694: ^-send~^Use the \fISEND\fR command
        !           695: ^-soml~^Use the \fISOML\fR command
        !           696: ^-snoop~^Watch the \fISMTP\fR transaction
        !           697: ^-client host~^Claim to be \*(lqhost\*(rq when posting mail
        !           698: ^-server host~^Post mail with \*(lqhost\*(rq
        !           699: .re
        !           700: .in -.5i
        !           701: .fi
        !           702: .pp
        !           703: The last switch is to be useful when \fIMH\fR resides on small
        !           704: workstations (or PC:s) in a network\-\-they can post their outgoing mail with
        !           705: a local relay,
        !           706: and reduce the load on the local system.
        !           707: On POP client hosts,
        !           708: the `\-server\ host' switch is defaulted appropriately using the SMTP
        !           709: search\-list mechanism.
        !           710: The \fIwhom\fR command understands the last three switches.
        !           711: @BEGIN: TMA
        !           712: 
        !           713: .+c "TRUSTED MAIL"
        !           714: .pp
        !           715: If you are licensed to run the TTI Trusted Mail Agent (TMA),
        !           716: here are three utility programs to manage the Key Distribution Server (KDS):
        !           717: \fIkdsc\fR, \fIkdsd\fR, and \fIkdser\fR.
        !           718: .if t \{
        !           719: .ll 6.5i
        !           720: .lt 6.5i
        !           721: \}
        !           722: .fo '[mh.6]'MH'UCI version'
        !           723: .po -.50i
        !           724: .so kdsc.me
        !           725: .so kdsd.me
        !           726: .so kdser.me
        !           727: .po +.50i
        !           728: .he ''-%-''
        !           729: .fo ''''
        !           730: .br
        !           731: .if t \{
        !           732: .ll 32P
        !           733: .lt 32P
        !           734: \}
        !           735: @END: TMA
        !           736: 
        !           737: .+c "CONFIGURATION OPTIONS"
        !           738: .pp
        !           739: This manual was generated with the following configuration options in
        !           740: effect:
        !           741: .sp 2
        !           742: .hl
        !           743: .nf
        !           744: .in +1.25i
        !           745: .ta \w'BBoards Home Directory      'u
        !           746: ^Generation Date~^\*(td
        !           747: ^Primary Directory~^@(MHBINPATH)/
        !           748: ^Secondary Directory~^@(MHETCPATH)/
        !           749: ^Maildrop Location~^@(MHDROPLOC)
        !           750: @BEGIN: BBOARDS
        !           751: ^BBoards Support~^Enabled
        !           752: ^BBoards Home Directory~^@(BBHOME)
        !           753: @END: BBOARDS
        !           754: @BEGIN: POP
        !           755: ^POP Support~^Enabled
        !           756: @END: POP
        !           757: @BEGIN: BPOP
        !           758: ^BBoards on POP~^Enabled
        !           759: @END: BPOP
        !           760: @BEGIN: TMA
        !           761: ^Trusted Mail Support~^Enabled
        !           762: @END: TMA
        !           763: @BEGIN: SMTP
        !           764: .ds SM with SMTP
        !           765: @END: SMTP
        !           766: @BEGIN: MMDFIMTS
        !           767: ^Transport System~^MMDF-I \*(SM
        !           768: @END: MMDFIMTS
        !           769: @BEGIN: MMDFIIMTS
        !           770: ^Transport System~^MMDF-II \*(SM
        !           771: @END: MMDFIIMTS
        !           772: @BEGIN: SENDMTS
        !           773: ^Transport System~^SendMail \*(SM
        !           774: @END: SENDMTS
        !           775: @BEGIN: MHMTS
        !           776: ^Transport System~^Stand\-Alone Delivery
        !           777: @END: MHMTS
        !           778: .re
        !           779: .in -1.5i
        !           780: .fi
        !           781: .hl
        !           782: .\"    table of contents
        !           783: .he ''''
        !           784: .fo ''''
        !           785: .bp
        !           786: .ce
        !           787: .b \\s12CONTENTS\\s0
        !           788: .sp 3
        !           789: .xp y
        !           790: .xp x
        !           791: .bp
        !           792: .\"    And now the COVER sheet
        !           793: .po +.325i
        !           794: .ll 32P
        !           795: .nf
        !           796:  
        !           797: .sp 1.5in
        !           798: .ps 24
        !           799: .vs 32
        !           800: .ft B
        !           801: .ce 4
        !           802: THE RAND MH
        !           803: MESSAGE HANDLING
        !           804: SYSTEM:
        !           805: ADMINISTRATOR'S GUIDE
        !           806: .ft R
        !           807: .sp .8i
        !           808: .ps 20
        !           809: .vs 24
        !           810: .ce
        !           811: UCI Version
        !           812: .sp 0.7i
        !           813: .ce 2
        !           814: Marshall T. Rose
        !           815: .sp 0.5i
        !           816: .ft I
        !           817: .ce 3
        !           818: First Edition:
        !           819: MH Classic
        !           820: \s-2(Not to be confused with a well\-known soft drink)\s+2
        !           821: .ft R
        !           822: .vs
        !           823: .sp 1i
        !           824: .ps 18
        !           825: .vs 22
        !           826: .ce 2
        !           827: \*(td
        !           828: \*(MH

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.