DList - Mailing Lists
NB: You must make DSMTP reload after
changing DList lists so that it can create the aliases that it needs for
the lists (check for them in the file aliases.dml in the work directory).
DList - Quick Overview
DList is a mailing list server
that is part of the DMail package.
General settings for DList are contained in
the main configuration file, dmail.conf.
To create a list you simply add a line like,
list listname
setting in the file, lists.dat which you will
find in the dlist_path directory.
Then make DSMTP reload the configuration
file, dmail.conf (DList regularly checks the configuration and lists.dat
files for changes, so it does not need to be sent a reload command).
Generally the sysadmin would set up a list, and then users would send
an email to the 'listname-request' address to 'subscribe' themselves to
the list.
Users in general will only interact with the list by sending emails,
either directly to the list to be 'posted', or to the listname-request
address if they wish to join the list or send it commands. See:
DList mail commands
When users join the list they are normally sent this list of commands
so that they know what the list can do for them.
To modify DList settings you can directly edit dmail.conf and lists.dat
with a text editor, use the windows management utility DMAdmin or use the web based tool, NetAuth.
Creating a Mailing List
To create a mailing list on the list server, DList, you need to add a
new list setting in the lists.dat file, e.g.
list listname
where listname is the name of the list. You can edit the lists.dat file
with a text editor (e.g. notepad or vi), or the windows administration
tool DMAdmin will edit the file for you if you
use the "Mailing Lists" button.
If you are doing it manually then below the list setting add any other
settings that you require for your list, e.g.
title juggling
Then RESTART the DSMTP process with DMAdmin. You must restart DSMTP after
adding or remobing DList lists so that it can create the aliases that
it needs for the lists. (If you simply change a list setting, like changing
one of the 'access_' settings, then there is no need to restart DSMTP
or DList).
To try out the list, you should add a user to the list and then post
a message to the list. For information on this see,
Adding Users to a List
DList Email Commands
NB: Mailing lists on Virtual Domains...
If you are wanting to add the mailing list to a specific domain, e.g.
a virtual domain, then you need to specify that domain in lists.dat, so
that DSMTP can create the correct aliases for your mailing list.
There are two ways to do this.
1. Old way: add a domain setting to your list, e.g.
list juggling
title Mailing List
domain vdomain1.com
2. New way: create the list with a full list name, e.g.
list juggling@vdomain1.com
title Mailing List
(NB: you must use DMail version 2.7q or above, for option 2 to
work!)
The second method is better because it means that all mailing list directoryies
will be created with unique names. This allows you to reuse mailing list
names on different domains.
NB: no matter what domain a mailing list is on, you will find its drop
file in the main directory's drop_path (not in the vdomain drop_path),
as set by the dmail.conf drop_path setting.
Settings
- lists.dat
Lists.dat is the file where you create all the lists on your DList server
and where you enter individual settings for each list. (General DList
settings, i.e. not list specific, are entered as for DPOP and DSMTP in
the dmail.conf file, see Settings - dmail.conf)
As with dmail.conf all settings are one per
line, and you can exclude a line by starting it with the '#' character.
You do not need to reload the DList server after making changes to dmail.conf
(as you do with DSMTP and DPOP), as DList automatically checks the dmail.conf
and the lists.dat files before each check for list messages.
Note: after adding a new list to lists.dat you MUST make DSMTP do the
reload command. This is because DSMTP
has to create aliases for each of the
lists on your list server.
Below is a list of all of the settings available for each list. All settings
for a list are entered on the lines following the
list listname
line that declares a list, before the next list starts with its 'list
listname' declaration line. See example
lists.dat file
All settings take just ONE value except where stated otherwise in the
description.
Note: In the table below you will see that the 'access' settings can
generally take one of the following values. It is important to think about
what these settings mean - NOT all of them apply to every access setting!
See moderated lists
- member - refers to list members and in general the list moderator
as well
- anyone - no restriction
- moderator - only the list moderator can do it
- *domain - person trying to do it must have the email address ending
in 'domain'
Setting |
Default |
Example/options |
Description |
access_join |
anyone |
anyone,*netwinsite.com, |
Controls who can join the mailing list |
access_leave |
anyone |
moderator |
Controls who can unsubscribe from the mailing list, by default anyone
can unsubscribe anyone else.
in version 2.5d (2.4k) and above:
members: (can unsubscribe themselves, moderator can unsubscribe
anyone)
moderator: (only moderator can unsubscribe - members cannot unsub
themselves)
|
access_post |
members |
moderator |
Controls who can post messages to the mailing list |
access_who |
members |
anyone |
Controls who can retrieve the list of current members |
archive |
false |
true |
If set, DList will record all incoming messages in an 'archive'
sub directory, off the list's directory. |
bounce_remove
(added in 2.8h) |
false |
true |
If set, then DList will log all bounces that it receives, and if
it can work out that the bounce was because of a permanent error,
then it will remove that address from the mailing list. DList will
also send a summary email to the moderator each day recording any
addresses it has removed from the list and the bounce error that was
the reason for the removal. This is a new 'beta' setting so let us
know how it goes if you try it. You might like to try, the log_bounce
setting as a first step to turning on this setting. |
domain |
(none> |
domain mydomain.com |
Specifies the domain that this list should exist on where you do
not want it to be on your first host_domain. NB: To allow listname
re-use on different domains see the note,
Mailing lists on Virtual Domains
|
footer
(version 2.4h and above) |
(none) |
footer
c:\dmail\dlist\listname\footer.txt |
The full path to a file that you want added onto the end of all
messages as a footer. In version 2.8e and above this is only added
onto all TEXT messages, HTML version also added see below. Note that
as of 2.9g, template variables can be used in footers. See Template Footers for details. |
footer_html
(version 2.8e and above) |
(none) |
footer_html
c:\dmail\dlist\listname\footer_html.txt |
The full path to a file that you want added onto the end of all
HTML messages as a footer. Note that as of 2.9g, template variables
can be used in footers. Template Footers for details. |
join_cookie |
false |
true |
If set, when users join the list they will be asked to respond with a
specific cookie (number) to prove they are real humans, this setting prevents
people from subscribing other people or worse other lists to an existing
list. Note: a cookie will not be sent if the subscriber is a moderator or
if access_join for the list is set to moderator or password. |
language_file
(version 2.9d and above) |
(none) |
newproducts.dat |
Used to specify a language file for a particular list. That language file
is used to translate most of the phrases generated by DList for that list.
Documentation on language translation is available here. |
log_bounce
(version 2.8h and above) |
false |
true |
This is a debugging setting, that may be more generally useful. It causes
DList to log all addresses that bounce and the reason for the bounce to
the file, bounces.log, in the list home directory. The log is appended to
for every bounce received when sending any messages to the list. See also,
bounce_remove. |
list |
(none) |
dnews-discussion |
The name of the list, this cannot contain spaces and must be the first
setting for each new list in lists.dat |
max_size |
40 |
100 |
Limits the maximum size of an item that can go through the mailing list
in kbytes. NB: this setting applies to messages to the -request address
as well as the posting address. |
max_per_user
(2.4g and above) |
200
(changed from 50 in vers. 2.5d) |
1000 |
Sets the max number of messages allowed to be posted to all lists on the
server per user per hour. Note that the count is per user for posts to ALL
lists, whereas the setting is per list. So the count is global but whether
it applies to a list is list specific (the default is 200). |
moderator |
(none) |
fred@netwinsite.com |
A list of one or more moderator email addresses, a moderator often has
extra access rights, like the ability to subscribe other people etc. Separate
multiple entries with spaces or tabs (or commas in version 2.5d and above),
emails are only sent to the first moderator in the list, but any moderator
can send moderated messages. |
no_processed_message
(version 2.9d and above) |
false |
true |
This setting is very powerful. If set to 'true' for a particular list,
no command processed messages are sent by DList for that list. This means
that users will only see list posts; they will get no response to any DList
commands they send (i.e. who, lists etc.). This would only really be useful
if you wanted to subscribe users to a list without them receiving notices.
|
no_welcome_message
(version 2.9d and above) |
false |
true |
By default, DList sends a welcome message to each user directly after
that user successfully subscribes to a list. If set to 'true' for a particular
list, then users subscribing to that list will not be sent a welcome message. |
reply_to_user |
false |
true (also in version 2.5f and above, user@domain) |
If set, the reply-to header in each message will be pointed to the original
poster, rather than the mailing list, this is recommended for large mailing
lists. In versions 2.5f and above in place of true you can specify an address
as the reply address for ALL messages posted to the list. If given, posted
messages will have any Reply-To: header turned into X-Reply-To:, and the
address given is added to a new Reply-To: header. |
status_interval |
7 |
1 |
Period in days between automatic status reports being sent to the moderator. |
skip_mailer_check |
false |
TRUE |
If TRUE then DList will not ignore messages from users called, MAILER-DAEMON
(all in capitals). These are normally bouced messages and so would not normally
be wanted as posts to the list. |
skip_postmaster_check |
FALSE |
TRUE |
If TRUE then DList will not ignore messages from users called, POSTMASTER
(all in capitals). These are normally bouced messages and so would not normally
be wanted as posts to the list. |
subject_prefix |
(none) |
Juggle: |
This string will be added to the front of every subject line of messages
from this list, this makes it easy for people to sort list messages out
from other messages. |
title |
(none) |
N.Z. Juggling |
A title for the list, shown in headers and lists output. |
to_user |
false |
true |
If true then the To: address in each message sent will be the users email
address instead of the list name |
An example lists.dat file with entries for two lists, talk and
juggling:
Welcome Messages
DList comes with an example welcome message. It is stored in a file
called join.tpl in a template format.
You can edit this template to the look that you require, and you can
copy it to each list's directory (off the main DList directory) so
that individual lists can have their own welcome message.
DList supports variables in templates as of 2.9g. All you need to do to
use template variables is add the variables you want into the template. or
information on
how to use template variables, and a list of supported variable names, see Template Variables.
Adding users to a list
Usually users would add themselves to a list, by sending a
message to the list request address, e.g. listname-request@domain
with the word subscribe in the message body.
DList will then add them to the users.lst file for that list.
Users.lst for each list is stored in that list's directory (named
after the list) off the DList directory (probably
\dmail\dlist\listname\users.lst
or /usr/local/dmail/dlist/listname/users.lst )
To add a number of users you have two options:
- Add yourself as a moderator for the list and send the listname-request
address a message with mutliple subscribe lines in the body.
So as a moderator you send the following email:
To: listname-request@domain
From: your_moderator_address
subscribe bob@domain1.com
subscribe judy@domain1.com
subscribe george@domain99.com
to join up the email addresses,
bob@domain1.com
judy@domain1.com
george@domain99.com
- Directly edit the users.lst text file for the list and add the email
addresses, one per line.
So to add the same three users, you might edit the users.lst file to
look like this:
u:tam@1.2.3.4 f:Tam Willacy p:0 t:0
bob@domain1.com
judy@domain1.com
george@domain99.com
where the first line is an existing user on the list.
Don't worry about the format of lines for existing users. The next
time DList has to write anything to the users.lst file
it will add the email addresses that you have pasted/typed in correctly.
Adding Users' Real Names
In version 2.5f and above to specifiy the
user's real name when you are subscribing them using either method,
enter the user's email address with the full name field as per an
email client, e.g.
sending subscribe commands:
subscribe "bobby" bob@domain1.com
subscribe "Judy Simpson" judy@domain1.com
subscribe george@domain99.com "Georgie Porgy"
directly in users.lst:
u:tam@1.2.3.4 f:Tam Willacy p:0 t:0
"bobby" bob@domain1.com
"Judy Simpson" judy@domain1.com
george@domain99.com "Georgie Porgy"
When the user subscribes themselves, the real name is taken from their
email address (from the From header).
Moderated lists
This is still being written :-)
There are two ways of posting into a moderated list, depending on
whether the access_post setting is set to Password or Moderator:
- Password: DList accepts the message from the user and sends it
to the
moderator, who if they want to approve it then submits it to the list
with the first line of message body being
approve Password
e.g.
approve xxxx
For this to work the access_post setting for the list
in lists.dat
must be set to 'Password' and the list password setting must
match the password given in the approve line, e.g.
access_post Password
password xxxx
- Moderator: The return address of the incoming message matches
that of
the moderator setting and the access_post setting is set to
Moderator in the lists.dat file, e.g.
access_post Moderator
moderator moderator@domain
where moderator@domain is the address that must match.
Notes:
- There must always be a moderator for a list set to password post access
because password is a more secure moderated list.
Archives and Files
This is still being written :-)
DList lists can be set to save an archive of all messages by setting the
list specific setting in lists.dat,
archive true
If this is set then DList will create the archive messages in a subdirectory
called, 'archive' below the list's directory, e.g.
c:\dmail\dlist\listname\archive\1.msg
c:\dmail\dlist\listname\archive\2.msg
etc.
Then if the user sends an email to the listname-request address with the
command, dir, in the message body, then DList will send
back a message telling the user how many archived messages there are.
If the user wants one of the messages then they can send the
'get' command to fetch the archived message.
If you want to provide other files to the list members, then you
create your own directory off the list's directory called, files, and
put the files that you want to provide there, e.g.
c:\dmail\dlist\listname\files\picture.jpg
Then when the user does a 'dir' command, they will also be shown a list
of other files available.
For details on the list commands see,
DList Email Commands
Template Footers
As of DMail 2.9g, DList will treat footer files as templates. This means that
you will be able to use variable names in the footer file. These names will
be replaced with the actual values as the message is sent. For information on
how to use template variables, and a list of supported variable names, see Template Variables.
Template Variables
Template variables are a way to customise joining messages and footers with
information about a list, or a list member. Variables are denoted in the
following form:
%%variable_name%%
When DList comes across a variable in a template (say a footer, or a join
message), it replaces that variable with its value. For example, the following
line contains two variables:
Welcome to the %%list_name%% list, %%h_user%%.
The variables are replaced with their actual values when the message is sent.
As an example, the above line could become:
Welcome to the newproducts list, joe@bloggs.com.
Below is a list of all template variables supported by DList. Please note
that some variables may have multiple variable names. This is to ensure
backwards compatibility with older versions of DList.
Variable Name |
Synonym |
Replaced With |
Example Value |
list_member
|
h_user
|
The email address of the user to whom the message is sent. |
joe@bloggs.com |
list_request_address
|
list-request
|
The email address to which to send requests. |
newproducts-request@bloggs.com |
list_address |
|
The email address to which to send list messages. |
newproducts@bloggs.com |
list_name
|
list
list-name
|
The name of the list. |
newproducts |
NB: As of DMail 3.0h6, list template variables have been standardised. That
means that in all places where variables were used, the information in this section applies. NB2: Upgrade to 3.0k6 for
the synonyms to work correctly.
|