Table of Contents Preface - About This Manual Section 1 LISTSERV Archive Search Functions 1.1 Basic Search Session 1.2 Narrowing the Search 1.3 The SEARCH Command 1.3.1 Basic Search Function 1.3.2 Date Specifications 1.3.3 Keyword Search Specifications 1.3.4 Phonetic Search 1.3.5 What to do about “100 matches (more available)” 1.3.6 Specifying the Last “n” Posts as a Range 1.3.7 Exact Syntax Description 1.3.7.1 General Syntax 1.3.7.2 Keyword Rules Specification 1.3.7.3 Search Rules Specification 1.3.7.4 Reserved Words and Quoting Section 2 LISTSERV Commands-Job Feature and CJLI Interpreter 2.1 The JOB Entity 2.2 Control Cards – General Syntax Rules 2.3 The JOB Control Card 2.4 The EOJ Control Card 2.5 The DD Control Card 2.6 The //*MSG Control Card 2.7 Special Considerations Section 3 Relayed File Distribution and the DISTRIBUTE Command 3.1 Relayed File Distribution 3.2 Relayed File Distribution Requests 3.3 Creating and Sending a Mail RFDR (“DISTRIBUTE”) Job 3.3.1 RFDR Job Options 3.3.2 DISTRIBUTE Command Options 3.4 Advanced LISTESRV Applications Using DISTRIBUTE 3.4.1 "List-free" bounce processing for one-shot lists 3.4.2 Sending Pre-Approved Messages to Moderated Lists Section 4 DBMS and Mail-Merge Support 4.1 Overview 4.1.1 DBMS support 4.1.2 Why require Oracle 8 or higher? 4.1.3 Mail-Merge 4.2 Pre-Installation Tasks 4.2.1 Selecting a Suitable DBMS Product 4.3 Installation 4.3.1 Windows NT/2000/XP 4.3.2 OpenVMS Alpha 4.3.3 Unix 4.3.4 Verification 4.4 Post-Installation Tasks 4.4.1 Mail-Merge 4.4.2 ODBC Interface 4.4.3 OCI Interface 4.4.4 CLI Interface 4.4.5 unixODBC (UODBC) Interface 4.4.6 Connecting to multiple simultaneous database sources 4.4.7 Generic DBMS Post-Installation Tasks 4.4.8 Performance Options 4.5 Creating DBMS Lists 4.5.1 Configuring a List to Use the DBMS 4.5.2 Importing Subscribers into a DBMS List 4.5.3 ADD IMPORT Benchmark 4.5.4 Updating DBMS Lists from an External Application 4.5.5 Format of the OPTIONS Column 4.5.6 Sample OPTIONS Column Settings 4.5.7 Preserving Options When Migrating from Non-DBMS to DBMS Lists 4.6 Using the Mail-Merge Functions 4.6.1 Using the Web Interface 4.6.2 Sending DISTRIBUTE Jobs to LISTSERV 4.6.2.1 DISTRIBUTE Job with DBMS Back-End 4.6.2.2 DISTRIBUTE Job with Existing LISTSERV List 4.6.2.3 DISTRIBUTE Job with External Mail-Merge Data 4.6.2.4 Automatic Bounce Processing 4.6.2.5 Using DBMS or List-Based Jobs without Mail-Merge 4.6.3 Using Substitutions 4.6.3.1 Using Command Tickets 4.6.3.2 Performance Considerations with Command Tickets 4.6.3.3 New Substitutions Available 4.6.4 Using Conditional Blocks 4.6.4.1 Using &*INDEX to select random samples 4.6.4.2 Using the PARTS option 4.7 LISTSERV LDAP and Dynamic Query List (DQL) support 4.8 Installing and configuring unixODBC with LISTSERV and MySQL 4.8.1 MySQL DBMS 4.8.2 MyODBC Driver 4.8.3 unixODBC 4.8.4 Creating a unixODBC System DSN for LISTSERV 4.8.5 Creating a MySQL User and Database/Schema for LISTSERV 4.8.6 Configure LISTSERV Support for unixODBC 4.8.7 Connecting to External MySQL Databases 4.8.8 References Section 5 List Exits 5.1 What is a List Exit? 5.2 List Exit Points 5.2.1 ADD/SUBSCRIBE Exit Points 5.2.2 DELETE/SIGNOFF/CHANGE Entry Points 5.2.3 Other Exit Points 5.2.4 General Remarks 5.3 Local Command Definition (non-VM) 5.4 SPAM_EXIT 5.4.1 Formal documentation 5.4.2 Practical Application 5.4.2.1 Step-by-Step Instructions 5.5 A Practical Example: HAPPY99 Section 6 The LISTSERV TCPGUI Interface 6.1 Setting Up the TCPGUI Interface 6.2 Running lcmdx 6.3 Sending LISTSERV Commands Directly From Your Application 6.4 Advanced TCPGUI Programming Issues 6.4.1 Creating or Replacing a List Header 6.4.2 Adding or Replacing a Password 6.4.3 Bulk Operations 6.4.4 Commands that Respond Over Email 6.4.5 Application-Friendly Commands 6.4.5.1 QUERY 6.4.5.2 QUERY DEFSUB 6.4.5.3 SCAN 6.4.6 Error handling 6.5 LCMDX.C Section 7 AOL Feedback Loop Auto-Processing