ZMailer

The Manual; v1.99.26.200602020935

Document SGML source rendered to HTML on: Thu Feb 2 09:36:18 UTC 2006

Warning

THIS IS A WORK IN PROGRESS, AND ALL OF THE ORIGINAL LATEX MATERIAL HAS NOT BEEN YET CONVERTED TO DOCBOOK SGML!

Once full conversion has been achieved, a lot of information updates are also needed.



Warning

In the meantime, if some module or subsystem does have incomplete documentation, see if man-pages are more complete!



Matti Aarnio


Table of Contents
I. Tutorial
1. Introduction to Email
1.1. Messaging
1.1.1. The Messaging Model
1.1.2. Routing And Delivering Messages
2. ZMailer's Features, and Facilities
2.1. Introduction
2.1.1. Design Summary
2.2. Running ZMailer
2.3. Factors Affecting Overall System Performance
II. Build and Install
3. Build and Install
3.1. Environment Issues
3.2. Auto-configuration
3.3. Compilation
3.4. Installing and Upgrading
3.4.1. Install Preparation
3.4.2. Installation
3.4.3. Installing the Manual Pages.
4. System Configuring
4.1. Run-time files
4.1.1. zmailer.conf
4.1.2. /etc/group
4.1.3. /etc/services
4.2. The Router subsystem
4.2.1. The Router Configuration File ($MAILSHARE/router.cf).
4.2.2. $MAILVAR/mail.conf
4.2.3. Verifying That the Router Starts
4.2.4. The Router Database Files
4.2.4.1. $MAILBIN/zmailer script
4.2.4.2. $MAILVAR/db/dbases.conf file
4.2.4.3. $MAILVAR/db/aliases file
4.2.4.3.1. Alias expansion
4.2.4.4. $MAILVAR/db/fqdnaliases file
4.2.4.5. $MAILVAR/db/localnames file
4.2.4.6. $MAILVAR/db/routes file
4.2.4.7. UUCP Node Names
4.2.5. Checking the Routing
4.3. The Smtpserver subsystem
4.3.1. The smtpserver.conf, and smtp-policy databases
4.3.2. Testing smtpserver operationality
4.4. The Scheduler subsystem
4.4.1. Checking the Scheduler
4.4.2. Checking scheduler.auth file
4.4.3. Checking sm.conf file
4.4.4. Customizing ZMailer Messages
4.5. Boot-up Scripts
4.6. Checking the Log Files
4.7. Crontab
4.8. Trim-down of Logging
5. Installation to Clients
5.1. Required Files
5.2. Mounting $MAILBOXes and/or $POSTOFFICE/ Hierarchies via NFS
6. ./configure options
6.1. Used environment variables
6.2. Options for various facilities
6.3. Runtime ZENV Variables
7. Verifying the System
8. Installing Whoson Service
III. Administation
9. DNS and ZMailer
10. Security Issues
11. The Queue
11.1. Message Submission Areas
11.2. Router Behaviour on Queues
11.3. Scheduler, and Transport Agents
11.4. Postmaster Analysis Area
12. Smtpserver Administration
12.1. smtpserver.conf
12.1.1. smtpserver.conf; PARAM keywords
12.1.2. smtpserver.conf; “EHLO-style options”
12.2. Policy Based Relaying Control
12.3. Content Based Filtering
13. Router Administration
13.1. Configuration File Programming Language
13.2. Databases
13.2.1. Using a Pathalias Database With “%0” substitution
13.2.2. Mailing Lists and ~/.forward
13.2.2.1. aliases.cf Logic
13.2.2.2. aliases
13.2.2.3. Security Considerations
14. Scheduler Administration
14.1. Principiles of scheduling: Threads
14.2. Scheduler Resource Control
14.3. The scheduler.conf file
14.4. Scheduler's Mailq
14.5. Scheduler's scheduler.auth control file
14.6. manual-expirer
14.7. Scheduler's Diagnostics Reporting
14.7.1. Scheduler's Diagnostics Reporting, Forms Files
15. Transport Agent Administration
15.1. Sm Transport Agent
16. Logging and Statistics for Administrator
IV. Reference
17. Smtpserver Reference
17.1. Smtpserver Runtime Parameters
17.2. Smtpserver Configuration
17.2.1. Smtpserver configuration; PARAM -entries
17.3. policy-builder.sh utility
17.4. Relaying Control Policy Language
17.4.1. Semantics
17.5. Content Based Filtering
18. Sendmail Reference
19. Rmail Reference
20. zmailer(3) Reference
21. Router Reference
21.1. ZMSH Script Language
21.1.1. ZMSH Usage:
21.1.2. ZMSH Parameters:
21.1.3. ZMSH Debug options:
21.2. Configuration Script Writing Rules
21.3. Script Security Issues
21.4. Router Script Well Known Entrypoints
21.4.1. The process() function
21.4.2. The router() function
21.4.3. The crossbar() function
21.4.4. The server() function
21.5. Script Language Internal Functions
21.5.1. ":" (doublecolon)
21.5.2. ".", "include"
21.5.3. "[", "test"
21.5.4. attributes
21.5.5. basename
21.5.6. break
21.5.7. builtin
21.5.8. car
21.5.9. cat
21.5.10. cd
21.5.11. cdr
21.5.12. channel
21.5.13. continue
21.5.14. daemon
21.5.15. db
21.5.16. dblookup
21.5.17. echo
21.5.18. elements
21.5.19. envars
21.5.20. erraddron
21.5.21. eval
21.5.22. exit
21.5.23. export
21.5.24. filepriv
21.5.25. first
21.5.26. gensym
21.5.27. get
21.5.28. getopts
21.5.29. grind
21.5.30. groupmembers
21.5.31. hash
21.5.32. homedirectory
21.5.33. host
21.5.34. hostname
21.5.35. ifssplit
21.5.36. lappend
21.5.37. last
21.5.38. length
21.5.39. list
21.5.40. listaddresses
21.5.41. listexpand
21.5.42. login2uid
21.5.43. lreplace
21.5.44. malcontents
21.5.45. printaliases
21.5.46. process
21.5.47. read
21.5.48. recase
21.5.49. recipient
21.5.50. relation
21.5.51. rest
21.5.52. return
21.5.53. returns
21.5.54. rfc822
21.5.55. rfc822date
21.5.56. rfc822syntax
21.5.57. runas
21.5.58. sender
21.5.59. set
21.5.60. shift
21.5.61. sleep
21.5.62. squirrel
21.5.63. stability
21.5.64. "test", "["
21.5.65. times
21.5.66. trace
21.5.67. trap
21.5.68. type
21.5.69. uid2login
21.5.70. umask
21.5.71. unset
21.5.72. untrace
21.5.73. user
21.5.74. wait
22. Scheduler Reference
22.1. Configuration Language
22.1.1. PARAM-entries
22.1.2. Group-Clause selection
22.1.3. Clause components
22.1.4. Variables and keywords
22.2. Resource Management
22.3. scheduler.auth file
22.4. mailq protocol v.1
22.5. mailq protocol v.2
22.6. Transport Agent Interface Protocol
22.7. Canned (Error) Message Files
22.8. Security Issues
23. Transport Agents References
23.1. mailbox
23.2. hold
23.3. smtp
23.4. sm - zmailer Sendmail compatible transport agent
23.4.1. configuration of sm
23.5. expirer
23.6. libta - Transport Agent Support Library
23.6.1. Function groupings
23.6.2. Function listings
23.6.3. Function usage examples
23.7. Security Issues
24. ZMailer Utilities Reference
24.1. zmailer command script
24.1.1. zmailer bootclean
24.1.2. zmailer start
24.1.3. zmailer stop, zmailer kill
24.1.4. zmailer nuke
24.1.5. zmailer router
24.1.6. zmailer scheduler
24.1.7. zmailer smtp(server)
24.1.8. zmailer newdb
24.1.9. zmailer newal(iases)
24.1.10. zmailer newf(qdnaliases)
24.1.11. zmailer new-route(s)
24.1.12. zmailer new-local(names)
24.1.13. zmailer logsync
24.1.14. zmailer logrotate
24.1.15. zmailer resubmit
24.1.16. zmailer cleanup
24.1.17. zmailer freeze
24.1.18. zmailer thaw, zmailer unfr(eeze)
24.2. The newdbprocessor script
24.3. The newdb script
24.4. The makedb utility
24.5. The dblook utility
24.6. The policy-builder.sh script
24.7. autoanswer
24.8. vacation
V. Appendices
A. Sample Router Configuration Scripts
A.1. SMTP+UUCP.cf
A.2. Crossbar.cf
A.3. Process.cf
A.4. Rrouter.cf
B. Scheduler's Configuration File Samples
B.1. scheduler.conf
B.2. scheduler.auth
C. Using ZMailer with Mailinglist Managers
D. Adding new transport agents
E. Internal File Data Formats
E.1. ZMailer's Files and Formats
E.2. Envelope Header Lines
E.3. Message Control File
E.3.1. Format
E.4. Database File Formats
E.4.1. The dbases.conf file
E.4.2. Aliases File
E.4.3. FQDNAliases File
E.4.4. Routes File
E.4.5. Localnames
E.4.6. Otherservers
E.4.7. Iproutes
E.4.8. Fullnames
E.4.9. Userdb
E.4.10. Expiredaccts
E.4.11. Active (newsgroups)
E.4.12. Aliases.ldap
E.4.13. Fqdnaliases.ldap
E.4.14. Mailbox File
E.5. Scheduler Statistics Log
E.6. Syslogged Log Formats
E.6.1. Smtpserver's Syslog Format
E.6.2. Router's Syslog Format
E.6.3. Transport Agent's Syslog Format
F. S/SL Language
F.1. S/SL Introduction
F.2. S/SL: Identifiers, Strings and Integers
F.3. S/SL: Comments
F.4. S/SL: Character Set
F.5. S/SL: Source Program Format
F.5.1. S/SL: Notation
F.5.2. S/SL: Programs
F.5.3. S/SL: Input and Output Definitions
F.5.4. S/SL: Error Signals
F.5.5. S/SL: Type and Mechanism Definitions
F.5.6. S/SL: Types.
F.5.7. S/SL: Mechanisms.
F.5.8. S/SL: Rules
F.5.9. S/SL: Actions
F.6. The Syntax of S/SL
G. RFC821
G.1. RFC821: "MAIL FROM:"
G.2. RFC821: "RCPT TO:"
G.3. RFC821: "DATA"
H. RFC822
H.1. RFC822: "From:"
H.2. RFC822: "To:"
H.3. RFC822: "Cc:"
H.4. RFC822: "Subject:"
H.5. RFC822: "Date:"
H.6. RFC822: "Sender:"
Index
List of Figures
1-1. A graphical example of the messaging model.
1-2. How a message looks normally.
1-3. A possible, more complex message structure.
1-4. How a message should be handled.
2-1. ZMailer's processes.
2-2. Directories that ZMailer uses for message processing.
4-1. Sample of $MAILVAR/db/dbases.conf file
4-2. Sample of fqdnaliases file
4-3. Second sample of fqdnaliases file
4-4. Sample of localnames file
4-5. Sample of routes file
4-6. Sample of scheduler.conf passage for local/* selector
4-7. ZMailer related crontab entries for root user
14. ZMailer's processes.
11-1. Directories that ZMailer uses for message processing.
12-1. ZMailer's processes; Smtpserver
12-2. Sample smtpserver.conf file
12-3. The smtp-policy.src file default settings fragment
13-1. ZMailer's processes; Router
13-2. Example of running tests on router
13-3. “Usage:” of relation function
13-4. Some examples of relation definitions
13-5. More examples of alternate forms of database reference
13-6. More miscellaneous relation definitions to illustriate various possibilities
13-7. An example of lookup driver for genuine pathalias generated database
13-8. General format of Alias file entries:
14-1. ZMailer's processes; Scheduler
14-2. Scheduler's Threads/Thread Groups
14-3. Example of scheduler.conf clause
14-4. Example of full scheduler.conf file
15-1. ZMailer's processes; Transport Agents
15-2. Sample sm.conf file
17-1. Sample EHLO greeting with smtpserver
17-2. Full-featured smtpserver.conf file example
21-1. relation's option interdependencies
22-1. Sample of scheduler.auth file
23-1. Sample sm.conf file
E-1. ZMailer's $POSTOFFICE/ directories and files