% help d-list Starting help (Version 7.2, ATK 5.2.0); please wait... Starting ezprint (Version 7.0, ATK 5.2.0); please wait... Sending Andrew mail to groups of readers Ways of sending messages to more than one reader. The Andrew message system provides four ways to send mail to several addresses at once. They are presented here in order of increasing difficulty. You can use this index to assess which method(s) might be best for you: If you send mail to groups infrequently, you may simply want to store the addresses of the group members in a file and insert that file at the To: prompt of the mail-sending programs. See Section 1 below. If you send to a few, small, local groups regularly, you may want to set up some aliases so that the addresses are put into the To: prompt by the mail program. See Section 2 below. If you send to and receive from larger groups that contain non-local users (like Internet or BITNET users), you may want to establish an unpublished distribution list and combine it with aliases for extra convenience. See Section 3 below. If you want to invite wide, multi-site participation in a mail group, you can apply to have your distribution list published in the White Pages index. See Section 4 below. If you are using distribution lists to send to more than one large group, you can examine some advanced examples to learn about error routing in Andrew distribution lists. See Section 5 below. If you want to send formatted mail to others or forward it to yourself, see section 6 below. 1. Inserting a file at the to: or cc: prompt One common way of sending mail to several addresses at once is to store the addresses in a file (each address separated by a comma) and then inserting that file into the To: or CC: prompt when preparing to send a message. You can use insert file on the "Other" menus to insert the contents of the file beside the appropriate header. Be sure that you place the cursor beside the To: or CC: prompt before choosing Insert File; otherwise the contents of the file will probably go into the message body. When you insert a file at a header, SendMessage will turn any newlines in the file into spaces, which means that you can store the list of names one to a line in the mailing list file (each line ending with a comma) and they will come out fine when inserted at the header. 2. mail aliases for groups Note: if you are not familiar with the term "alias" and how to do mail aliases on Andrew, see the help document on ms-aliases for more information. If you send to the same group of local users on a regular basis, you can use an .AMS_aliases file in your home directory to establish an alias for each group. Suppose that you and several friends are working on a project together. Those friends' user IDs are ksEs, efHu, and fbRi. The first two have Andrew accounts, while the last, fbRi, has an account in the Computer Science department. You can add a line like this one to your .AMS_aliases file to create the alias "group" for the addresses of your three friends: group ksEs+, efHu+, fbRi@cs.cmu.edu From then on, you could use the address "group" at the To or CC prompt and the mail would be sent to the addresses that are associated with "group" in .AMS_aliases. See the ms-aliases help document for things to be careful of when using aliases. An alias in .AMS_aliases only works for the user in whose directory the .AMS_aliases file appears. Therefore, the address "group" established in your .AMS_aliases file would only work for you. Your friends would have to add a corresponding alias in their own .AMS_aliases files in order for the address "group" to work for them. 3. distribution lists Distribution lists are created by placing a list of mail recipients in a file called a "distribution list." It is conventional to name distribution list files with a ".dl" extension. In general, a different distribution list is needed for each group to whom you want to send mail. The distribution list contains at least two types of information: 1) the names of the people on the list and 2) information about where errors in the distribution list should be sent (usually, to the person or persons who can fix the distribution list). Distribution lists cannot contain any mail aliases that you may have created. Instead, names included in the list must represent actual userid's as recognized by the mailing system. However, the dlc program provides a way for a user to maintain a prototype distribution lists with aliases, which the dlc program "compiles" into a "true" distribution list usable by the delivery system. Any user at any site can send to a distribution list if he or she 1) can send mail successfully to an Andrew user and 2) uses the proper notation for sending the mail, as explained below. setting up a distribution list A short example Users often have more than one distribution list, so it is common for a user to create a subdirectory in his or her home directory called, for example, "dl", "dists", or "dlists." In this example, we assume that user Josephine Biafra (jbLw) has a subdirectory called "dlists" in which she places her distribution lists. She decides to create a distribution list or "dlist" for a group of colleagues who are interested in special education. Her distribution list file is called "specialed.dl" and looks like this: ; Errors to Josephine's mailbox Distribution-errors-to: jbLw+@andrew.cmu.edu ; Distribution list for special ed colleagues Distribution-content: eeKr+@andrew.cmu.edu, banana@fruitsalad.stanford.edu, hgCd+@andrew.cmu.edu (Hal's new addrs), jello@cs.cmu.edu Comments and blank lines There are two types of comments possible in distribution lists: semicolons and parentheses. The first and fourth lines in Josephine's file are semicolon comments; they explain what the other lines do and must be at the beginning of a line. (You cannot insert a semicolon in the middle of a line to start a comment.) Blank lines, such as line 3 above, can be inserted anywhere in the distribution list file to improve readability. Blank lines and semicolon comment lines are ignored by the Message System when it uses the distribution list. The eighth line above has a comment in parentheses after an address. This is an acceptable form of commenting, although you still need to follow the address line with a comma. Distribution errors to: The second line in Josephine's file begins with the words "Distribution-errors-to:" (note the colon at the end). This line has to come before the "Distribution- content:" and tells the Message System to return to her any error notices generated by the addresses in the dlist. An error notice is generated when mail sent to an address cannot be delivered there. Error notices would indicate that one of the addresses in Josephine's distribution list had become invalid (for example, a recipient's account may no longer be active). By having returned mail sent back to herself, Josephine ensures that she will be notified so that she can update the dlist. The presence of the "Distribution-errors-to" line also avoids another problem. Suppose another user on the dlist, such as eeKr, sent mail to the dlist and generated an error notice because one of the pieces of mail was undeliverable. Ordinarily, the error notice would go back to eeKr, because he sent the mail. However, because the undeliverable address is on Josephine's dlist, the error notice goes back to Josephine, the person who maintains the distribution list. The "Distribution-errors-to" line ensures that no matter who uses Josephine's dlist, any error notices go back to Josephine, who can then correct the list. If no "distribution-errors-to" line appears in a dlist, the Message System will form an address from the name of the owner of the dlist file (usually, the owner is the person who created the file). For example, if Josephine did not include a "distribution-errors-to" line in her dlist, the address to which error notices are sent would be "jbLw+@andrew.cmu.edu". In Josephine's case the end effect is the same with or without her "distribution-errors-to" line as long as she remains the owner of the file. However, there are conditions under which ownership of the dlist file can change. For example, some text editors cause the owner to become the person who last edited the file. If you omit the "distribution- errors-to" line from your dlist, you should check the dlist file periodically to see that you are still the owner (by doing an "ls -l" of the file), particularly if more than one person is maintaining the dlist. In addition, other users may want to do more complex routings of error notices as described in the section on "Advanced examples." In those cases, an automatically-formed address would not necessarily correspond to what the user would have specified in the "distribution-errors-to" line. Distribution-content The fifth line in Josephine's file begins with "Distribution-content:" (note the colon at the end and that "content" is singular) and signals the beginning of the list of addresses that are part of the special education distribution list. The addresses must be separated by commas. If an address appears on a line by itself (as in the example above), a comma should appear at the end of the line. Addresses may also be placed one after the other instead of on separate lines as long as they are separated by commas, as in this example: Distribution-content: eeKr@andrew.cmu.edu, banana@fruitsalad.stanford.edu, hgCd+@andrew.cmu.edu, jello@cs.cmu.edu Placing each address on a separate line makes the distribution list easier to correct and maintain. Keep in mind that mail aliases cannot be included in distribution lists, unless you are using dlc to maintain them. Capitalization in distribution lists The tags that begin with "distribution" in dlists, such as "Distribution-content" and "Distribution-errors", can be capitalized in any way without disrupting mail service. However, what follows the colon after the tag is usually a mail address and should be typed exactly as it would appear in a message-sending window. Protections for distribution lists The directory that contains a distribution list and any directories above it must allow any user of Andrew to read and look up the files contained there. In the case of Josephine's dlist, for example, her home directory protections would need to be system: anyuser:rl jbLw: rliwdka The protections for her "dlists" directory would be the same system: anyuser:rl jbLw: rliwdka Giving system:anyuser read and look up rights to the directory where the dlist is stored allows the people on the dlist to see who else is on the list. If you want people to be able to send to your dlist, but NOT see who else is on the list, you can use a distribution list within a distribution list. To do so, you will need to create a directory for the one dlist, which gives system:anyuser read and look up rights, and then create a subdirectory under that which gives postman: read and lookup rights. To illustrate this, assume that Josephine wants to create a dlist called "jerrys-kids" that people can send messages to, but she doesn't want anyone to be able to see everyone who is on the list. So, Josephine would create a dlist, called "jerrys-kids" and then direct the Distribution-content: to another dlist, contained in a subdirectory called "private", which contains a dlist called, again, "jerrys-kids", which lists the addresses of those on the list. In her "dlists" directory then, she creates the "jerrys-kids" dlist which looks like: ; Distribution list of jerrys-kids members Distribution-content: +dist+~jbLw/dlists/private/jerrys-kids The protections on her ~jbLw/dlists directory are: system: anyuser:rl jbLw: rliwdka She would then move to the private subdirectory and create another dlist called jerrys-kids--in this dlist, she would list the addresses of those on the list, as she did in our previous examples. The protections on her ~jbLw/dlists/private directory are: postman:rl jbLw: rliwdka Note: If system:anyuser does not have access to the dlist directory, you must give postman read and look up rights so that the mail can be delivered correctly. Using non-local addresses in distribution lists Some sites will not accept mail sent via a distribution list because they do not handle the full range of mail protocols. The only way to tell whether a given site will accept mail via distribution lists is to try it. If you receive a rejection notice from a site, you will know that you need to remove that address from your distribution list and send mail to that address directly in the future. If too many people reply to your distribution list Sometimes, if you use a large distribution list and request that the people on the list send you a reply, their reply function will send mail back to the distribution list, instead of to you. When that happens, everyone on the list will see the replies from everyone else, giving many people lots of pieces of unwanted mail. To stop this from occurring, simply move the distribution list to another location in the file system. sending mail with distribution lists. Since Josephine has created her distribution list, she is ready to send mail using it. To do so, she types this line after the To: prompt in her mail-sending program (SendMessage, EzMail or MacMail): +dist+~jbLw/dlists/specialed.dl The "+dist+" signals to the Message System that what follows is a distribution list. What follows "+dist+" is a pathname to the distribution list. If you are using an Andrew Message System program (SendMessage, EzMail or MacMail), you can use the tilde (~) followed by a user id to abbreviate the path to your home directory (as in ~jbLw). The program in /usr/ucb/mail will not accept the tilde as an abbreviation, so you must type the full pathname, as in the following: +dist+/afs/andrew.cmu.edu/usr7/jbLw/dlists/specialed.dl Distribution list addresses such as the one shown above can be used at the CC: prompt in the mail-sending programs, or any other prompt that takes a mailing address. In addition, distribution list addresses can be intermingled with other kinds of addresses. Josephine might decide that one particular message about special education is of interest to Andrew user dtYv, who is not part of the distribution list. The To line of her message could look like this: To: +dist+~jbLw/dlists/specialed.dl, dtYv+ Note that the two addresses are separated by a comma, which is the standard way of separating multiple addresses. Non-local users can use the same kind of addresses with an "@andrew.cmu.edu" attached, as in this example: To: +dist+~jbLw/dlists/specialed.dl@andrew.cmu.edu, biafra@psy.cmu.edu combining distribution lists and mail aliases. Perhaps the most convenient way to use dlists is to establish the dlist files and then use the .AMS_aliases file in your home directory to create aliases for them. This procedure allows you to use a dlist without having to type the full "+dist+" notation. For example, having established her special education mailing list, Josephine might create a .AMS_aliases file containing the line special-ed +dist+~jbLw/dlists/specialed.dl From then on, she could use the address "special-ed" to send messages to the special ed dlist. But, since an alias in .AMS_aliases only works for the user in whose directory the .AMS_aliases file appears, the "special- ed" address in Josephine's .AMS_aliases file would only work for Josephine. Other users would have to add the line shown above to their .AMS_aliases file in order to be able to use "special-ed" as an address successfully. Keep in mind that although mail aliases can be defined for dlists, the opposite is not true. That is, dlists themselves cannot contain a mail alias as a valid address (unless you are using the dlc program to maintain your dlists). 4. published distribution lists There are two types of distribution lists: published and unpublished. The main difference between published and unpublished distribution lists is that public distribution lists have an entry in the White Pages index. This means that people who send to the published list do not have to use the full distribution list notation when sending mail, which makes published distribution lists more convenient for large, public, multi-site lists. It is like providing everyone an alias for the list. If a distribution list is formed that has implications for a wider community than Andrew users, such as research issues that might be appropriate for sharing with researchers at other sites or with the general Andrew community, then distribution lists can be published. For example, you might be part of a group that needed to discuss problems and issues about Andrew. Suppose you wanted to invite any interested computer user at any site to participate in the discussion. You might apply to have your distribution list published so that any user could send to the entire group easily. To do that, send mail to "Postmaster@andrew.cmu.edu". Include in your mail to Postmaster 1) a brief rationale for the published dlist 2) a suggested name for the list 3) the location of the file and 4) an address to which people should send requests for changes to the list (additions, deletions, address changes). If, for instance, you were to want the list to be published under the name "special-ed", the Postmaster will also establish the name "special-ed-request" to which people can mail their change requests. This address should be that of the maintainer of the dlist. A published distribution list is installed into the White Pages and supported by the Andrew Message System. The White Pages thinks of a published distribution list as a kind of user, one that has a name and a mailing address. To use a published dlist, users need only supply the name of the dlist, not the full "+dist+" address. (You can still use the "+dist+" address if you like.) The name of a published dlist does not correspond to its filename; instead, names are associated with published dlists that reflect in some way the group associated with each dlist. For example, suppose that Josephine's distribution list became extremely active, with many non-Andrew addressees and a high volume of mail. She might correspond with the Postmaster to have her dlist published. Her dlist might be installed in the White Pages as the "special-ed" distribution list. So anyone who wanted to send to the special ed distribution list could use either +dist+~jbLw/dlists/specialed.dl@andrew.cmu.edu or special-ed@andrew.cmu.edu as an address at the To: or CC: prompts. (Note that this is different from using .AMS_aliases to create an alias for the dlist. Using the .AMS_aliases described in the previous section, only Josephine could use the address "special-ed" successfully. With her distribution list published and installed in the White Pages, any user at any site can use the address "special-ed@andrew.cmu.edu" successfully.) Addresses for published distribution lists, like those of unpublished ones, can be intermingled with other kinds of addresses. finding out who receives mailings from a published distribution list. To find out who receives mail from a distribution list, you need to look at the dlist file and examine the recipients listed there. For an unpublished dlist, looking at the dlist file is straightforward since the full path to the file is given in the "+dist+" notation. You can simply try to list the contents of the file. For example, the dlist file for the address +dist+~jbLw/dlists/specialed.dl@andrew.cmu.edu is ~jbLw/dlists/specialed.dl You could try to edit "specialed.dl" in order to see who is on the distribution list. You might not be able to edit the file, however, because the maintainer of the list (in this case, jbLw) might not choose to make the dlist file publicly readable. If you are denied permission to read the dlist, you cannot find out who is on it. The decision about whether to allow users to examine a dlist file is up to the maintainer of the dlist. Finding out who receives mailings from a published distribution list is a little more complicated because you may not always see the full path to the dlist file in the address. The address for a published dlist might not involve the full "+dist+" notation, as in the example of "special-ed@andrew.cmu.edu" given above. To find out where the dlist file is for a published distribution list, you can use the finger program on Andrew with the name of the distribution list. For example, to find out where the dlist file for "special-ed@andrew.cmu.edu" is located, you could give the command finger special-ed If finger finds a dlist corresponding to the name you supplied, it will provide both the mailing address and the dlist in a format like this: Login name: special-ed In real life: Special-Ed Directory: Address mail to: special-ed+@andrew.cmu.edu Mail is forwarded to distribution list /afs/andrew.cmu.edu/usr7/jbLw/specialed.dl No Plan The mail-forwarding address ("Mail is forwarded to") shows the path to the dlist file. Once you have found the path, you can try to edit the dlist file to see who is listed on it, just as you would for an unpublished dlist. Again, there is no guarantee that the maintainer of the list will choose to make the dlist file publicly readable. 5. advanced example of distribution lists routing error notices back to the sender of the message If you wish to have error notices go back to the sender of a piece of mail rather than to you (the owner of the distribution list), you can do that with the following line Distribution-errors-to-originator: yes Due to a protocol limitation (not specific to Andrew), there is no way to send error notices both to the sender and to a list maintainer. routing error notices to more than one address. You can only specify one address in the "Distribution-errors- to:" line. However, if you wish to route error notices to more than one address (because, for example, there are multiple maintainers for the dlist in question), you can give a distribution list in the "Distribution- errors-to:" line, like this: Distribution-errors-to: +dist+~jbLw/dlists/spec-ed- errors.dl PLEASE be careful with this feature; unless you use it carefully, you may find yourself routing returned messages back and forth from one distribution list to another. Ignoring error notices. if you do not want to know about errors in the distribution list, you can choose to have error notices thrown away altogether instead of having them sent to yourself or to the originator of the mail by giving two angle brackets as the "errors" address, like this: Distribution-errors-to: <> Note that there is no space between the two angle brackets. You might choose to ignore error notices in a particular dlist file if that dlist is used in the "Distribution-errors-to" line of another dlist file. Suppose, for example, that you and three friends are maintaining a large published distribution list. You want error notices from the large dlist to go to all four of you, not to any one individual, so you create a maintainer's dlist containing each maintainer's address and then put the maintainer's dlist into the "distribution-errors-to" line of the large dlist. You might then choose to ignore error notices in the maintainer's dlist, first because it may help prevent error notices from bouncing from the large dlist to the maintainer's dlist and back again, and second because even if there is an error in one of the four maintainer addresses, the other three will get the error notice, so the large dlist can still be maintained. a long example illustrating many dlist features. Suppose you are the manager of the BOFORO project at Carnegie Mellon. You expect the BOFORO project to go on indefinitely, so you do not want to route errors to any particular person but rather to a dlist that would ostensibly contain the names of maintainers who work for you. You also want to lay out the dlist so that you can make any needed changes to subgroups in the list quickly and easily. Here, using a combination of blank lines and comments, is what you might do: ; Distribution list for the BOFORO project ; Distribution errors to the boforo-errors mailbox Distribution-errors-to: +dist+/afs/andrew.cmu.edu/usr8/boforo/dlists/boforo- errors.dl Distribution-content: ; Members working in Building C edFl+@andrew.cmu.edu, canteloupe@veggie.cmu.edu, ; Members working in Hall Atwater building joe.boss@psy.cmu.edu, ryEr+@andrew.cmu.edu, ; Member(s) at a remote site honeydew@melon.cs.dod.edu, ; Members at a remote site who are part of an Internet dlist boforo-remote-dist@berries.li.ukent.edu 6. sending formatted messages Mail sent with the Messages program can be multi-media; it can include rasters, graphic objects, and, in general, any ATK (Andrew Toolkit) inset. Even plain text mail generated by Messages is considered "formatted" because it is written is such a way that it can be dynamically re-formatted in windows of arbitrary width and height. Ordinarily, mail leaving Andrew is stripped of the information required to do special formatting. However, mail can be tagged with a header, If-Type- Unsupported:, so that this stripping does not take place in the usual way. There are three values that can appear after the If-Type-Unsupported: header. alter -- This means that when the program sending a formatted piece of mail cannot be sure that the recipient will understand the formatting, the mail sending program should alter the mail content, stripping out the formatting to make it understandable to the recipient. Thus, when mail is sent off-site (off-Andrew), the delivery system does not know that any recipient will understand ATK formatting, and it strips out all the formatting before sending the mail. send -- This means that the delivery system should not strip the formatting, even if it is a unsure that the recipient will understand it. return -- This means that the delivery system should return (reject) mail to the sender rather than strip formatting. Users of dlists can affect the treatment of formatted messages by the delivery system by placing a line in their distribution list that says Distribution-If-Type-Unsupported: value where value is send, alter or return. Formatted messages sent via such a list may then be changed by the delivery system so that the value of the If-Type- Unsupported: header in the message corresponds to the Distribution-If-Type-Unsupported value. Thus, you could make a distribution list of some non-local mail recipients who the you knew could receive ATK-formatted mail. Including a Distribution-If-Type-Unsupported: send line in the header of the dlist would cause all ATK messages sent via that dlist to retain their formatting, rather than having them removed in transit. The Distribution-If-Type-Unsupported header in a dlist has no effect on unformatted mail. You can also use this mechanism to have mail that is forwarded from your Andrew account retain its formatting information. (Forwarded mail is usually stripped of formatting information.) To do this, you would place a line in your .forward file pointing to a special distribution list that has just your forwarding address in the contents. So, if jbRo has mail forwarded to a Computer Science account, the file ~jbRo/.forward would contain: +dist+/afs/andrew.cmu.edu/usr7/jbRo/forwardall.dl@andrew.cmu.edu The file ~jbRo/forwardall.dl would contain the distribution list: ; This distribution list should cause formatted messages to be sent verbatim to Jello Biafra in the Computer Science Department. ; ; Send all error notices back to the originator. Distribution-errors-to-originator: yes ; This header will cause formatted messages to be sent through here verbatim. Distribution-If-Type-Unsupported: send Distribution-content: jello@cs.cmu.edu related tools If you are using the Andrew Help system under X windows, click with the left mouse button on any of the boxed words below to see the help document for that particular topic. If you instead click with the right mouse button, the new help topic will appear in a new window. The help file you were reading will remain visible. If you are not using the Andrew Help system under X windows, ask for help on any of the help topics listed below. ezmail forward macmail mail messages ms-aliases dlc sendmessage white-pages