Table of Contents Preface Editorial Note - Version Numbering LISTSERV Command Syntax Conventions Unicode (UTF-8) Support Contacting L-Soft Section 1 Who Should Read This Book? Section 2 Differences Between Architectures and Implementations 2.1 Differences Between Architectures and Implementations 2.1.1 The File Server 2.1.2 The WWW List Archive and List Management Interface 2.2 Differences between LISTSERV and LISTSERV Lite 2.3 Operating Systems and Architectures Supported Section 3 Principles of Operation Section 4 A LISTSERV How-To for Site Managers 4.1 Installation and Startup Questions 4.2 Initial Configuration Section 5 Configuring Your LISTSERV Site 5.1 Site Configuration Files 5.2 What can be configured? 5.3 Files Used by LISTSERV 5.3.1 Program Executables 5.3.2 BITNET Network Table Files 5.3.3 Internet and Peer Networking Table Files 5.3.4 LISTSERV’s External Data Files 5.3.5 User Reference Material 5.3.6 Command Line Utilities (Non-VM) 5.3.7 GUI Site Configuration Utility (Windows Only) 5.3.8 Line-mode site configuration utility (OpenVMS only) 5.3.9 Other files that will appear during use 5.4 Installing & Configuring LISTSERV’s WWW Archive & Administration Interface 5.4.1 The WWW Archive Interface 5.4.2 The WWW Administration Interface 5.4.3 Installing a Web Server 5.4.4 Installing the Web Archive Interface Script 5.4.5 Creating Subdirectories for the Archive Interface 5.4.6 Configuring LISTSERV to Activate the Web Archive Interface 5.4.7 Customizing the Web Pages 5.4.8 Enabling Individual Lists 5.4.9 Enabling Web-Based Bulk Operations 5.4.10 RSS Support for Web Archives 5.5 The Spam Features 5.5.1 Spam Quarantine 5.5.2 "Anonymous" Spam Alerts 5.5.3 Subscription Anti-Spoofing Feature 5.5.4 Hosted Content Analysis 5.5.5 Using the SMTPL-Level Spam Control for Windows 5.6 Server Registration 5.6.1 Registering LISTSERV Classic and Classic HPO Servers 5.6.2 How do I find out if my server is already registered? 5.6.3 The LISTSERV Backbone 5.6.4 Automatic Registration for LISTSERV Lite Servers 5.7 Inter-Server Updates 5.8 Setting Up Archive and Notebook Directories for Use with LISTSERV 5.9 DBMS and Mail Merge Functions 5.10 Synonymous Host Name Registration via ALIASES NAMES 5.11 Real-Time Anti-Virus Scanning 5.12 LISTSERV DomainKeys Support 5.12.1 Creating DKIM Keys and Configuring DNS 5.12.2 LISTSERV Configuration 5.12.3 Starting LISTSERV with DKIM Support 5.12.4 Using DKIM with LISTSERV 5.12.5 Restrictions and Implementation Choices 5.13 LISTSERV LDAP and Dynamic Query List (DQL) support Section 6 Introduction to the Web Interface 6.1 The Default LISTSERV Home Page 6.2 Logging In 6.3 Setting a LISTSERV Password 6.4 Changing the LISTSERV Password 6.5 Using the Toolbar 6.6 Setting Your Personal Preferences 6.6.1 General Preferences 6.6.2 Archive Preferences 6.6.3 Report Preferences 6.6.4 Newsletter Profiles 6.7 Editing a Page Section 7 Server Administration with the Web Interface 7.1 Using the Dashboard 7.2 Site Configuration 7.2.1 Resetting Site Configuration Variables 7.3 Deliverability Assessment 7.4 Mailing List Types 7.4.1 One-Way Announcement Lists 7.4.2 Two-Way Discussion Lists 7.4.3 Moderated Lists 7.5 Creating Mailing Lists 7.5.1 Using the List Creation Wizard 7.5.2 Creating a List from a Template 7.5.3 Cloning a List 7.5.4 Using the List Header Editor to Create a List 7.6 Deleting Mailing Lists 7.7 Submitting LISTSERV Commands Section 8 List and Subscriber Management using the Web Interface 8.1 Using the List Management Dashboard 8.2 List Configuration 8.2.1 List Configuration Using the Wizard 8.2.1.1 Descriptions 8.2.1.2 Access Control 8.2.1.3 Distribution 8.2.1.4 Error Handling 8.2.1.5 List Maintenance 8.2.1.6 Security 8.2.1.7 Subscription 8.2.1.8 Other 8.2.2 Manual List Configuration 8.2.2.1 Hiding Parts of the Header 8.2.3 Topics 8.2.4 Normal List vs. Super-List 8.2.5 Mail-Merge 8.2.6 Alphabetical Keyword Listing Wizard 8.3 List Configuration Task Wizard 8.3.1 Administrators 8.3.1.1 What is an Owner? 8.3.1.2 What is an Editor? 8.3.1.3 What is a Moderator? 8.3.1.4 What is an Error? 8.3.1.5 What is a Notification? 8.3.2 Security 8.3.2.1 Levels of Validation 8.3.2.2 Subscription Options 8.3.2.3 Service Areas 8.3.2.4 Who May Review the List of Subscribers? 8.3.2.5 Who May Access the Archives? 8.3.2.6 Who May Post to the List? 8.3.2.7 Restricting Subscriber Privileges 8.3.3 Attachments 8.3.3.1 What is an Attachment? 8.3.3.2 MIME Attachments 8.3.3.3 UUEncoded Attachments 8.3.3.4 HTML Messages 8.3.3.5 Exchange and Outlook Attachments 8.3.3.6 Size Limits 8.3.3.7 Content Filtering 8.3.4 Probes 8.3.4.1 What is Probing? 8.3.4.2 What is Active Probing? 8.3.4.3 What is Passive Probing? 8.3.5 Digesting and Indexing 8.3.5.1 What is a Digest? 8.3.5.2 What is an Index? 8.3.5.3 What is a Plain Text Digest? 8.3.5.4 Displaying UTF-8 Encoded Messages in the Body of a Digest 8.3.5.5 What is an HTML Digest? 8.3.5.6 What is a MIME Digest? 8.3.6 Subject Tags 8.3.6.1 How do I make SUBJECTHDR a default option? 8.3.6.2 Why would a subscriber want a subject tag? 8.3.6.3 Why specify a different Subject-Tag? 8.3.6.4 Why would you make SUBJECTHDR the default? 8.3.6.5 Why set the SUBJECTHDR tag for all subscribers? 8.3.7 CataList 8.3.7.1 Why List in CataList? 8.3.7.2 Missing Listing in CataList 8.3.7.3 HTML Description in CataList 8.3.7.4 Hide Header from CataList 8.3.8 Banners 8.3.8.1 What is a Banner? 8.3.8.2 HTML vs. Text Banners 8.3.9 Mail Templates 8.4 Subscriber Management 8.4.1 Adding a New Subscriber to the List 8.4.2 Examining or Deleting a Subscription 8.4.3 Reviewing List Members 8.4.4 Bulk Operations 8.5 Submitting LISTSERV Commands Section 9 List Moderation using the Web Interface 9.1 Accepting or Rejecting the Message 9.2 Viewing the Message 9.3 Subscriber Settings Section 10 Subscriber’s Corner 10.1 Subscribing to One or More Lists 10.2 Unsubscribing from One or More Lists 10.3 Changing Subscription Settings 10.4 Posting Messages to a List Section 11 Working with Archives in the Web Interface 11.1 The Server Archive Index 11.2 Viewing List Archives 11.3 The Archive Index 11.4 Viewing an Archived Message 11.5 Subscribing, Unsubscribing, or Updating a List from the Archives 11.6 UTF-8 Archive Searches 11.6.0.1 Known Issues Section 12 Customizing Mail and Web Templates using the Web Interface 12.1 Forcing the Browser to Use a Specific Character Set 12.2 Using the HTML Mail Template Gallery 12.3 Using a Conditional Expression Evaluator Section 13 Posting Messages to a List using the Web Interface 13.1 Composing the Message 13.2 Using the HTML Editor 13.3 Creating Customized HTML Newsletters 13.3.1 Selecting a Template 13.3.2 Defining the Content 13.3.3 Fine Tuning the Newsletter 13.3.4 Testing and Sending the Newsletter Section 14 LISTSERV Commands 14.1 General Commands 14.1.1 List Subscription Commands 14.1.2 Other list-related commands 14.1.3 Informational commands 14.1.4 Commands Related to File Server and Web Functions 14.1.5 Other Advanced Commands 14.2 List Owner and File Owner Commands 14.2.1 File Management Commands (for file owners only) 14.2.2 List Management Functions 14.3 LISTSERV Maintainer Commands 14.3.1 Commands for LISTSERV on VM Servers Only 14.4 Sending commands to LISTSERV 14.5 Defining Personal Passwords Section 15 Manually Creating and Maintaining Lists 15.1 Basic List Creation 15.2 Architecture-Specific Steps for List Creation 15.2.1 Unix: Creating the Required Sendmail Aliases 15.2.2 OpenVMS: Creating the Required PMDF Aliases 15.3 Sample Checklist for Creating Lists 15.4 Naming Conventions 15.4.1 The "-L" Convention 15.4.2 Reserved Names 15.4.3 Reserved Characters 15.4.4 Maximum Length of the List Name 15.4.5 Making the List Name User-Friendly 15.5 List Header Keywords 15.6 Retrieving and Editing a List 15.7 Adding a List Password 15.8 Storing a Modified List on the Host Machine 15.9 Fixing Mistakes 15.10 Sample List Header File 15.11 Deleting a List 15.12 Adding HTML to a List Header for the CataList 15.12.1 Update Latency 15.12.2 Inserting a Pointer to Another List 15.12.3 Restrictions on the Placement of Equal Signs 15.13 Setting Up Lists for Specific Purposes 15.13.1 Public Discussion Lists 15.13.2 Private Discussion Lists 15.13.3 Edited Lists 15.13.4 Moderated Lists 15.13.5 Semi-Moderated Lists 15.13.6 Self-Moderated Lists 15.13.7 Private Edited/Moderated Lists 15.13.8 Auto-Responders 15.13.9 Announce-Only Lists 15.13.10 Restricted Subscription Lists with Automatically-Generated Questionnaire 15.13.11 Peered Lists 15.13.11.1 Linking Two or More LISTSERV Mailing Lists 15.13.11.2 Moving Users From One (Peer) Server to Another 15.13.11.3 Special Commands For Peered Lists Only 15.13.12 Super-Lists and Sub-Lists 15.13.13 Cloning Lists 15.14 Merging existing LISTSERV lists 15.14.1 Merging List A into List B; List A User Options Not Preserved 15.14.2 Merging List A into List B; List A User Options Preserved 15.14.3 Merging List A and List B into List C 15.15 Migrating Lists From One Site to Another 15.15.1 Migrating Lists From One LISTSERV Site to Another LISTSERV Site 15.15.2 Migrating Lists from Non-LISTSERV Sites 15.15.3 Migrating Lists from Sendmail Alias Files, Databases, Etc. 15.16 Changing the Name of an Existing List 15.17 Bulk Operations (ADD and DELETE) 15.17.1 Bulk ADD Operations 15.17.2 Bulk DELETE Operations 15.18 Content Filtering 15.19 DomainKeys Message Signing Section 16 Creating and Editing Templates Manually 16.1 Using LISTSERV Templates 16.2 Getting Copies of the Default Template Files 16.3 Types of Templates 16.3.1 Mail Templates 16.3.2 Message Templates 16.3.3 Message Fragments 16.4 Naming Conventions for Message Templates and Fragments 16.5 Mail Template Format and Embedded Formatting Commands 16.5.1 Mail Template Format 16.5.2 Common Variable Substitutions 16.5.3 Template Commands 16.5.4 Conditional Processing 16.5.5 The .QUIF Command 16.5.6 Using 8-Bit Characters in Templates 16.6 Editing List-Level Default Templates 16.6.1 The INFO Template Form 16.6.2 DEFAULT MAILTPL Templates 16.6.3 Tips for Using Templates 16.7 Using the DAYSEQ(n) Function 16.7.1 Rotating Bottom Banner 16.7.2 Rotating FAQ via the PROBE1 Template and "Renewal= xx-Daily" 16.7.3 Calculating the Value for DAYSEQ() 16.8 Storing the <listname>.MAILTPL File on the Host Machine 16.9 DIGEST-H and INDEX-H Template Files 16.10 WWW Interface Templates and Template Forms 16.10.1 Web Forms (Static) Contained in DEFAULT MAILTPL 16.10.2 The WWW_ARCHIVE.MAILTPL File 16.10.3 The DEFAULT.WWWPTL File (Dynamic Templates) 16.10.4 The SITE.WWWTPL File 16.10.5 National Language Template Files (idiom.mailtpl) 16.10.6 Template Precedence 16.11 Serving Up Custom Web Pages for your List 16.11.1 A Practical Example: ADMIN_POST 16.12 Modifying the Output of LISTSERV's HELP Command (non-VM) 16.13 The $SITE$.MAILTPL File Section 17 Using Email to Post a Message Section 18 File and Notebook Archives 18.1 The File Archive 18.2 Starting a file archive for your list 18.3 Filelist Maintenance (VM Systems Only) 18.3.1 Creating a Filelist (VM Systems Only) 18.3.2 Adding FAC Codes (VM Systems Only) 18.3.3 Retrieving the Filelist (VM Systems Only) 18.3.4 Adding File Descriptors to the Filelist (VM Systems Only) 18.3.5 File Access Codes (FAC) for User Access (VM Systems Only) 18.3.6 Deleting File Descriptors from the Filelist (VM Systems Only) 18.3.7 Storing the Filelist (VM Systems Only) 18.4 The listname.CATALOG System on Non-VM Systems 18.4.1 Adding Files to the SITE.CATALOG 18.4.2 Delegating File Management Authority 18.4.3 Creating a Sub-Catalog 18.4.4 Updating the Sub-Catalog 18.4.5 Indexing the Sub-Catalog 18.5 Storing Files on the Host Machine 18.6 Deleting Files from the Host Machine 18.7 Automatic File Distribution (AFD) and File Update Information (FUI) 18.8 File "Packages" 18.9 Finding More Information on File Archives 18.10 Notebook Archives 18.10.1 Setting Up Notebook Archives for a List 18.10.2 Migrating Old Notebook Archives to a New Site (LISTSERV to LISTSERV) 18.10.3 Migrating Old Notebook Archives (Non-LISTSERV to LISTSERV) 18.10.4 Deleting Old Notebook Archives 18.10.5 Indexing existing notebook archives Section 19 Interpreting and Managing Log Files 19.1 Logs Kept by LISTSERV 19.2 Managing the Logs 19.2.1 Making Daily Logs 19.2.2 Cleaning Your Log Files 19.3 Interpreting the LISTSERV log 19.3.1 Expiring Cookies 19.3.2 Releasing and Reallocating a Disk Slot 19.3.3 Reindexing a List 19.3.4 Distributing a Digest 19.3.5 Daily Error Monitoring Reports 19.3.6 Processing Mail for Local Lists 19.3.7 Administrative Mail (X-ADMMAIL) 19.3.8 DISTRIBUTE Jobs from Remote Hosts 19.3.9 Requesting "OK" Confirmation for Commands 19.3.10 Subscription Summary Updates (SUPD Jobs) 19.3.11 Global List of Lists Updates (LUPD Jobs) 19.3.12 Valid "OK" Confirmation Received 19.3.13 Invalid "OK" Confirmation Received 19.3.14 User Already Subscribed to a Given List 19.3.15 Non-Command Text in Mailings to LISTSERV 19.3.16 Response to List Owner or LISTSERV Maintainer Commands 19.3.17 Response to Posts to a Held List or to a List with PRIMETIME 19.3.18 Command Forwarded via GLX from Another Host 19.3.19 Netwide DELETE (X-DEL Jobs) 19.3.20 FIOC Cache Notifications 19.3.21 Web Archive/Administration Interface Logging 19.3.22 X-SPAM Jobs 19.3.23 X-TBREG Jobs 19.3.24 Responses to LVMON@VM.SE.LSOFT.COM 19.3.25 MIME Parser Messages 19.3.26 Content Filter Rejection Message 19.4 Interpreting the SMTP Logs (Windows Servers Only) 19.5 Interpreting the SMTP Worker Log Entries (Non-VM Only) 19.6 Change Logs 19.7 Using LISTSERV Logs and SHOW CTR to Extract Server Statistics 19.7.1 Sample Log-Processing Scripts 19.7.2 Interpreting the Output of SHOW CTR 19.8 Using the System Changelog to Track Distributions 19.9 Logging Changelog Information to a DBMS Section 20 Distribution Features and Functions 20.1 Controlling the Default Level of Acknowledgement to User Postings 20.2 Controlling the Maximum Number of Postings Per Day 20.2.1 Controlling Total Postings to the List Per Day 20.2.2 Controlling the Number of Postings Per Day from Individual Users 20.3 Controlling "Prime" Time 20.4 "Holding" and "Freeing" a List 20.4.1 Automatic List Holds 20.4.2 Manual List Holds 20.5 Controlling the List Digest Feature 20.6 Defining List Topics 20.7 Allowing/Blocking MIME Attachments Section 21 Error Handling Features and Functions 21.1 Defining List-Level Error Handling Addresses 21.2 The Auto-Deletion Feature 21.3 LISTSERV's Loop Detection Feature 21.3.1 The Anti-Spamming Filter 21.4 RFC822 Mail Header Parsing 21.5 Address Probing 21.5.1 Active Address Probing 21.5.2 Passive Address Probing 21.5.3 OS-Specific Issues with Probing 21.6 Defining Server-Level Error Handling Addresses 21.6.1 BOUNCES_TO= 21.6.2 Crash Reports and CRASH_MONITOR= Section 22 List Maintenance and Moderation Features and Functions 22.1 Setting Up Edited/Moderated Mailing Lists 22.2 Restricting the Size of Messages Posted to the List 22.3 Restricting the Number of Posts Per User Per Day 22.4 Moving a List to a New Location (New-List= Keyword) Section 23 Security Features and Functions 23.1 The VALIDATE= Keyword 23.2 Controlling Subscription Requests 23.3 Controlling the Service Area of the List 23.4 Controlling Who Reviews the List of Subscribers 23.5 Controlling Access to the Notebook Files 23.6 Controlling Who Can Post Mail to a List 23.7 The "OK" Confirmation Mechanism 23.7.1 Explicitly Cancelling "OK" Cookies 23.8 Denying Service to Problem Users 23.8.1 The "Filter=" List Header Keyword 23.8.2 The "FILTER_ALSO" Configuration File Variable 23.8.3 The "SERVE" Command 23.8.4 The POST_FILTER List Exit Point 23.9 Hiding Selected Header Lines 23.10 Tracking Subscription Changes with the Change-Log Keyword Section 24 Subscription Features and Functions 24.1 Setting Up Subscription Confirmation 24.2 Defining Default Options for Subscribers at Subscription Time 24.3 Setting Up Subscription Renewal Section 25 Other Features and Functions 25.1 Setting Up National Language Mail Templates 25.2 Translating Control Characters Included in List Mail 25.3 Communicating with List Owners 25.3.1 The Listname-REQUEST Alias 25.3.2 The ALL-REQUEST Alias 25.3.3 Required Configuration for Unix and VMS Servers Running PMDF 25.3.4 Other Aliases Used by LISTSERV Section 26 Special Functionality for ISP’s 26.1 Directory Quotas for Individual Lists 26.1.1 The QUOTA.FILE 26.1.2 Displaying Quota Information 26.1.3 Reloading Quota Information After Making Changes 26.2 Limiting the Number of Subscribers to a List Appendix A: Sample Boilerplate Files Subscription Requests Sent to the List Sending Other Commands to the List or to the *-REQUEST Address for the List Unsubscribed User Still Getting Mail Quoted Replies Include Message Headers Causing them to Bounce Delivery Error with Unknown User Account Setting a User to DIGEST because of Bouncing Mail A Sample "Your List has been Created" Boilerplate Appendix B: Country Codes