Home / Tech
/ Computer Software /
The Bat! FAQ
The Bat! Mailing Lists/Discussion Lists
Mailing Lists v4.0
By Leif Gregory
This how-to is current to the
capabilities present in The Bat! v1.54b10
Many moons ago I migrated from Eudora Pro to The Bat!
because Eudora was seriously lacking in the filtering capabilities to run
even the most simple mailing list. I publish a weekly newsletter called PCWize,
a newsletter about computers and the Internet, and severely needed a good
way to automate the subscribing and unsubscribing of people. After
installing The Bat! and setting it up for my mailing list, I began to
notice that with just a couple of more macros that didn't exist, The Bat!
could be configured as a full blown mailing/discussion list server. I
e-mailed RITLabs about my findings with detailed plans of how it could be
done. Amazingly, RITLabs e-mailed me a brand-spanking new binary the very
next day with my proposed changes. I set up a list, and then asked if they
wanted me to run a discussion list about The Bat! for people using it.
They wholeheartedly agreed and TBUDL was born. The list ran great, but I
soon ran into the only true limitation of hosting a discussion list on a
home machine, and that was that I couldn't keep up with list traffic due
to my pitifully slow 28.8 Internet connection. If only then I had access
to DSL or Cable Modems and their inherent persistent connections, I could
have done a much better job.
Eventually, a helpful subscriber to TBUDL offered to
host TBUDL on a true list server, and then after some problems with them
later, Syafril took over the job of hosting all the TB lists on his
At any rate, I wrote v1.0 of this how-to for mailing
lists which was a huge boon to other users of TheBat! who also wished to
run discussion lists. Unfortunately, since I was no longer actively
running a discussion list, I had a very difficult time adding and making
changes to this document. Eventually, I broke it, and ended up answering
tons of questions by users setting up lists according to my instructions.
That was when I hit upon the idea of setting up a The Bat! hosted
discussion list for The Bat! List
Hosters (TBLH) (click on it to subscribe). Now, not only do users
wanting to set up lists have a place to discuss problems and solutions
with other list hosters, I also have the means to model this document on
the actual TBLH list. This means that now, when a user downloads and
installs the list account, it *will* work!
This biggest change in this how-to is the fact that now
almost every template is stored in it's very own text file in the default
directory of C:\Program Files\The Bat!\MAIL\tblh\Includes. Since all the
templates are in one place and easily accessible, you won't have to hunt
around through the myriad settings to find and change everything to suit
your particular list.
There are basically two types of mailing lists. The first is a distribution
type, and the second is a discussion type. The distribution type is basically a list where
you are providing information in one direction. Typical lists of this type are
announcements, newsletters and well, SPAM. These lists are very simple to set up, as about
the only thing you have to do is to create an address group with all of the recipients in
it, and you'll only need filters 2, 3, 4, 5, and 8. A discussion list is quite a bit more complex to set up. Basically, people send posts
(e-mail) to a single e-mail address (your list address), and from there the post is processed and then sent to
everyone in an address book group. The complexity lies in setting up the Reply To:, From:,
POP3 accounts etc.
The easiest way to run a list is to have a separate POP3 account, and as a major
plus a forwarding e-mail address (This is a really nice option to have. If you have a
forwarding address set up, the e-mail address that subscribers will Un/Subscribe and send
posts to will never change. So if you change POP3 servers or give the list over to someone
else because you've decided you don't want to run it anymore, you will not impact your
subscribers.) To find one of these types of services, just type either "free
+email" or "free +POP3" in your favorite search engine. One
of my favorites (which is completely free and does *not* strip the
RETURN-PATH header (you'll read about this problem a little later)) is Subdimension.com.
You can set up a
discussion list using your existing (main) POP3 account, but it takes quite a bit more
work, which I will not cover in this how-to. It will however, generally follow the same
guidelines as a stand alone POP3, but your filtering will be a little more complex.
The ultimate of course is having your own domain name. If you
do, and they allow you to define e-mail aliases, then you can create
aliases such as:
Then, all you have to do is have your filters filter on
the RECIPIENT address. This also means that you don't have to require your
readers to put text like "Subscribe TBLH" in the message SUBJECT
or BODY. This is by far the most simple method of mailing list management.
Speaking of which, I'm going to jump off on a tangent
here real quick and tell you about an awesome free service that can help
you if you do have your own domain name. Take a look at MyDomain.com,
and sign up for their domain management service. It's completely free and
yet offers so much power and flexibility that you can do some really great
things with your domain name.
For example, my domain www.pcwize.com
was registered through www.register.com.
They offer pretty much the basics such as defining the DNS servers which
are the authority for your domain name. What MyDomain.com does is that you
change the DNS servers with whoever you registered your domain with to the
four DNS servers that MyDomain.com provides. Then you add your domain to
your account profile with MyDomain.com. From there you can add, change MX
(Mail Exchange) configurations, add sub domains e.g.
subscribers.pcwize.com, support.pcwize.com etc., and set up all sorts of
e-mail aliases. You can even set up e-mail aliases for each sub domain you
define e.g. TopDude@support.pcwize.com
etc. Also, you can set up what the sub-domains do e.g. redirect or stealth
redirect to another site. They also maintain some very good how-to
documentation on-line, and if that doesn't cut it, their tech support
people are very helpful.
Ok, ending the tangent. I don't get anything for telling
you about them, I just think it's a very worthwhile service. Especially
for free. Now, back to the how-to.
I am going to define some variables so that the below how-to will be much
clearer. Please substitute your actual information for that which I have provided.
- TBLH - The name of our list. It stands for The
Bat! List Hosters.
- firstname.lastname@example.org - The list
moderator's address (Your normal e-mail address).
- email@example.com - The e-mail address that
subscribers send their posts to.
- The e-mail address to subscribe.
- The e-mail address to unsubscribe.
- www.pcwize.com/tblh/faq.shtml - The
TBLH Web site FAQ (this document).
- TBLH - The address book group for normal TBLH
subscribers. If you change this name (you don't have to because nobody
but you is going to ever see it), you'll need to change the name of
this in the address book as well.
- TBLH Digest - The address book group for digest version
For example, let's say your list is called BlueDog. You would
replace the "TBLH"s in the above variables as well as throughout
this how-to with BlueDog. Got it! Great.. Let's continue.
for setting up the list using a separate POP3 account
First click here to download the TBLH
mailing list account
that I have created. You will be "importing" this to The Bat! Imported is in
quotes, because there is no actual provision under The Bat! to import an account. I'll
explain how to get this account installed into The Bat! in just a minute. I have done
about 90% of the work for you, all you have to do is replace the "TBLH"
information to suit your discussion list, which we will go through step
How to "import" the TBLH
account into The Bat!
- Go to where TBLH.ZIP was saved when you downloaded it.
- Double click the TBLH.ZIP file.
- Click the "Extract" button.
- In the dialog box that comes up do these two things: The "Extract To"
field should be the directory that your accounts are stored in under The Bat! In my case
it is: C:\Program Files\The Bat!\MAIL. The second thing is to check the "Use Folder
Names" checkbox if it isn't already checked.
- If The Bat! isn't already running, start it.
- Click "Account", select "New".
- In the "Account Name" field, enter "TBLH".
- Click the "Next" button.
- Put your name in the "Your Full Name" field.
- In the "E-mail Address" field put the forwarding e-mail address you set
up for your list. If you didn't set up a forwarding e-mail address (You really should use
one of these), then put the POP3 e-mail address that you will be using for the list.
- The "Organization" field can be left blank or put in the name of your
- Click the "Next" button.
- In the "SMTP Server" field, put whatever SMTP server you will be using.
I have mine set up for my domain SMTP server address.
- In the "POP3 server" field, put the address of the
POP3 server you will be using to collect the list messages.
- Click the "Next" button.
- In the "Username" and "Password" fields, put whatever your
username/login is for the POP3 account you are using in step 14.
- The two checkboxes are up to you, but I have both unchecked. If the POP3 account
you are using requires APOP, then you need to check this box. For the normal operation of
the discussion list, you don't need to keep copies of messages on the server.
- Click the "Next" button.
- Check the "Do you want to check the account settings now" radio button
and click the "Finish" button.
Ok, now that you have "imported" the TBLH
account, we need to finish
setting it up for your discussion list.
How to set up the account for your discussion list.
- Under the "General" sheet, verify that all the information is correct.
- Under the "Transport" sheet, verify that all the information is
- For the first few weeks of your list's "life", you should check the
"Deferred" option in the "Delivery" options on the
"Transport" sheet. The reason for this, is that you want to make sure that
everything is correct in the outgoing messages to be sent to your subscribers before they
- Under the "Mail Management" sheet, you shouldn't have to change
- Under the "Options" sheet, set whatever options you prefer to use. You
may want to leave the "Empty trash folder on exit" unchecked for the first few
weeks of list "life" also. Sometimes you make a mistake in mail handling, and
may accidentally delete a message.
- Under the "Files and Directories" sheet, you may have to modify the
"Home Directory" depending on whether you specified a different "Extract
To" path in step 4 of the "How to "import" the TBLH
account into The
- Click the "+" in front of the "Templates" sheet.
- Select "New Message". We are now going to set this template up.
Hopefully you have given some thought as to what you would like your messages
to look like when you post to your own discussion list.
Hello TBLH users,
%PUT="C:\Program Files\The Bat!\MAIL\TBLH\Includes\Boilerplate.txt"
%TO="TBLH List <TBLH@PCWize.com>"
You'll notice the %PUT statement which appends the contents of the
boilerplate.txt file to the bottom of every newly created message. The
advantage to having this boilerplate is that your subscribers will be reminded each time you post a message to your own
discussion list of how to report problems, unsubscribe, and where your discussion list web
site or FAQ is. You can make this contain as much or as little information as you want,
but I would suggest keeping it short. You can modify the boilerplate
to suit your own needs by editing the boilerplate.txt file located in
the C:\Program Files\The Bat!\MAIL\TBLH\Includes directory. It's a
standard text file so you can edit it with Notepad or whatever. Here's
what it currently contains:
Report problems to: <mailto:ldgregory@PCWize.com>
TBLH FAQ: <http://www.PCWize.com/tblh/faq.shtml>
To unsubscribe, click here:
Take very careful notice of the two dashes right above my name. Please note
that it is '-- ' (dash dash space). The trailing space is extremely important. What this
is for, is that TB cuts off any text following the '-- ' when you reply to a message. How
this works in your favor is like this.
You send a message to the list, at the bottom of this message is your boilerplate.
Now if you don't have the '-- ', then when someone replies to your message, the
boilerplate is quoted along with your message. If that message is then
replied to, it gets quoted again, ad infintum. This basically helps you to keep the posts looking nice and clean.
- This next block is your macros. Let me show them to you and then I'll explain
what they are doing.
%TO="TBLH List <firstname.lastname@example.org>"
The Bat! requires that you have a valid e-mail address in the TO field
to send a message. Putting the
discussion lists e-mail address in here serves two purposes. The first is that it looks
better than putting in your e-mail address. The second and most important, is that when
the message is sent, you will receive it again.
This sounds stupid, but it is necessary if you wish to verify that your message
went out without actually subscribing yourself to your own list, and it allows you to keep
the message in its final form just like all the other posts that come from your
subscribers. This is useful if you want to create a digest version (which I'll get to
later in this article), or if you want to place a searchable message archive on a Web
The BCC field must contain your address book group that has all of your subscribers
in it. This is very important. If you put the address book group with all of your
subscribers in the TO field, then everyone who is subscribed to your discussion list will
see everyone else's e-mail address who is also subscribed to the discussion list. This is
considered very bad netiquette.
Important Note: Just for clarification
on the text TBLH <list>-- because I've received many
questions concerning it, is that the <list> portion must
say exactly that! This is how TB knows that it is an address book
group and not a contact. For example, let's say our address book group
is called SUBSCRIBERS instead of TBLH. Then the macro for
%BCC will look like this: %BCC="SUBSCRIBERS <list>".
Notice the address book group name changed but the actual text <list>
did not. Your list will not work if you do something like this %BCC=TBLH
The RETURN-PATH is very important in that it provides an e-mail address for bounced
messages to come back to instead of your subscribers. Trust me, you have to have it in
there, I learned the hard way with my lists. Why are there two of them? Well, there's an
undocumented feature in The Bat! that allows you to run a macro with a NULL input. What
this does is to clear the field so that the second occurrence of the macro can fill it
without worrying about what was stored in it previously. This will become much more easily
understood when we get to the filtering section (filter
- Select the "Reply" template. Again, you'll want include the boilerplate
to remind the subscribers when you reply to a subscribers post. Here are
Here's where the NULL value macro becomes a little easier to understand. Let's say
"Billy Bob" <email@example.com> sends a post. If I want to reply to his
message before it gets sent to the list, and send my reply to the list, then I need to
change his TO info so that it matches with what we are going to do in the
POST filter to all of the messages posted. Namely change the TO, and REPLY-TO information.
Again, just hang on a little while and I'll explain this fully in the filters section.
- This pretty much concludes the account setup. You shouldn't have to use the
forward template, and you can put whatever cookies in the cookies template that you want
- One last thing about the account settings. There are seven folders (other than the
default ones) included the TBLH account. Here's what they are for.
***** Note: If you don't see the below folders, select the TBLH
account, then hold
down the CTRL-ALT-SHFT-L keys simultaneously. This will force TB to search for any missing
folders in that account.
SPAM - This is the folder that filter seven
moves SPAM to. I'm pretty aggressive in tracking down spammers.
If you are interested, I wrote an article for my weekly e-zine entitled "To Catch A Spammer".
Moderated - This is where the messages in their final
form (as they were distributed to your subscribers) will reside after filter
one processes it.
Subscribers - This is the folder that Subscribe requests get moved
to once filter two has added them to the address book. This provides three functions. One,
is that at a glance, I can roughly tell how many people are subscribed to the discussion list.
Two, I have a record of subscribes. This way if someone later on says that I am spamming
them, I can prove that they (or at least someone pretending to be them) did indeed
subscribe, and three, if someone did not use the correct string to
subscribe, you can just copy their e-mail address to the clipboard, right
click on the "Subscribers" folder, select "Create a new message"
which will create a new message with the "Subscription receipt" in it. All you
have to do is paste the subscribers e-mail address into the TO field and send
it, and of course manually add them to the address book group for your
*** NOTE: I have used text files for inclusion into the templates for both "Subscribes" (both filter and folder), and "Unsubscribes" (both filter
and folder) that contain the actual text or the Un/Subscribe. This way, if you make
changes, you can do it in one place and it updates both the filter and folder versions.
They are located at C:\Program Files\The Bat!\MAIL\TBLH\Includes. If
you specified a different "Extract To" path in step 4 of the "How to
TBLH account into The Bat!", then you will need to change the
directory path in all the templates (both folder and filter) for
Additionally, the failure folders and filters include their respective
text files located in the same folder as the subscribe and unsubscribe
Unsubscribers - Serves the same function as the "Subscribers", but is
for unsubscribers. If a subscriber messes up the unsubscription process,
then you can cut
and paste their address into the "Create a new message" option when you right
click the "Unsubscribe" folder, and then manually remove
them from the address book group.
There are actually two more folders (subfolders
actually). One is under Subscribers-- called Failures, and the other
is under Unsubscribers-- also called Failures. These two folders hold
"bad" subscribe and unsubscribe attempts that filters three
and five (respectively) take care of. I'll explain these two filters
and what they are for under the next section.
The Filtering Sub-system
This is the area that will make or break your mailing list. I
highly encourage you to read my how-to called "The
Bat! Filtering" before you get started.
- While the TBLH account is highlighted, click "Account" and select
- Click the "+" in front of "Incoming messages"
Filter One - Move Moderated Incoming
This filter is a housekeeping filter. Because we are changing the TO header in
the "Post" filter (See filter six) to "firstname.lastname@example.org" this message is
going to come back to you through the normal post e-mail address. You've already processed
this message, so you don't want to send it back out to the subscribers again. This is one
other reason we are using the RETURN-PATH macro. It is our filter string, whose job it is
to move already processed (sent to the list subscribers) messages to the
"Moderated" folder (which by the way is where you should make your replies to
messages that subscribers have posted.) If you specified a different "Extract
To" path in step 4 of the "How to "import" the TBLH
account into The
Bat!", then you will need to change the directory path in this filter to reflect the
actual location of the "Moderated" folder.
What we are actually doing with this filter is searching the kludges for the
string [RETURN-PATH: email@example.com]. This is something we have modified in
filter six to solve two problems: The first is bounce messages get sent to the designated
address, and two we can use it as our search string, because it will only
appear in messages we have already processed.
Of course you could just send these messages to the trashcan, but if you are
going to participate in your own discussion list, it is easier to reply to this message
than cutting and pasting all their info during the first time it comes through. Also, if
you decide later on to build a searchable message-base on a Web site, you will have the
message in its final, post filter-processed form.
Filter Two - Subscribes
This filter is the subscription filter. You need to determine what
keywords you want to use for your filter string. The easiest, of course,
is as I explained earlier by having a separate e-mail alias for
unsubscribes like firstname.lastname@example.org.
However, if you aren't lucky enough to be able to do that, you'll have to
use keywords either in the subject line or message body. The most logical keywords
would be something like "Subscribe" and "TBLH". Because not all e-mail
clients support the "%20" symbol (a space) when resolving a mailto type URL, and also
because some do not support actual space characters, I like to use the underscore
character between the keywords i.e. "Subscribe_TBLH". This is a good way to
ensure that whatever e-mail client your subscribers may be using, your URL will work. The
added benefit of using the underscore character is that it is almost totally invisible in
a URL, because they are almost always underlined. An example of this URL that you would
put on a Web pages or in the sig portion of your e-mail messages would look something like
To subscribe to the TBLH mailing list, click here:
If you click on this link, The Bat! will create a new message with the subject
line filled in with "Subscribe_TBLH", now all the prospective subscriber has to
do it click send.
If you are lucky enough to have a separate subscribe alias, then
none of that applies to you, because you'll only need to filter on the
RECIPIENT address (your list subscribe address).
Again, change the filter name and strings to match your
The Actions tab is going to let us add the new
subscriber to our subscriber address book group. Make
sure you change the address book group name to suit your list.
The Send Auto-Reply is where you will tell the new subscriber about the list, what to expect, what
e-mail address to use to post messages, some rules (concerning flaming, beating a dead
horse etc.), and where to report problems. Take some time to think out what you want to put
in here. You can use or modify the sample template I've already
created for you to fit your needs. You'll find it as Subscribe.txt in
the Includes directory
(provided you didn't change the install path when you imported the TBLH
If you read the entire Subscribe.txt, you would have noticed at the bottom there was a
macro. It was like this:
%SUBJECT="TBLH Discussion List Subscription Receipt."
%FROM="TBLH Owner <email@example.com>"
%REPLYTO="TBLH Owner <firstname.lastname@example.org>"
Because this is a new message created by the filter, you should specify a subject
to be placed in the SUBJECT field. The TO field will have whatever e-mail address is
specified in the subscribers REPLY-TO information. The others are
pretty self-explanatory. Just remember, this is a message from you to
them, not from the list to them. You don't want to put the list address in
the FROM and REPLY-TO, because if they reply to the subscription receipt,
you want it to go to you, not the list.
Here's an additional note. I was playing around with a way to
include the current number of subscribers in the subscribe receipt. I
finally found a way using VBScript and a couple of well placed INCLUDE
statements. Here's how it works.
On the Actions tab is the option to Run External Program, and in
here I've set it up to run the gain.bat file located in the Includes
directory. The batch file calls the SUBCtr.vbs script which checks the
SUBCtr.txt file for the current number of subscribers, adds one to it, and
then writes it back. Then the Subscribe.txt file INCLUDES the SUBCtr.txt
file on a line saying "The current number of subscribers is: xx".
It works great, and due to the order of operations in The Bat!, the number
shown in the Subscribe receipt even reflects the newly subscribed person
the receipt is going to! Cool huh!
Now, the unsubscribe filter has a similar function in the Run
External Program action, except it calls loss.bat in the Includes
directory, and subtracts a subscriber. The reason for two batch files, is
because I wanted only one VBScript to perform both options (it functions
based on an argument passed to the VBScript. If there is an argument, it
adds a subscriber, if there is no argument, it subtracts one), but I had
problems passing an argument from within The Bat!, so I made the gain.bat
pass an argument of "1", and loss.bat passes nothing. It's a
kludge, but until I figure out a better way, its going to have to be that
Maybe you can come up with a better way! <grin>
In filter three we will be
weeding out the duplicate subscribers, but it never hurts to make
absolutely sure, so that's why we're checking to make sure the address
does not already exist in the address book group via the Advanced tab.
Filter Three - Subscribe Failure
This filter's purpose is to catch instances where
someone is already subscribed and they try to subscribe again-- on purpose
or on accident. It sounds strange but I've had people do it. Another
instance is where someone gets impatient and sends another subscribe
request because they haven't received their confirmation back from the
What this filter does is to check to see if their
address already exists as a subscriber. If it does, then a message is
created saying that they are already a subscriber. If they aren't already
subscribed, then the filter does nothing. Messages that this filter
applies to are moved to the subfolder of TBLH Subscribers.
Make sure you change the filter name in the "Name" field to whatever you wish to call
it, and change the filter string in the field "Strings" to whatever you will
use as your subscribe filter string.
On the Actions tab, we are specifying that The Bat! send
them a message that says something to the effect of "The e-mail
address you've attempted to subscribe is already a subscriber. See the
Subscribe Failure.txt in the Includes directory to modify it.
This is the real "meat" of our Subscribe
Failure filter. The Advanced tab allows us to enable this filter if the
e-mail address is in the address book group for subscribers. Remember, we
are playing the True/False game here. We want this filter to be enabled
(True) only if the e-mail address already is subscribed.
Filter Four - Unsubscribes
The fourth filter is your unsubscribe filter. Eventually, someone will want to
unsubscribe, so set up this filter similar to the subscribe filter. Of course, you will
want to make changes so that it reflects an unsubscribe command (either by
a separate unsubscribe address, or by signal strings in the subject or
message body). I've included a sample
template in the Includes directory for you to modify or use as your see
fit. This filter is very similar to Filter Two,
but the big change is you're removing (not adding) an address from the
address book group.
The Send Auto_Reply is going to send the message
contained in Unsubscribe.txt.
We want to make absolutely sure that the e-mail address
exists before sending them a message saying we've unsubscribed them, so
this filter only gets enabled if their address is indeed in the TBLH subscribers address book.
Remember, filter five is going to weed out bad
Filter Five - Unsubscribe Failures
This filter attempts to intercept unsubscribe requests
from addresses that aren't subscribed. This is usually the case when
someone forgets what e-mail address they subscribed to your list under and
then later tries to unsubscribe under the wrong address. This filter
creates a message saying that the address they are trying to unsubscribe
with is not a valid one. Messages that this filter applies to are moved to
the Failures subfolder of Unsubscribers.
Again, this filter is very similar to Filter
Three, so I'm only going to show you the Advanced tab again.
Filter Six - Posts
The sixth filter is the subscriber post filter. This is the real meat of your
filtering system, because it allows subscribers to post messages to the rest of the
subscribers. The Bat! now includes the capability to ensure that only messages
from addresses listed in your subscribers address book group can post to
the list. This helps to cut down considerably on SPAM attempts and people
you've banned from posting.
This filter will be set up similar to the Un/Subscribe filters, with the
Under the "Rule" tab, your first filter string should
be the list address, select the "Recipient"
location, and presence is "Yes". This is a SPAM measure. Most times when you
receive SPAM, the recipient list has been suppressed, meaning your e-mail address is not
displayed along with all the other unlucky recipients of the SPAM. So by specifying
your list address you will be eliminating a huge
majority of SPAM from making it to your subscribers.
The second filter string should be the RETURN-PATH address
"Kludges" location, and presence is "No". This will ensure that
a new message you sent to the list does not get processed and sent out
again. Remember, you will be sending new messages to the list in its final
form, you don't need to modify anything in your own messages, therefore
you do not want this filter to act on them. Technically, you're messages
should never even reach this filter because filter
one should have taken care of it, but it never hurts to be sure.
Under the "Actions" tab scroll down till you see "Create a
message for", put your name and e-mail address here like this: "Leif
The template for this action is in the Post.txt file in the
Includes directory. Here's an explanation of what is going on.
The %TEXT is going to cut and paste the posters text into this message. You
don't want to use the %QUOTE macro, because that's not what you want.
The three blank macros "TO, REPLYTO, and FROM" are an undocumented
feature in The Bat! What happens when you don't specify any text between the quotes is
that it blanks out the field (A NULL value.) Remember when you put your name and e-mail
address in the field under the action "Create a message for"? Well, if you don't
blank out this field, that info will appear here in addition to the info placed there by
the second occurrence of "TO" in the above macro. This is a bad thing. The
REPLYTO and FROM fields will contain the information you specified in the TBLH
settings, so we want to blank these out.
Ok, now on to the second occurrences of TO, REPLYTO and FROM. When a subscriber
posts a message, and the other subscribers receive it, you want the TO, FROM and REPLYTO
information to reflect the person who posted the message. i.e. say Billy Bob <email@example.com> posts a message to the list. When a
subscriber receives the message, you want the TO field to say "TBLH Discussion List
<firstname.lastname@example.org>" (unless they were replying to
someone's message, then you would want it to have the repliees address here.), you want
the REPLYTO field to say "Billy Bob <email@example.com>
(This is extremely important! The REPLYTO header is the address that is used when someone
replies to a message. We want the replies to come back to the list, so that they will get
sent to all the other subscribers too. If the replyer wants to send a private message to
only Billy Bob, then they should cut and paste the address in the FROM field), which
brings up what you want displayed in the FROM field. You want it to say "Billy Bob
<firstname.lastname@example.org>" (You want the subscribers
real e-mail address here-- unless you are running a closed list, then you
would make the FROM field the same as the REPLY-TO so that nobody on the
list will ever see anyone else's true e-mail address) There is no need to
change the way the things are other than changing the e-mail addresses to
reflect your list. With that out of the way, let's dissect the macros.
Remember when I said that you wanted the TO field to display "TBLH
Discussion List" unless the post is a reply? Here's what happens in this macro.
%OTONAME takes all the text except the actual e-mail address i.e. "TBLH Discussion
List", or in the case of a reply "Billy Bob" and puts it into the TO field.
We are then specifying that the e-mail address be <email@example.com>.
So the new TO address will be "TBLH
<firstname.lastname@example.org>" or in the case of a reply
"Billy Bob <email@example.com>"
%ReplyTo=%OFROMNAME <firstname.lastname@example.org> When
a subscriber replies to a message, this is the actual e-mail address it will use. We are
taking the original posters name and changing the e-mail address so that the reply gets
sent to the list instead of the original poster personally.
%From="%OFROMNAME <%OFROMADDR>" Here we are using all of the
original posters real information. Their real name and real e-mail address.
%BCC="TBLH <list>" This is your address book group entry. Of
course we do not want to show everyone on the list who else is also subscribed to the
list, so we put it in the Blind Carbon Copy (BCC) field. This also help to prevent
spamming of your subscribers.
Here's where we are validating that this post came from
a valid subscriber. This is another Anti-SPAM feature.
Filter Nine - Move sent messages to trash
This is a filter you can do without if you don't want it. However, I would highly
recommend it, otherwise the sent posts will accumulate in your "sent" mail
folder, and you would have to move them to the trash manually. Please note
that this is an Outgoing filter, not an Incoming one.
By setting the filter string to your RETURN-PATH, this
ensures that it catches not only outgoing post-processed posts, but sub
receipts, unsub receipts, and the failure notices.
Filter Seven: Post Failures
This filter is used to notify a non-subscriber who sent
a post to the list that the list only allows subscribers to post messages.
It also informs them of how to subscribe, or if they are a subscriber,
that they most likely subscribed under one address, and are attempting to
post messages under another e-mail address.
In the above, we are making sure that the message was
addressed to the list. This is another anti-SPAM measure. We do not want
to advertise the list address as being valid to spammers, and since most
spam is not directly addressed, this will prevent the list from sending
the "You are not a subscriber" message to the spammer). Below we
are checking to ensure this filter only gets activated when they are not
in the address book group for subscribers. Again, much of what I've done
with these filters is redundant, but I've said it before and I'll say it
again, it never hurts to make absolutely sure.
Filter Eight: Anti-SPAM
This is the final filter of our incoming filters and
takes care of almost all SPAM messages by dumping them into the SPAM
Again, redundancy is the key, we are checking to make
sure the message was not directly addressed to the list (or more
accurately, to the domain).
Setting up the digest version
Right now, this is one area when The Bat! is kind of weak. I have asked RITLabs
to try and work on this area just a little more. I would have included this section in the
filters section, but I didn't feel that it has the proper capability to really be used as
a digest generator. There is an option on the "Actions" tab for "Export
message to file". The problem is that you can either include all of
the kludges (really messy looking), or none of the kludges (difficult to
reply to people or to see who wrote the message and its subject.) I asked RITLabs if
they could allow you to select which kludges to include in the exported message. I think
that these kludges are necessary (DATE, FROM, REPLYTO, TO and SUBJECT,).
If you wish to
experiment around with the digest generator anyway, do this:
- In the TBLH filters, click the "+" in front of "Incoming
- Select "Move moderated incoming messages".
- Select the "Actions" tab.
- Scroll down till you see "Export message to file".
- Put a checkmark in the box.
- Click the "Browse" button to the right of the pathname field.
- I have already selected the "TBDigest.TXT" file
which is in the Includes directory. I'd suggest keeping a
copy of all the digests you create for future use (on a web site etc).
- If you specified a different "Extract To" path in step 4 of the
"How to "import" the TBLH
account into The Bat!", then you will need to
change the directory path to reflect your directories.
- Put a checkmark in the "Append to existing file" radio button.
- Exit out of the filters dialog window.
- To send a digest to someone (You'll have to do this manually, as there is no way
currently to define to TB when to send these digests out.) right click on the
"Digest" folder, select "Create a new message". You should be able to
just click send from here.
- Remember to empty out the "TBDigest.TXT" after sending it,
because then you'll just append more messages to the end.
- Also remember to set up an address book group called "TBLH Digest" (Or
change it to whatever).
- Then you'll also need filters to sub and unsub people from
the digest address book group.
Closing remarks and how to
Ok, we're done. You have all of the stuff necessary to start your own discussion
list. If you have any additional questions or find any faults in this how-to,
e-mail me. I will be glad to answer any questions you may have.
Here are the answers to some common problems people using this how-to have
come up against.
The RETURN-PATH doesn't seem to be working / posts that
have already been processed and sent out to the list are being treated like new posts when
they come back through the system.
Most likely the SMTP or POP server you are using is removing the
RETURN-PATH statement from the header. Some are set up this way, and you might be able to
get the administrator of that server to change that. If not, then you will most likely
have to find a different SMTP or POP server.
To determine which is actually the culprit, create a new message
from the TBLH list, remove the addresses from the TO and BCC fields (you might have to
enable the viewing of these fields first by clicking "View" in the message
editor window and putting a check mark next to them.) Once you have cleared out these
addresses, put my address <email@example.com>
in the TO field and send it to me. Of course, please type something in telling me why you
are sending the message to me. I'll check the headers, and if it is missing, then the
culprit is your SMTP server. I will then send you a reply that has a RETURN-PATH statement
in it as well, you check the headers to see if it is there. If not, then your POP server
is deleting them as well.