Majordomo Quick Reference file (for version 1.94.4) See also http://www.greatcircle.com/majordomo/ Contents: 1. Commands for ordinary users 2. List owner's commands 3. Creating a new list ___________________________________________________________________________ 1. MAJORDOMO COMMAND SUMMARY FOR ADVANCED USERS In the description below items contained in []'s are optional. When providing the item, do not include the []'s around it. Items in angle brackets, such as
, are meta-symbols that should be replaced by appropriate text without the angle brackets. It understands the following commands: subscribe [
] Subscribe yourself (or
if specified) to the named . unsubscribe [
] Unsubscribe yourself (or
if specified) from the named . "unsubscribe *" will remove you (or
) from all lists. This _may not_ work if you have subscribed using multiple addresses. get Get a file related to . index Return an index of files you can "get" for . which [
] Find out which lists you (or
if specified) are on. who Find out who is on the named . info Retrieve the general introductory information for the named . intro Retrieve the introductory message sent to new users. Non-subscribers may not be able to retrieve this. lists Show the lists served by this Majordomo server. help Retrieve this message. end Stop processing commands (useful if your mailer adds a signature). Commands should be sent in the body of an email message to "Majordomo@domain.org". Multiple commands can be processed provided each occurs on a separate line. Commands in the "Subject:" line are NOT processed. If you have any questions or problems, please contact "Majordomo-Owner@domain.org". ___________________________________________________________________________ 2. The "undocumented" commands for use by list owners are: approve {subscribe|unsubscribe} [
] This is so that you can approve subscription or unsubscription actions that need approval by the list owner. Note that this is just a standard "subscribe" or "unsubscribe" command prefixed with "approve " (where you substitute the password for your list, which is listed above, for ""). approve who This allows you to get the list of addresses for your anonymous list. Without the password, even the list owner can not see who is on the list. passwd This is so you can change the password for your list, if you desire. newintro This is so that you can replace the information file that people get when they do "intro " or "subscribe ". It reads everything after the "newintro" command to end-of-message or the word "EOF" on a line by itself as the new intro for the list. newinfo This replaces the information file that people get when they do "info ". (This file is also sent by "subscribe " if the intro file doesn't exist.) This reads everything after the "newinfo" command to end-of-message or the word "EOF" on a line by itself as the new info for the list. config Retrieves a self-documenting configuration file for the list . The can be the password contained in the file .passwd or the admin_password in the configuration file. newconfig Validates and installs a new configuration file. It reads everything after the "newconfig" command to end-of-message or the word "EOF" on a line by itself as the new info for the list. The config file is expected to be a complete config file as returned by "config". Incremental changing of the config file is not yet supported. As soon as the config file is validated and installed its settings are available for use. This is useful to remember if you have multiple commands in your mail message since they will be subject to the settings of the new config file. If there is an error in the config file (incorrect value...), the config file will not be accepted and the error message identifying the problem line(s) will be returned to the sender. Note that only the error messages are returned to the sender not the entire config file, so it would be a good idea to keep a copy of your outgoing email message. writeconfig Write a new config file in standard form. Writeconfig forces a rewrite of the config file with all default values in place (or current values if the config file already exists). It is useful to use after an upgrade of majordomo since it will add the new keywords for people to change. It also updates the documentation in the file if that has changed. mkdigest mkdigest Generate a digest immediately without waiting to reach the maxlength given in the config file. The first form will cause the digest to be sent to an alias found by appending "-outgoing" to the digest list name. Because this can be a security concern, the second form allows specification of the name of the alias that the outgoing digest will be sent to. ___________________________________________________________________________ 3. To create a list: 1) Create an empty file called in $listdir, mode 664; change owner to majordomo:majordomo. (This file will contain email addresses of list members, delimited by a newline.) 2) Create a file called ".info" in $listdir, mode 664, with the initial introductory info for the list in it. 3) Create the appropriate entries for the list in your Sendmail aliases file (/etc/aliases or a separate majordomo.aliases file.) See options at the end of the section. The aliases entries for a list with archiving but no digest are (use listname instead of "TEST" and your username for "YOU"): TEST:"|/usr/lib/majordomo/wrapper resend -l TEST -h www-kiv.zcu.cz TEST-outgoing" TEST-outgoing: :include:/var/lib/majordomo/lists/TEST, "| /usr/lib/majordomo/wrapper archive2.pl -a -m -f /var/lib/majordomo/archives/TEST/TEST.archive" # archive produces a monthly archive with the -m flag. owner-TEST: YOU, owner-TEST-outgoing: owner-TEST TEST-request: "|/usr/lib/majordomo/wrapper request-answer TEST" TEST-approval: YOU 4) Copy the template configuration file into ".config" and make proper changes to create the initial configuration. 5) Create (from a template) a file called ".intro" with the introductory message sent to a newly subscribed users. 6) Put your address into the file and try if everything works (namely send, reply, info, unsubscribe, subscribe). 7) Put all initial email addresses into the file. Off we go! The options for the Sendmail aliases file are:- a) In a simple case, each list requires several aliases. For an example list called 'test', these aliases are required: test The list alias itself owner-test The owner of the list (who should get bounces) test-request The address for administrative requests. test-approval The person who approves postings to the list (for moderated lists as well as unmoderated ones) These would look like this: test: :include:/var/lib/majordomo/lists/test owner-test: you, test-request: "|/usr/lib/majordomo/wrapper request-answer test" test-approval: you b) It's more likely that the outgoing messages to the list will be passed through "resend" to catch Majordomo commands, as well as give other useful features. A typical set of aliases without anything fancy, such as archiving or digesting, would look like this: test: "|/usr/lib/majordomo/wrapper resend -l test test-list" test-list: :include:/var/lib/majordomo/lists/test owner-test: you, test-owner: you test-request: "|/usr/lib/majordomo/wrapper majordomo -l test" c) Finally, a more complete set of aliases that provides digestification, archiving, and header manipulation would look like: test:"|/usr/lib/majordomo/wrapper resend -l test -h www-kiv.zcu.cz test-outgoing" test-digest:test # I put the digest and archive programs on the outgoing list so that # messages bounced by resend don't end up in the digest or archive # unless I send them through resend explicitly. test-outgoing: :include:/usr/local/Lists/test, "| /usr/lib/majordomo/wrapper digest -r -C -l test-digest test-digest-outgoing", "| /usr/lib/majordomo/wrapper archive2.pl -a -m -f /usr/local/mail/archive/test/test.archive" # archive produces a monthly archive with the -m flag. test-digest-outgoing::include:/usr/local/Lists/test-digest owner-test:you, owner-test-outgoing:owner-test # note that the "-digest" and "-digest-outgoing" suffixes # are required to allow the majordomo mkdigest command, and the # config code to work properly. owner-test-digest:owner-test owner-test-digest-outgoing:owner-test test-request: "|/usr/lib/majordomo/wrapper request-answer test" test-digest-request: "|/usr/lib/majordomo/wrapper request-answer test-digest" test-approval:you, test-digest-approval:test-approval ___ EOF ___________________________________________________________________