LISTSERV at Work L-Soft
Issue 1, 2011

   Tech Tip: LISTSERV

Q: What are some time-saving hints and tips that everyday LISTSERV site administrators and list owners may not know?

This will be a collection of some time- and labor-saving hints and tips for LISTSERV site administrators. Some of these are also useful for list owners.

Tip 1: How to troubleshoot subscribers how are not receiving email from a list

There are times when a subscriber will write to the list owner and ask why they are not receiving email from a particular list.

The first thing to check is to verify that the user is currently subscribed to the list and is set to receive mail from the list. So, via the LISTSERV web interface or email:

QUERY listname FOR

Then view the subscription option settings:

Subscription options for Ben Parker <bparker@LSOFT.COM>, list BEN2:
NOMAIL You have temporarily turned off your subscription and will
not receive any mail from the list
FULLHDR Full (normal) mail headers
REPRO You receive a copy of your own postings
NOACK No acknowledgement of successfully processed postings

Assuming this turns up nothing obvious, the next thing to try is to send mail to the user. But mail from your own account travels a different mail path than mail from LISTSERV, and that's what the user is complaining about. So how to do this? Via the LISTSERV web interface or email:

SET listname MAIL FOR

The first command is done 'quietly' so no message goes to the user. The second forces LISTSERV to send the contents of the SETINFO template to the user. Note that this template message has also been modified from the 'stock' content:

Tip 2: How to perform mass edits on list headers

There are occasional times when it may be necessary to perform a mass edit on all of your list headers (for example, during a migration when the message archives directory path must be changed). LISTSERV provides no mechanism except editing each header one at a time. Because *.LIST files are in binary format, they cannot be edited directly.

Never, ever under any circumstances attempt to edit LISTSERV *.LIST files in binary form. You will destroy them irrevocably.

However, it is possible to use the L-Soft supplied listview.exe utility to convert *.LIST files to an editable text format. Then, combined with TexRep1 (a freeware bulk text replacement editor), you can easily make mass changes. Use the LIST-TEXT.CMD2 script to copy your lists to a working directory, and use TexRep to do the bulk editing. Then copy the modified *.LIST files back to ~\LISTSERV\MAIN and restart LISTSERV.

Check the LISTSERV-yyyymmdd.LOG file. When LISTSERV is started, there will be a mild protest in the log file:

>15 Nov 2007 21:35:54 Invalid record format for list TEST.
>15 Nov 2007 21:35:54 -> List reformatted successfully.

LISTSERV will reformat all the plain-text *.LIST files back into the proper binary format. Detailed instructions are packaged in

1 Download TexRep 2.0 from:
2 Download LIST-TEXT.CMD from:

(Although this section is Windows-only, the concept can be easily adapted to Unix.)

Tip 3: How to speed up the list creation process

Creating lists can sometimes be time-consuming, especially if you have to do it often and are expected to do it quickly. Although the List Creation Wizard in the LISTSERV web interface can speed things along, it can still be tough to remember all the various settings unique to your site. Relying on memory for what list header settings should be changed for a one-way announcement list vs. an open discussion list can be challenging.

A solution is to edit the (site-wide) LIST-LIBRARY template and install templates pre-configured for your site and your most common usage.

Then when creating a list, you simply choose the proper template, fill in the email address of the list owner and with a few more clicks, you are done.

Note that the line:

* Created: &+ISODATE;

will be replaced by the system date when the list is created. This can be a handy way to know how old the list is when checking for signs of inactivity.

Tip 4: How to use separate mail templates for announcement-style lists

The underlying assumption for the template messages in DEFAULT.MAILTPL is that all lists are discussion lists. A number of the messages are not quite as appropriate for one-way, announcement-style lists, and a number of others can be changed to improve security. You can of course edit the individual listname.mailtpl for each list, but there is a faster way. This allows you to create one set of message templates immediately usable by many lists. Any changes you might make are also immediately available to all applicable lists.

Download and unzip in ~\LISTSERV\MAIN.

Simply add this line to the list header of any applicable lists:

This will take immediate effect. If you want, you can create a list named ONE-WAY, which you can then use to edit the ONE-WAY.MAILTPL file.

This works because of the hierarchical precedence order of the various *.mailtpl templates:


You can also apply this principle in other ways, such private vs. public or on-campus vs. off-campus lists.

Tip 5: How to test various list header settings for their effect

When testing various list header settings for effect, it can be useful to be able to turn settings on and off quickly. With lengthy settings it is good to not have to retype them to restore them.

Here are two quick ways to do that. Both rely on the principle that in order to be valid, a list header keyword must be followed by an "=" character.


Subscription= Open,Confirm

'Comment Out':

Send** Editor[,Hold][,Confirm[,Non-Member | All]][,NoMIME]
Send** editor,hold,confirm
Send=, confirm
Send** private

I use a double asterisk ** because a single character might be a typo. A double indicates that it is intentional. Other characters, such as (%, #, +) can be used as well.

If you have your own favorite administrative short cuts, feel free to share them with us at:

Subscribe to LISTSERV at Work (American Edition).

© L-Soft 2011. All Rights Reserved.