BFMAIL is used to manage the distribution of meeting information to a large number of B-Factory collaborators. Mail received by BFMAIL will be re-distributed to people associated with one or more meeting codes (or list). The meeting code list is housed in an Oracle database and primarily maintained by the B-Factory staff.
All communications to BFMAIL are done via e-mail, or, if you are on the SLAC VM computer then some commands may be accomplished via the Tell command.
Mail should be sent to BFMAIL@SLAC.Stanford.EDU.
There are basically two types of commands.
When BFMAIL receives it will first look for a line which begins with the word "Distribution:" followed by one or more meeting codes. If a distribution list is found then all of the text following that line will be re-distributed and a conformation notice sent to the requestor.
If a distribution list can not be found then BFMAIL will attempt to parse the first line of text following the mail header. If a command word is found, then it will attempt to process the command and return the results to the requestor. Multiple commands may be issued on subsequent lines. Processing will stop when it finds a null line, end of file, or the "end" command.
The commands that BFMAIL understands are:
[code].. The text following this command will be re-distributed to everyone subscribed to the code(s) listed. Note that the command must begin in column 1 and within the first 5 lines of body of the mail. List [code [code]..] Will return a list of the current codes and code titles available. Some codes have restricted access. Examples: list list test db list comp-* Who
[code].. Will return a list of everyone who is currently subscribed to the code(s) listed. Examples: who test who test, db who comp-* Which [address] | [name] Will return a list of the codes which the person who owns the given address is associated with. If the address is not given then it will default to the requestor address. The "address" may use standard SQL wildcards. The * has the same meaning as the %. Examples: which which achan@slacvm which achan@* which george crane If 'name' is used then it can be of the form 'last, first' or 'first last'. Note that 'name' is assumed if the string does NOT have an @ within it, otherwise it is considered a network address. The wildcard character will automatically be added to the first name if given. Locate
[, first] | Will return a list of the people which match the given last name. The current home institution name and e-mail address(s) will be returned. The name given may use standard SQL wildcards. The * has the same meaning as % in this case. See note above about names. Examples: locate crane locate zism* Phonelist
[code].. Will return a list of everyone who is currently subscribed to the code(s) listed in a phone book form. The home institution, phone number, and e-mail address(s) will be included for each person in the codes given. The output is the same as the LOCATE command. Examples: phonelist test phonelist test, db phonelist comp-* Mailstop
[code].. Will return a mailstop distribution list for all people subscribed on the code(s) given. Examples: mailstop test mailstop test, db mailstop comp-* Help Retrieve help message, explaining these commands. This file. Subscribe
[address | name] Used to subscribe yourself (or address, if specified) to code. Note that you must be a code leader to add someone else. See note above (under which) about 'name' option. Examples: subscribe test subscribe test achan@slacvm subscribe test george crane Unsubscribe
[address | name] Used to unsubscribe yourself (or address, if specified) to a code. Note that you must be a code leader to remove someone else. See note above (under which) about 'name' option. Examples: unsubscribe test unsubscribe test achan@slacvm unsubscribe test crane, g End Used to indicate the end of a command or series of commands. Helps to protect against automatic signature lines being processed as commands. Processing will also stop when it finds a null line or end of file. ---- Possible FUTURE improvements ------------------------------ Distribution[:]
[,code] | WHERE sql_where_statement Remove the colon requirement on the "distribution" command. Adds the WHERE clause option. Who
[code] | WHERE sql_where_statement Adds the WHERE clause option. Multiple line commands may be terminated with a semi-colon (;), blank line or end of file. Examples: ============================================================== To: .... From: .... Subject: ... Distribution: CAL This is a message for the CAL code meeting group. All lines following the "distribution:" line will be re-distributed to everone subscribed to the CAL code. A list of subscribers names will be appended to the mail item when sent unless it is a very large group. ============================================================== To: .... From: .... Subject: ... list ============================================================== To: .... From: .... Subject: ... who test which end