Mailing List Note: SPAM is forbidden on our network. (See our Terms & Conditions). Remember, you are responsible for who you send mail to with our mail list software. Sending advertisements to people without their permission is SPAM and could cause you legal troubles. Any report of SPAM is justification to remove your account from our servers. Use it wisely Some features require SSH / Telnet access. How do I set up a new mailing list? (1) Go to your mail manager in your control panel. (2) Create a list in Mail Manager by clicking on "New List". (3) Add the name of the list. You'll get a message giving you instructions, repeated underneath. (4) Click "edit list" and you're asked to add the maintainer, password, and max number of e-mails archived. The maintainer is the e-mail of the person in charge of the list The password is the list password Max # e-mails archived is the number of the most recent "back-issues" to be saved, and sent when someone requests the most recent e-mails sent to your mailing list. From the Mail Manager, you have access to "Mailing List Manager," also called "Xcommand" (from the name of the program in UNIX). This is a mailing list administration program. How do I subscribe to a list? From email: To subscribe to the mailinglist, simply send a message with the word "subscribe" in the Subject: field to the -request address of that list. To: listname-request@domain.com Subject: subscribe To subscribe to the digest: A digest sends all messages at once, in one big message, rather than sending each one individually. To subscribe the digest, simply send a message with the word "subscribe" in the Subject: field to the following address. To: listname-d-request@domain.com Subject: subscribe How do I send an email to the list? To send email to the mailinglist, write to the following address: To: listname@domain.com How do I unsubscribe to a list? To unsubscribe from the mailinglist, simply send a message with the word "unsubscribe" in the Subject: field to the -request address of that list. To: listname@domain.com Subject: unsubscribe To unsubscribe from the digest To unsubscribe from the digest, write an e-mail like this. To: listname-d-request@domain.com Subject: unsubscribe How do I moderate the list? The Mailing List Manager (Xcommand), available from the Mail Manager (domainname.com/menu), allows the administrator of the list to: Show List of Subscribers Show List Log Wipe List Log Search list of subscribers for a near match Directly subscribe/unsubscribe a user You can get to the Mailing List Manager by selecting the list from under 'Edit List' in the Mail Manager, then selecting 'Mailing List Manager'. You will need to know the Maintainer email and password to administer the list. The results of the commands will be sent to the list maintainer's email address. I would like to set up a newsletter. Can I get SmartList to do this? Yes. This requires SSH knowledge and access. When you use SmartList to send out an electronic newsletter, you limit the submissions accepted to yourself, and tell SmartList not to accept "foreign" submissions. Anyone who signs up will still receive the list but now cannot send to it. If you want all your lists to be newsletters, you can skip the delink step. If you're not sure, go ahead and delink this one. For the list "listname," * Edit the rc.custom file and the rc.init file. vi /home/username/domainname-mail/listname/rc.custom uncomment (delete the #s) foreign_submit comment out (precede with a #) foreign_submit= yes vi /home/username/domainname-mail/listname/rc.init uncomment (delete #s) foreign_submit comment out (precede with #) foreign_submit= yes * Delink the accept file: cd/home/username/domainname-mail type .bin/delink listname/accept When these steps are completed, the owner may send to the list by e-mailing to listname@domainname.com. If anyone else attempts to mail to the list, it will be sent to the owner rather than the link. Since the owner is now the only address in the accept file for the list, no other submissions will be accepted. (You may want to type vi accept to be sure no one else snuck in there.) Note: editing the rc.init file means that all lists created thereafter will also function as newsletters. The hard link would have to be broken for rc.init for a particular list to change this without changing this for all other lists also. I already have a list of addresses for my mailing list. How can I subscribe the entire list? The 'dist' file is the distribution list -- the list of recipients. To add a pre-existing list of recipients, copy it into the dist file: /home/username/domainname-mail/listname/dist You can add a short list by hand or by cut-and-paste. For a really long list, you may want to download the dist file, edit it using a word processing program, save it as text or ASCII, and then upload the edited file. The following conditions apply: One subscriber per line. Empty lines are allowed. The mail address of the subscriber must be the first word on the line. Comments may follow the address (but separated from the address by at least one whitespace character). Everything preceding the line containing: (Only addresses below this line can be automatically removed) is write-protected from changes (i.e. these addresses can never be automatically/accidentally unsubscribed). If the line: (Only addresses below this line can be automatically removed) is not present at all, automatic unsubscriptions to this list are impossible. New subscribers will always appear on the line immediately following the last filled entry in the dist file. Some sample entries (the preferred format): joe@some.where joe@some.where (some comment) joe@some.where (some comment) (some more comments) Depreciated, but allowed: <joe@some.where> <joe@some.where> some comment <joe@some.where> (some comment) Not allowed: (some comment) joe@some.where some comment <joe@some.where> Note: adding to the dist file for a list automatically adds to the accept file as well, unless you have turned off foreign submissions. How do I create a moderated list? A moderated list means that every submission to the list goes through your list maintainer before it actually gets posted to the list. (1) First create a file named "moderators." It should contain the fully qualified mail addresses of all the moderators for this list (i.e. just local usernames are not sufficient, at least include an @host or host! ). (2) Then uncomment the appropriate "moderated_flag" line in rc.custom. From then on all mail that does not contain an "Approved: the_address_of_one_of_the_moderators" field is forwarded to all the moderators. One of the moderators should then resend the mail to the list after adding an "Approved: his_own_address" field to the header (and possibly editing the contents of the mail). It will be no problem if several moderators resubmit the same submission concurrently, since the mailinglist will filter out duplicates anyway (i.e. only the first one will go out and be archived). Other Topics: Miscellaneous Info: ***Whenever editing a file in SmartList, it is important to use 'led' as the editor of choice rather than 'vi' so that the files are locked during editing*** To use 'led': ~$ cd $domain-mail/$list_name ~$ ../.bin/led $file_to_be_edited To find out if a file is hard linked: ~$ cd $domain-mail/$list_name ~$ ../.bin/showlink $file_name or generally: ~$ find -links 2 To edit rc.custom effectively: There are two lines commented(#) for every option. One line has a comment that says to do such and such, uncomment this line. This is the line to uncomment. Donot uncomment the other line as it is a duplication of the default that 'rc.init' is set to. If you uncomment it, then you are resetting to the default. If all fails and editing 'rc.custom' does not have the desired effect(of course you have tested it:-)), then delink the 'rc.init' file for this list and edit it. To delink this file ~$ cd /home/$user/$domain-mail/$list ~$ ../.bin/delink rc.init Delinking is necessary because all the 'rc.init' files are hard linked to all the other 'rc.init' files for a domain, so that what you change for one list is changed for all lists in the domain. SmartList: To reply to list rather than to user: This is strongly not recommended as it tends to violate privacy uncomment (ie xx the #'s) ##reply_to field in rc.custom: ~$ cd /home/$user/$domain-mail/$list ~$ ../.bin/led rc.custom ------------------------------------------------ reply_to = Reply_To = $list_name@$domain.com ------------------------------------------------ <:wq> [answer yes if asked if you want to unlock file now.] Moving e-mail list from majordome, etc. to SmartList: [have customer copy contents of old files on old server and upload to our server] [In an SSH session on our server] ~$ cd /home/$user/$domain-mail/ ~$ less $majordome_file_name [select all addresses] <ctrl-insert> <q> ~$ cd $list_name ~$ ../.bin/led dist [paste contents] <i> <shift insert> <esc> <:wq> Edit 'accept' file to limit who can post to a list in SmartList: In SSH session on server ~$ cd /home/$user/$domain-mail/$list_name ~$ ../.bin/delink accept [if you aren't sure if a file is linked <~$ ../.bin/showlink $file_name> or <~$ find -links 2>] ~$ vi accept <dd> [at beginning of line of address not wanted] or <ndd> [where n is the number of lines, ie addresses, you want to delete] <:wq> Using SmartList for a Newsletter: ~$ cd /home/$user/$domain-mail/$list_name ~$ ../.bin/led +/foreign_submit rc.custom [uncomment (xx the #'s) ## foreign_submit to prevent submissions to list] ------------------------ #foreign_submit yes foreign_submit ------------------------ <:wq> [delink the accept file] ~$ ../.bin/delink accept ~$ ../.bin/led accept ~$ <ndd> [all addresses except the owner/maintainer] <:wq> When the above steps are completed, owner may send to the list by e-mailing to $list@$domain.com. If anyone else attempts to mail to the list, it will be sent to the owner rather than the list. (The program looks at the return address to compare to the accept file, therefore this must be an address in the accept file to be authorized to post to the list.) Making a SmartList Moderated List: ~$ cd /home/$user/$domain-mail/$list_name [make a file called 'moderators' that contains the addresses of all moderators] ~$ cat > moderators [type full e-mail addresses one per line] <xxx@yyy.com> <ttt@nnn.net> [etc] <ctrl-d> [to end entry] ~$ ../.bin/led +/moderated_flag rc.custom [uncommented the ##moderated_flag by x'ing the ##'s] ------------------- moderated_flag ------------------- <:wq> To Get an 'Approved Field' in e-mail sent by a Moderator: [For e-mail clients that do not support adding additional headers] In rc.custom file for the list, uncomment the 'rc_local_submit_10' line as follows: ~$ cd $domain-mail/$list ~$ vi +/rc.local.s10 rc.custom [note the removal of # from second rc_local_submit line] ------------------------------------------------------------------------ #RC_LOCAL_SUBMIT_00 = rc.local.s00 # Uncomment (and change) these to RC_LOCAL_SUBMIT_10 = rc.local.s10 # call up customised local scripts #RC_LOCAL_SUBMIT_20 = rc.local.s20 # at predefined points. #RC_LOCAL_REQUEST_00 = rc.local.r00 #RC_LOCAL_REQUEST_10 = rc.local.r10 #RC_LOCAL_REQUEST_20 = rc.local.r20 #RC_LOCAL_REQUEST_30 = rc.local.r30 ------------------------------------------------------------------------- <:wq> Then, create the file 'rc.local.s10' in the list directory where the 'rc.custom' file is. Here's the code, it can be copied and pasted. ~$ cat > rc.local.s10: [copy and paste everything between the dotted lines] ---------------------------------------------------------------- # if there is no "Approved" header, and there is one in the # first part of the body (before any subsequent blank lines) # then move it to the header 0 * !^Approved * B ?? ^Approved { # Extract the first "Approve" from the body APPROVE="`grep '^Approved' | head -1`" # Filter it from the body, and add it to the header 0 fw | grep -v "^Approved" | formail -I"$APPROVE" } ----------------------------------------------------------------- <Enter> <ctrl-d> Next make sure you have a file named 'moderators' with your moderators email address in it. When you send a message to your Smartlist it will go to the moderators email inbox. To pass it on to the list for distribution simply type at top line of body of e-mail: ------------------------------------------- Approved moderatorsusername@domain.com <begin body of message here> ------------------------------------------- SmartList: editing message sent upon subscription/unsubscription: upon subscription: ~$ cd /home/$user/$domain-mail/$list ~$ ../.bin/led subscribe.txt upon unsubscription: ~$ cd /home/$user/$domain-mail/$list ~$ ../.bin/led unsubscribe.txt SmartList: editing lines sent out by program upon subscription/unsubscription: upon subscription: ~$ cd /home/$user/$domain-mail/.bin ~$ ./led subscribe [find and edit the line] <:wq> upon unsubscription: ~$ cd /home/$user/$domain-mail/.bin ~$ ./led subscribe [find and edit the line] <:wq> Helpful code that can be added for the user: when they talk about adding something to your 'rc.local.s20' or other 'rc.file', you have to make one, as they do not already exist. Examples can be found in '.examples' file of $domain-mail. When creating these files, I like to use 'cat' as you can just start typing and it goes into the file. for example: ~$ cat > $file <type or paste stuff> <Enter> <ctrl-d> [to end entries] Taken from the archive: How can I add a message to the beginning of every digest? If you create a file named digest.admin in either the main directory of the digested list or in the archive/latest directory belonging to it, it will be picked up by the next flush_digests and included up front to the actual digest under the heading "Administrivia". The archive/latest/digest.admin file digested list will be automatically removed after the digest has been pushed out. The digest.admin file in the main directory of the digested list will not be removed and is included in every digest. How can I add a short message file to the top of all of the mailing list messages? Uncomment the line "RC_LOCAL_SUBMIT_20 = rc.local.s20" from your rc.custom file, and add the following to your rc.local.s20 file: # # Adding a disclaimer in front of every mail: # :0 fhw | cat - header.txt You will also need to create a file called header.txt, which contains the text to add to the message (this file can be empty though, so you can create the files, but only fill them in when you need to add something) How can I add a short message file to the bottom of all of the mailing list messages? Uncomment the line "RC_LOCAL_SUBMIT_20 = rc.local.s20" from your rc.custom file, and add the following to your rc.local.s20 file: # # Appending a disclaimer to every outgoing mail: # :0 fbw | cat - footer.txt You will also need to create a file called footer.txt, which contains the text to add to the message (this file can be empty though, so you can create the files, but only fill them in when you need to add something) How can I keep the automatically added messages from multiplying when people quote them all the time? A small refinement here: if you add something like this: # # Appending a disclaimer to every outgoing mail: # :0 fbBw * ! to unsubscribe | cat - footer.txt then (assuming that the phrase "to unsubscribe" appears in your footer.txt file), the footer won't be repeated if some bozo list member quotes an entire message without trimming the footer. (Answer submitted by Doug Landauer) Is there an easy way to remove duplicates from the dist file? This script was contributed to the SmartList mailing list by mark david mcCreary, you can run this from your list directory (where the dist file is located), and it will remove the duplicates and sort the entries that appear below the "(Only addresses below this line can be automatically removed)" line. #! /bin/sh : # # rc.dedup.list # # mdm 11/5/97 borrow code from David W. Tamkin, with additional # suggestions from Martin Konold and Hal Wine # # # This script will sort and remove duplicates from a Smartlist # distribution file. Smartlist dist files contain a comment line # that looks like this # # (Only addresses below this line can be automatically removed) # # Addresses above and including this line will not be sorted. # lockfile=lockfile # /usr/bin/lockfile cat=cat # /bin/cat rm=rm # /bin/rm sed=sed # /bin/sed # create lock file to discourage smartlist running a job $lockfile -10 -l3600 -r11 -s30 rc.lock $sed -e "1,/(Only addresses below this line can be automatically removed)/{ ;w slabove.$$ ;d; } " dist | sort -fu -o slbelow.$$ $cat sl?????.$$ > dist $rm -f sl?????.$$ $rm -rf rc.lock Where can I get more information about SmartList? The FAQ is available in html and text format at http://www.hartzler.net/smartlist You can look at the history of smartlist by going to the SmartList Archive http://www.cnr.berkeley.edu/~casterln/smartlist-arc/maillist.php |