doc/configuration.texi
changeset 0 6f7a81934006
child 2 b3afb9f1e801
equal deleted inserted replaced
-1:000000000000 0:6f7a81934006
       
     1 \input texinfo @c -*-texinfo-*-
       
     2 @c %**start of header
       
     3 @setfilename configuration.info
       
     4 @settitle Vmailmgr Configuration Files
       
     5 @setchapternewpage off
       
     6 @paragraphindent 5
       
     7 @footnotestyle end
       
     8 @c %**end of header
       
     9 
       
    10 @ifinfo
       
    11 Copyright @copyright{} 1998 Bruce Guenter
       
    12 @end ifinfo
       
    13 
       
    14 @titlepage
       
    15 @title Vmailmgr Configuration Files
       
    16 @author Bruce Guenter
       
    17 @subtitle @today{}
       
    18 @end titlepage
       
    19 
       
    20 @node Top, General Information, (dir), (dir)
       
    21 
       
    22 @menu
       
    23 * General Information::         
       
    24 * Configuration Files::         
       
    25 @end menu
       
    26 
       
    27 @c ****************************************************************************
       
    28 @node General Information, Configuration Files, Top, Top
       
    29 @chapter General Information
       
    30 
       
    31 @menu
       
    32 * Search Order::                
       
    33 * File Types::                  
       
    34 * Command Execution::           
       
    35 @end menu
       
    36 
       
    37 @c ============================================================================
       
    38 @node Search Order, File Types, General Information, General Information
       
    39 @section Search Order
       
    40 
       
    41 The system will look for the configuration files listed below in one of
       
    42 the following three locations, in the order they are listed:
       
    43 @enumerate
       
    44 @item The domain-local configuration directory
       
    45 @item The user-local configuration directory
       
    46 @item The global configuration directory
       
    47 @end enumerate
       
    48 The global configuration directory is set to @file{/etc/vmailmgr} by
       
    49 default.
       
    50 The user-local and domain-local configuration directories (for now, one
       
    51 and the same) are a subdirectory, named @file{.vmailmgr} by default, of
       
    52 either the user's home directory or the domain subdirectory.  
       
    53 If a file matching the configuration name is found in one of the local
       
    54 directories, the search stops and it is not searched for in any
       
    55 higher up directories.
       
    56 
       
    57 @c ============================================================================
       
    58 @node File Types, Command Execution, Search Order, General Information
       
    59 @section File Types
       
    60 
       
    61 Each of the configuration files falls into one of the following types:
       
    62 
       
    63 @table @asis
       
    64 
       
    65 @item String
       
    66 
       
    67 A single line is read from this type and used as-is with no conversion.
       
    68 All data after the first line is ignored.
       
    69 
       
    70 @item Directory
       
    71 
       
    72 A single line is read from this type.
       
    73 If it does not have a trailing slash (@samp{/}), one is appended.
       
    74 All data after the first line is ignored.
       
    75 
       
    76 @item Number
       
    77 
       
    78 A single line is read from this type and converted to an unsigned
       
    79 integer.
       
    80 If the conversion succeeds, the value is used.
       
    81 All data after the first line is ignored.
       
    82 
       
    83 @item List
       
    84 
       
    85 Each line of the file is read, stripped of leading and trailing
       
    86 whitespace, and treated as a separate value.
       
    87 Lines that contain only whitespace (ie blank lines) or lines beginning
       
    88 with a pound symbol (@samp{#}) are ignored.
       
    89 
       
    90 @item Executable
       
    91 
       
    92 If the execute bits on the file are set, it is treated as an executable
       
    93 file and is executed with no interpretation by vmailmgr.
       
    94 The the Command Execution section below for details.
       
    95 
       
    96 @end table
       
    97 
       
    98 All lines are stripped of any leading or trailing white space.
       
    99 
       
   100 Configuration files marked as @samp{(global only)} are read
       
   101 before any user-level processing occurrs, and so are not functional in
       
   102 the user-level configuration.
       
   103 
       
   104 @c ============================================================================
       
   105 @node Command Execution,  , File Types, General Information
       
   106 @section Command Execution
       
   107 
       
   108 The following rules apply to executing a single command or a list of
       
   109 commands.
       
   110 
       
   111 The executables are searched in reverse order of the configuration
       
   112 files.
       
   113 That is, the global setting is used first, and then the local settings.
       
   114 If the named file either does not exist in a directory or is not
       
   115 executable, that directory is skipped.
       
   116 
       
   117 A command exit code of @samp{99} indicates that the command completed
       
   118 successfully but no further commands should be executed.
       
   119 All other non-zero exit codes are treated as an error and will cause the
       
   120 invoking program to stop with the same error code.
       
   121 For @file{vdeliver}, an error exit of 111 will be passed up to qmail as a
       
   122 temporary error, and an error exit of 100 will be passed up as a
       
   123 permanent failure.
       
   124 See the @file{qmail-command} man page for full details on delivery error
       
   125 codes.
       
   126 For @file{checkvpw}, any non-zero exit code (except as described above)
       
   127 will cause authentication to fail.
       
   128 
       
   129 The following environment variables will be set (where applicable):
       
   130 
       
   131 @table @samp
       
   132 @item HOME
       
   133 The home directory of the real user.
       
   134 @item MAILDIR
       
   135 The mail directory of the real or virtual user.
       
   136 @item USER
       
   137 The real user's name.
       
   138 @item VUSER
       
   139 The virtual user's name.
       
   140 For base user logins, this is blank, and all the following items
       
   141 prefixed with @samp{VUSER_} are not set.
       
   142 @item VUSER_CTIME
       
   143 The virtual user's creation time (or "0" if unknown).
       
   144 @item VUSER_EXPIRY
       
   145 The virtual user's expiry time (or "-" if not applicable).
       
   146 @item VUSER_HARDQUOTA
       
   147 The virtual user's total size hard quota (in bytes, or "-" if not applicable).
       
   148 @item VUSER_MSGCOUNT
       
   149 The virtual user's message count limit (or "-" if not applicable).
       
   150 @item VUSER_MSGSIZE
       
   151 The virtual user's message size limit (or "-" if not applicable).
       
   152 @item VUSER_PERSONAL
       
   153 The virtual user's personal data.
       
   154 @item VUSER_SOFTQUOTA
       
   155 The virtual user's total size soft quota (in bytes, or "-" if not applicable).
       
   156 @end table
       
   157 
       
   158 @c ****************************************************************************
       
   159 @node Configuration Files,  , General Information, Top
       
   160 @chapter Configuration Files
       
   161 
       
   162 Each of the following sections identifies a single configuration file
       
   163 
       
   164 @menu
       
   165 * authvmailmgr-error::          
       
   166 * authvmailmgr-loginfail::      
       
   167 * authvmailmgr-postsetuid::     
       
   168 * authvmailmgr-presetuid::      
       
   169 * autoresponse-dir::            
       
   170 * autoresponse-file::           
       
   171 * bulletin-dir::                
       
   172 * checkvpw-error::              
       
   173 * checkvpw-loginfail::          
       
   174 * checkvpw-postexec::           
       
   175 * checkvpw-postsetuid::         
       
   176 * checkvpw-presetuid::          
       
   177 * default-expiry::              
       
   178 * default-maildir::             
       
   179 * default-msgcount::            
       
   180 * default-msgsize::             
       
   181 * default-hardquota::           
       
   182 * default-softquota::           
       
   183 * default-username::            
       
   184 * error-maildir::               
       
   185 * global-bulletin-dir::         
       
   186 * maildir-arg-str::             
       
   187 * password-file::               
       
   188 * postmaster-aliases::          
       
   189 * postmaster-email::            
       
   190 * qmail-root::                  
       
   191 * separators::                  
       
   192 * socket-file::                 
       
   193 * user-dir::                    
       
   194 * user-dir-bits::               
       
   195 * user-dir-slices::             
       
   196 * vdeliver-postdeliver::        
       
   197 * vdeliver-predeliver::         
       
   198 * vsetup-post::                 
       
   199 * vsetup-pre::                  
       
   200 @end menu
       
   201 
       
   202 @c ============================================================================
       
   203 @node authvmailmgr-error, authvmailmgr-loginfail, Configuration Files, Configuration Files
       
   204 @section authvmailmgr-error
       
   205 
       
   206 @table @strong
       
   207 @item Type
       
   208 executable
       
   209 @item Default
       
   210 Empty
       
   211 @item Used By
       
   212 authvmailmgr
       
   213 @item Description
       
   214 This is executed by authvmailmgr if any error occurrs other than those
       
   215 caught by @file{authvmailmgr-loginfail} below.
       
   216 The environment variable @code{AUTHVMAILMGR_ERROR} will contain an error
       
   217 message.
       
   218 This can be used to output logging messages about errors in authvmailmgr.
       
   219 @end table
       
   220 
       
   221 @c ============================================================================
       
   222 @node authvmailmgr-loginfail, authvmailmgr-postsetuid, authvmailmgr-error, Configuration Files
       
   223 @section authvmailmgr-loginfail
       
   224 
       
   225 @table @strong
       
   226 @item Type
       
   227 executable
       
   228 @item Default
       
   229 Empty
       
   230 @item Used By
       
   231 authvmailmgr
       
   232 @item Description
       
   233 This is executed by authvmailmgr if the user's login fails.
       
   234 The environment variable @code{AUTHVMAILMGR_ERROR} will contain an error
       
   235 message.
       
   236 The environment variable @code{VUSER} will be set to the virtual user
       
   237 name if it has been determined.
       
   238 This can be used to output logging messages about login failures or to
       
   239 throttle hackers.
       
   240 @end table
       
   241 
       
   242 @c ============================================================================
       
   243 @node authvmailmgr-postsetuid, authvmailmgr-presetuid, authvmailmgr-loginfail, Configuration Files
       
   244 @section authvmailmgr-postsetuid
       
   245 
       
   246 @table @strong
       
   247 @item Type
       
   248 executable
       
   249 @item Default
       
   250 @samp {vpopbull}
       
   251 @item Used By
       
   252 authvmailmgr
       
   253 @item Description
       
   254 This is executed by authvmailmgr after a user is successfully authenticated.
       
   255 @end table
       
   256 
       
   257 @c ============================================================================
       
   258 @node authvmailmgr-presetuid, autoresponse-dir, authvmailmgr-postsetuid, Configuration Files
       
   259 @section authvmailmgr-presetuid
       
   260 
       
   261 @table @strong
       
   262 @item Type
       
   263 executable
       
   264 @item Default
       
   265 Empty
       
   266 @item Used By
       
   267 authvmailmgr
       
   268 @item Description
       
   269 This list is executed by authvmailmgr before changing user away from root,
       
   270 and before authenticating a virtual user.
       
   271 Note: The environment variable @samp{MAILDIR} is not set since the
       
   272 virtual user has not yet been authenticated, or even looked up
       
   273 at this point.
       
   274 For the same reason, @samp{VUSER} is not authenticated and is under
       
   275 complete control of the invoking user.
       
   276 @end table
       
   277 
       
   278 @c ============================================================================
       
   279 @node autoresponse-dir, autoresponse-file, authvmailmgr-presetuid, Configuration Files
       
   280 @section autoresponse-dir
       
   281 
       
   282 @table @strong
       
   283 @item Type
       
   284 directory
       
   285 @item Default
       
   286 @samp{autoresponse}
       
   287 @item Used By
       
   288 vmailmgrd, autoresponder script
       
   289 @item Description
       
   290 Identifies the subdirectory of the virtual user directory in which all
       
   291 autoresponse data is stored.
       
   292 @end table
       
   293 
       
   294 @c ============================================================================
       
   295 @node autoresponse-file, bulletin-dir, autoresponse-dir, Configuration Files
       
   296 @section autoresponse-file
       
   297 
       
   298 @table @strong
       
   299 @item Type
       
   300 string
       
   301 @item Default
       
   302 @samp{message.txt}
       
   303 @item Used By
       
   304 vmailmgrd, autoresponder script
       
   305 @item Description
       
   306 Identifies the file name within the autoresponse directory that contains
       
   307 the autoresponse message.
       
   308 @end table
       
   309 
       
   310 @c ============================================================================
       
   311 @node bulletin-dir, checkvpw-error, autoresponse-file, Configuration Files
       
   312 @section bulletin-dir
       
   313 
       
   314 @table @strong
       
   315 @item Type
       
   316 directory
       
   317 @item Default
       
   318 @samp{bulletins}
       
   319 @item Used By
       
   320 checkvpw
       
   321 @item Description
       
   322 Identifies the subdirectory of the domain directory in which bulletins
       
   323 local to a domain are stored.
       
   324 @end table
       
   325 
       
   326 @c ============================================================================
       
   327 @node checkvpw-error, checkvpw-loginfail, bulletin-dir, Configuration Files
       
   328 @section checkvpw-error
       
   329 
       
   330 @table @strong
       
   331 @item Type
       
   332 executable
       
   333 @item Default
       
   334 Empty
       
   335 @item Used By
       
   336 checkvpw
       
   337 @item Description
       
   338 This is executed by checkvpw if any error occurrs other than those
       
   339 caught by @file{checkvpw-loginfail} below.
       
   340 The environment variable @code{CHECKVPW_ERROR} will contain an error
       
   341 message.
       
   342 This can be used to output logging messages about errors in checkvpw.
       
   343 @end table
       
   344 
       
   345 @c ============================================================================
       
   346 @node checkvpw-loginfail, checkvpw-postexec, checkvpw-error, Configuration Files
       
   347 @section checkvpw-loginfail
       
   348 
       
   349 @table @strong
       
   350 @item Type
       
   351 executable
       
   352 @item Default
       
   353 Empty
       
   354 @item Used By
       
   355 checkvpw
       
   356 @item Description
       
   357 This is executed by checkvpw if the user's login fails.
       
   358 The environment variable @code{CHECKVPW_ERROR} will contain an error
       
   359 message.
       
   360 The environment variable @code{VUSER} will be set to the virtual user
       
   361 name if it has been determined.
       
   362 This can be used to output logging messages about login failures or to
       
   363 throttle hackers.
       
   364 @end table
       
   365 
       
   366 @c ============================================================================
       
   367 @node checkvpw-postexec, checkvpw-postsetuid, checkvpw-loginfail, Configuration Files
       
   368 @section checkvpw-postexec
       
   369 
       
   370 @table @strong
       
   371 @item Type
       
   372 executable
       
   373 @item Default
       
   374 Empty
       
   375 @item Used By
       
   376 checkvpw
       
   377 @item Description
       
   378 This is executed by checkvpw after the subcommand successfully completes.
       
   379 @end table
       
   380 
       
   381 @c ============================================================================
       
   382 @node checkvpw-postsetuid, checkvpw-presetuid, checkvpw-postexec, Configuration Files
       
   383 @section checkvpw-postsetuid
       
   384 
       
   385 @table @strong
       
   386 @item Type
       
   387 executable
       
   388 @item Default
       
   389 @samp {vpopbull}
       
   390 @item Used By
       
   391 checkvpw
       
   392 @item Description
       
   393 This is executed by checkvpw after a user is successfully authenticated.
       
   394 @end table
       
   395 
       
   396 @c ============================================================================
       
   397 @node checkvpw-presetuid, default-expiry, checkvpw-postsetuid, Configuration Files
       
   398 @section checkvpw-presetuid
       
   399 
       
   400 @table @strong
       
   401 @item Type
       
   402 executable
       
   403 @item Default
       
   404 Empty
       
   405 @item Used By
       
   406 checkvpw
       
   407 @item Description
       
   408 This list is executed by checkvpw before changing user away from root,
       
   409 and before authenticating a virtual user.
       
   410 Note: The environment variable @samp{MAILDIR} is not set since the
       
   411 virtual user has not yet been authenticated, or even looked up
       
   412 at this point.
       
   413 For the same reason, @samp{VUSER} is not authenticated and is under
       
   414 complete control of the invoking user.
       
   415 @end table
       
   416 
       
   417 @c ============================================================================
       
   418 @node  default-expiry, default-maildir, checkvpw-presetuid, Configuration Files
       
   419 @section default-expiry
       
   420 
       
   421 @table @strong
       
   422 @item Type
       
   423 number
       
   424 @item Default
       
   425 @samp{-1}
       
   426 @item Used By
       
   427 vadduser
       
   428 @item Description
       
   429 Sets the default expiry value for newly created users.
       
   430 Negative values indicate no expiry.
       
   431 @end table
       
   432 
       
   433 @c ============================================================================
       
   434 @node  default-maildir, default-msgcount, default-expiry, Configuration Files
       
   435 @section default-maildir
       
   436 
       
   437 @table @strong
       
   438 @item Type
       
   439 directory
       
   440 @item Default
       
   441 @samp{Maildir}
       
   442 @item Used By
       
   443 checkvpw
       
   444 @item Description
       
   445 Sets the name of the directory to be used as a non-virtual user's maildir.
       
   446 @end table
       
   447 
       
   448 @c ============================================================================
       
   449 @node  default-msgcount, default-msgsize, default-maildir, Configuration Files
       
   450 @section default-msgcount
       
   451 
       
   452 @table @strong
       
   453 @item Type
       
   454 number
       
   455 @item Default
       
   456 @samp{-1}
       
   457 @item Used By
       
   458 vadduser
       
   459 @item Description
       
   460 Sets the default message count limit.
       
   461 @end table
       
   462 
       
   463 @c ============================================================================
       
   464 @node  default-msgsize, default-hardquota, default-msgcount, Configuration Files
       
   465 @section default-msgsize
       
   466 
       
   467 @table @strong
       
   468 @item Type
       
   469 number
       
   470 @item Default
       
   471 @samp{-1}
       
   472 @item Used By
       
   473 vadduser
       
   474 @item Description
       
   475 Sets the default message size limit, in bytes.
       
   476 @end table
       
   477 
       
   478 @c ============================================================================
       
   479 @node default-hardquota, default-softquota, default-msgsize, Configuration Files
       
   480 @section default-hardquota
       
   481 
       
   482 @table @strong
       
   483 @item Type
       
   484 number
       
   485 @item Default
       
   486 @samp{-1}
       
   487 @item Used By
       
   488 vadduser
       
   489 @item Description
       
   490 Sets the default hard quota, in bytes.
       
   491 @end table
       
   492 
       
   493 @c ============================================================================
       
   494 @node default-softquota, default-username, default-hardquota, Configuration Files
       
   495 @section default-softquota
       
   496 
       
   497 @table @strong
       
   498 @item Type
       
   499 number
       
   500 @item Default
       
   501 @samp{-1}
       
   502 @item Used By
       
   503 vadduser
       
   504 @item Description
       
   505 Sets the default soft quota, in bytes.
       
   506 @end table
       
   507 
       
   508 @c ============================================================================
       
   509 @node default-username, error-maildir, default-softquota, Configuration Files
       
   510 @section default-username
       
   511 
       
   512 @table @strong
       
   513 @item Type
       
   514 string
       
   515 @item Default
       
   516 @samp{+}
       
   517 @item Used By
       
   518 vmailmgrd
       
   519 @item Description
       
   520 Identifies the name of the virtual user to be looked up if a lookup of
       
   521 another virtual user fails.
       
   522 @end table
       
   523 
       
   524 @c ============================================================================
       
   525 @node error-maildir, global-bulletin-dir, default-username, Configuration Files
       
   526 @section error-maildir
       
   527 
       
   528 @table @strong
       
   529 @item Type
       
   530 directory
       
   531 @item Default
       
   532 @samp{/var/lib/vmailmgr/error-maildir}
       
   533 @item Used By
       
   534 checkvpw
       
   535 @item Description
       
   536 Specifies the path of a read-only maildir containing a message to be
       
   537 sent to the user when the maildir corresponding to that user does not
       
   538 exist.
       
   539 @end table
       
   540 
       
   541 @c ============================================================================
       
   542 @node global-bulletin-dir, maildir-arg-str, error-maildir, Configuration Files
       
   543 @section global-bulletin-dir
       
   544 
       
   545 @table @strong
       
   546 @item Type
       
   547 directory
       
   548 @item Default
       
   549 @samp{/var/spool/bulletins}
       
   550 @item Used By
       
   551 checkvpw
       
   552 @item Description
       
   553 Identifies a site-wide bulletin directory.
       
   554 @end table
       
   555 
       
   556 @c ============================================================================
       
   557 @node maildir-arg-str, password-file, global-bulletin-dir, Configuration Files
       
   558 @section maildir-arg-str
       
   559 
       
   560 @table @strong
       
   561 @item Type
       
   562 string
       
   563 @item Default
       
   564 @samp{maildir}
       
   565 @item Used By
       
   566 checkvpw (global only)
       
   567 @item Description
       
   568 Identifies the string to search for when attempting to identify the
       
   569 maildir argument on the command line to checkvpw.
       
   570 @end table
       
   571 
       
   572 @c ============================================================================
       
   573 @node password-file, postmaster-aliases, maildir-arg-str, Configuration Files
       
   574 @section password-file
       
   575 
       
   576 @table @strong
       
   577 @item Type
       
   578 string
       
   579 @item Default
       
   580 @samp{passwd}
       
   581 @item Used By
       
   582 vmailmgrd and command-line programs
       
   583 @item Description
       
   584 Identifies the file that contains user names, passwords, and
       
   585 destinations for a virtual domain.
       
   586 Note that this has nothing to do with "real" users, for which the
       
   587 password file is determined by the system libraries.
       
   588 @end table
       
   589 
       
   590 @c ============================================================================
       
   591 @node postmaster-aliases, postmaster-email, password-file, Configuration Files
       
   592 @section postmaster-aliases
       
   593 
       
   594 @table @strong
       
   595 @item Type
       
   596 list
       
   597 @item Default
       
   598 @samp{mailer-daemon}
       
   599 @samp{postmaster}
       
   600 @samp{root}
       
   601 @item Used By
       
   602 vsetup
       
   603 @item Description
       
   604 A list of aliases to the postmaster email address to set
       
   605 up when creating a new virtual domain with the vsetup command.
       
   606 This should @emph{always} contain both @samp{postmaster} and
       
   607 @samp{mailer-daemon} (required by the RFCs), and should usually contain
       
   608 @samp{root}.
       
   609 @end table
       
   610 
       
   611 @c ============================================================================
       
   612 @node postmaster-email, qmail-root, postmaster-aliases, Configuration Files
       
   613 @section postmaster-email
       
   614 
       
   615 @table @strong
       
   616 @item Type
       
   617 string
       
   618 @item Default
       
   619 @samp{postmaster@@}
       
   620 @item Used By
       
   621 vsetup
       
   622 @item Description
       
   623 Identifies the email address of the entity responsible
       
   624 for the administration of the (virtual) host when building the
       
   625 postmaster aliases above.
       
   626 If this value ends with a trailing @samp{@@}, the value of
       
   627 @file{/var/qmail/control/me} is filled in for the host name.
       
   628 If no @samp{@@} is present, the current virtual host name
       
   629 is filled in by vdeliver.
       
   630 If this is set to @samp{postmaster}, a mail loop
       
   631 will result and all mail to this address will bounce.
       
   632 @end table
       
   633 
       
   634 @c ============================================================================
       
   635 @node qmail-root, separators, postmaster-email, Configuration Files
       
   636 @section qmail-root
       
   637 
       
   638 @table @strong
       
   639 @item Type
       
   640 string
       
   641 @item Default
       
   642 @samp{/var/qmail}
       
   643 @item Used By
       
   644 checkvpw, vdeliver, vmailmgrd
       
   645 @item Description
       
   646 Specifies the location of the base directory of your qmail install.
       
   647 Set this to whatever you put into @file{conf-home} when you built and
       
   648 installed qmail.
       
   649 @end table
       
   650 
       
   651 @c ============================================================================
       
   652 @node separators, socket-file, qmail-root, Configuration Files
       
   653 @section separators
       
   654 
       
   655 @table @strong
       
   656 @item Type
       
   657 string
       
   658 @item Default
       
   659 @samp{@@:}
       
   660 @item Used By
       
   661 checkvpw (global only)
       
   662 @item Description
       
   663 Identifies the set of valid separators within a user login name between
       
   664 the virtual user name and virtual domain name when logging in via
       
   665 checkvpw.
       
   666 For example, if separators contains @samp{@@:} then @samp{user@@domain} and
       
   667 @samp{user:domain} are equivalent POP mailbox names.
       
   668 @end table
       
   669 
       
   670 @c ============================================================================
       
   671 @node socket-file, user-dir, separators, Configuration Files
       
   672 @section socket-file
       
   673 
       
   674 @table @strong
       
   675 @item Type
       
   676 string
       
   677 @item Default
       
   678 @samp{/tmp/.vmailmgrd}
       
   679 @item Used By
       
   680 vmailmgrd, checkvpw, vdeliver, and the CGI programs
       
   681 @item Description
       
   682 Identifies the file name of the local socket used to
       
   683 communicate between the vmailmgr daemon and the other programs.
       
   684 @emph{Warning:} Changing this in the local configuration directories
       
   685 will cause vdeliver to fail.
       
   686 @end table
       
   687 
       
   688 @c ============================================================================
       
   689 @node user-dir, user-dir-bits, socket-file, Configuration Files
       
   690 @section user-dir
       
   691 
       
   692 @table @strong
       
   693 @item Type
       
   694 directory
       
   695 @item Default
       
   696 @samp{users}
       
   697 @item Used By
       
   698 vmailmgrd and command-line programs
       
   699 @item Description
       
   700 Identifies the subdirectory from the virtual domain directory in which a
       
   701 virtual user's maildir will be created.
       
   702 Since this maildir is recorded in the password table, it does not have
       
   703 to be the same for each user within a domain.
       
   704 This is prefixed with @samp{./} before it is used in the password table.
       
   705 @end table
       
   706 
       
   707 @c ============================================================================
       
   708 @node user-dir-bits, user-dir-slices, user-dir, Configuration Files
       
   709 @section user-dir-bits
       
   710 
       
   711 @table @strong
       
   712 @item Type
       
   713 @item Default
       
   714 @samp{0}
       
   715 @item Used By
       
   716 vmailmgrd and command-line programs when creating new users.
       
   717 @item Description
       
   718 @xref{user-dir-slices}
       
   719 @end table
       
   720 
       
   721 @c ============================================================================
       
   722 @node user-dir-slices, vdeliver-postdeliver, user-dir-bits, Configuration Files
       
   723 @section user-dir-slices
       
   724 
       
   725 @table @strong
       
   726 @item Type
       
   727 @item Default
       
   728 @samp{0}
       
   729 @item Used By
       
   730 vmailmgrd and command-line programs when creating new users.
       
   731 @item Description
       
   732 @file{user-dir-bits} and @file{user-dir-slices} work together.  When creating a
       
   733 new user directory name, a hash code is generated on the name of the
       
   734 new user.  This hash code is split into @file{user-dir-slices} pieces, each
       
   735 @file{user-dir-bits} bits long.  Each of these pieces is translated to an
       
   736 ASCII string by converting the binary code to hexadecimal.  The
       
   737 resulting user directory name is then composed of:
       
   738 @itemize @bullet
       
   739 @item the base users directory, followed by a @samp{/}
       
   740 @item each of the string pieces, each followed by a @samp{/}
       
   741 @item the user's name
       
   742 @end itemize
       
   743 For example, with @file{user-dir-bits} set to 6 and
       
   744 @file{user-dir-slices} set to 1, a user
       
   745 named @samp{c} maps to a directory name of @samp{users/2f/c/}.
       
   746 @end table
       
   747 
       
   748 @c ============================================================================
       
   749 @node vdeliver-postdeliver, vdeliver-predeliver, user-dir-slices, Configuration Files
       
   750 @section vdeliver-postdeliver
       
   751 
       
   752 @table @strong
       
   753 @item Type
       
   754 executable
       
   755 @item Default
       
   756 Empty
       
   757 @item Used By
       
   758 vdeliver
       
   759 @item Description
       
   760 This list is executed after the delivery is successfully
       
   761 completed.
       
   762 Since vdeliver expects @samp{USER} and @samp{HOME} to be set, it does
       
   763 not set them itself.
       
   764 If the command returns with an error code, a warning is printed, but
       
   765 delivery does not fail, as failure would lead to duplicates.
       
   766 @end table
       
   767 
       
   768 @c ============================================================================
       
   769 @node vdeliver-predeliver, vsetup-post, vdeliver-postdeliver, Configuration Files
       
   770 @section vdeliver-predeliver
       
   771 
       
   772 @table @strong
       
   773 @item Type
       
   774 executable
       
   775 @item Default
       
   776 Empty
       
   777 @item Used By
       
   778 vdeliver
       
   779 @item Description
       
   780 This list is executed before the delivery is attempted, but
       
   781 after the virtual user information is looked up.
       
   782 Since vdeliver expects @samp{USER} and @samp{HOME} to be set, it does
       
   783 not set them itself.
       
   784 @end table
       
   785 
       
   786 @c ============================================================================
       
   787 @node vsetup-post, vsetup-pre, vdeliver-predeliver, Configuration Files
       
   788 @section vsetup-pre
       
   789 
       
   790 @table @strong
       
   791 @item Type
       
   792 executable
       
   793 @item Default
       
   794 Empty
       
   795 @item Used By
       
   796 vsetup
       
   797 @item Description
       
   798 This list is executed after the vsetup command has sucessfully done
       
   799 everything else.
       
   800 @end table
       
   801 
       
   802 
       
   803 @c ============================================================================
       
   804 @node vsetup-pre,  , vsetup-post, Configuration Files
       
   805 @section vsetup-pre
       
   806 
       
   807 @table @strong
       
   808 @item Type
       
   809 executable
       
   810 @item Default
       
   811 Empty
       
   812 @item Used By
       
   813 vsetup
       
   814 @item Description
       
   815 This list is executed before the vsetup command makes any changes.
       
   816 @end table
       
   817 
       
   818 
       
   819 @contents
       
   820 
       
   821 @bye