home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / weasel09.zip / weasel.INF (.txt) < prev   
OS/2 Help File  |  1999-11-11  |  68KB  |  1,958 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. Weasel is a combined POP3 and SMTP daemon (Post Office server) for OS/2. The 
  5. POP3 and SMTP sections can be enabled or disabled separately. It is distributed 
  6. as optional shareware. 
  7.  
  8. This documentation is for version 0.90. 
  9.  
  10. Disclaimer of Warranty 
  11.  
  12.       This Product is provided "as-is", without warranty of any kind, either 
  13.       expressed or implied, including, but not limited to, the implied 
  14.       warranties of merchantability and fitness for a particular purpose.  The 
  15.       entire risk as to the quality and performance of the Product is with you. 
  16.       Should the Product prove defective, the full cost of repair, servicing, 
  17.       or correction lies with you. 
  18.  
  19.  The author of Weasel is Peter Moylan, peter@ee.newcastle.edu.au. 
  20.  
  21.  The latest version of Weasel is normally kept at 
  22.  ftp://eepjm.newcastle.edu.au/software. Information about other software on 
  23.  this site may be found at http://eepjm.newcastle.edu.au/os2. 
  24.  
  25.  Getting information about new versions 
  26.  
  27.  You can, if you wish, send an e-mail to peter@ee.newcastle.edu.au and ask to 
  28.  be put on the list of people who receive e-mail notification of new releases 
  29.  of my software.  This mailing list is not used for any other purposes, and the 
  30.  addresses will not be given to anyone else. 
  31.  
  32.  
  33. ΓòÉΓòÉΓòÉ 2. Registration ΓòÉΓòÉΓòÉ
  34.  
  35.  Registration 
  36.  
  37. This software is "optional shareware".  What this means is that you decide 
  38. whether you want to register as a paid owner of the software. The software is 
  39. not crippled in any way, and I will continue to provide support and free 
  40. releases of new versions to all users, whether or not they are registered, for 
  41. at least the short-term future. 
  42.  
  43. If you decide that this software is worth supporting, you have the following 
  44. payment options. 
  45.  
  46. Payment through BMT Micro 
  47.  
  48. This is likely to be the most convenient method for most people, because BMT 
  49. Micro has a number of different payment methods, including credit cards.  It 
  50. also has agents in several countries.  For full details, see the file 
  51. register.bmt included in the Weasel distribution. The price is $20 (US 
  52. dollars). 
  53.  
  54. From Europe 
  55.  
  56. This works best for people living in the European Union.  (Warning: check first 
  57. whether your bank is going to charge you transfer fees. They shouldn't, but 
  58. I've heard of exceptions.)  You have two options: 
  59.  
  60.      Transfer 750 Belgian francs to the following bank account 
  61.  
  62.            Marion Gevers 
  63.            Account number 220-0586389-60 
  64.            G╨Æn╨Ærale de Banque (Belgium) 
  65.            Mention: Weasel 
  66.  
  67.       and send an e-mail to peter@ee.newcastle.edu.au to confirm that you've 
  68.       done it. 
  69.  
  70.      Send a Eurocheque for 750 Belgian francs to 
  71.  
  72.            Peter Moylan 
  73.            91 Harriet Street 
  74.            Waratah, NSW 2298 
  75.            Australia 
  76.  
  77.  Payment directly to me in Australia 
  78.  
  79.  This is a more attractive option for people in Australia.  From other 
  80.  countries, it's not a good idea because of the bank charges on international 
  81.  transfers.  (Please don't send non-Australian currency to an Australian bank, 
  82.  because then I get hit with exorbitant bank fees.) You can do it in either of 
  83.  two ways. 
  84.  
  85.      Send a cheque, or equivalent, for $25 (Australian dollars) to 
  86.  
  87.            Peter Moylan 
  88.            91 Harriet Street 
  89.            Waratah, NSW 2298 
  90.            Australia 
  91.  
  92.      Transfer the amount of $25 (Australian dollars) to the following bank 
  93.       account. 
  94.  
  95.            Marion Gevers 
  96.            Account number (06 2831) 00626468 
  97.            Commonwealth Bank 
  98.            University of Newcastle, Australia 
  99.  
  100.  
  101. ΓòÉΓòÉΓòÉ 3. How e-mail is transported ΓòÉΓòÉΓòÉ
  102.  
  103. How e-mail is transported 
  104.  
  105. Although it is possible to send e-mail directly from one computer to another, a 
  106. more common arrangement is to go via a third machine, which we can call the 
  107. Post Office machine.  The advantage of such an arrangement is that the Post 
  108. Office machine is the only one that needs to be on-line all the time.  The 
  109. sender and receiver only need to go on-line when sending or collecting their 
  110. mail. 
  111.  
  112. Initially, the sender composes the message by using a program known as a User 
  113. Agent. (This is optional - it is possible to send mail without having a User 
  114. Agent - but most people like to have the high-level features, such as automatic 
  115. construction of mail headers, that are supplied as part of the User Agent.) The 
  116. default OS/2 User Agent is the program called Ultimail Lite, but of course 
  117. you're free to replace this by one of the alternatives sold by various 
  118. suppliers. 
  119.  
  120. When the mail is ready to be sent, a piece of software called an SMTP client is 
  121. used to send it. (SMTP stands for Simple Mail Transport Protocol.) This must 
  122. talk to an SMTP server on another machine. In the scenario we're considering 
  123. here, the other machine is the Post Office machine. 
  124.  
  125. The default OS/2 SMTP client is called "sendmail", and the default SMTP server 
  126. is also called sendmail. That is, the same program does either job, depending 
  127. on what parameters you give it when sendmail is started. Typically one copy of 
  128. sendmail is running all the time, acting as a server for incoming mail. Another 
  129. copy is started each time you want to send a piece of outgoing mail. 
  130.  
  131. The message received by the SMTP server remains stored on the disk of the Post 
  132. Office machine, until the recipient checks in to see whether any mail has 
  133. arrived. This is done with a POP client. (POP stands for Post Office Protocol.) 
  134. The Post Office machine must therefore be running both an SMTP server and a POP 
  135. server. 
  136.  
  137. This appears to add up to five different programs, but often their functions 
  138. are combined in various ways. For example, the POP and SMTP clients are very 
  139. often included as built-in parts of the User Agent program. In the case of 
  140. Weasel, I've put both servers (POP and SMTP) into the same program. This makes 
  141. it easier for the two servers to cooperate with each other.  It also means that 
  142. total memory usage is lower than if you ran separate POP and SMTP servers. 
  143.  
  144.  
  145. ΓòÉΓòÉΓòÉ 4. Server features ΓòÉΓòÉΓòÉ
  146.  
  147. Server features 
  148.  
  149. Weasel is a post office mail server based on the POP3 standard, known as RFC 
  150. 1939 or STD 53.  Weasel implements all features of the POP3 standard. 
  151.  
  152. Weasel also includes an SMTP server to receive the mail, and SMTP client 
  153. software to handle outgoing mail. The SMTP software is based on the standard 
  154. known as RFC 821.  If you wish, you can disable the built-in SMTP server and 
  155. use a separate SMTP server from another source. 
  156.  
  157. The POP3 subsystem 
  158.  
  159. The Weasel POP3 server, which is what clients contact to fetch their mail, is a 
  160. complete implementation of the POP3 standard, therefore it should be compatible 
  161. with any standard POP3 client. 
  162.  
  163. All clients are required to supply a username and password. (The username is 
  164. what comes before the '@' in that user's e-mail address.) Passwords are set by 
  165. a separate program called Setup, which is described later in this document. 
  166.  
  167. The SMTP subsystem 
  168.  
  169. The SMTP server is the part of the system that accepts incoming mail. The 
  170. Weasel SMTP is a stripped-down version that implements all of the required 
  171. commands in the standard, but not all the optional commands. The optional 
  172. extensions are not, in my opinion, needed by a small-to-medium-sized 
  173. mail-handling computer, and we cut out a lot of system overhead by deciding not 
  174. to include them. 
  175.  
  176. Mail relaying 
  177.  
  178. An e-mail address has the form user@domain, where 'user' is a username, and 
  179. 'domain' is either a machine name or something that will be mapped to a machine 
  180. name by a nameserver. If 'domain' is a domain for which the current machine is 
  181. supposed to be handling the mail, then we have mail for a local destination. 
  182. Obviously, every SMTP server must be able to handle this case. If 'user' is a 
  183. valid username on the current machine, the mail will be delivered; otherwise, 
  184. it will be rejected. 
  185.  
  186. Most SMTP servers will also accept mail for addresses on other machines. If the 
  187. server accepts such a non-local address, it accepts the mail and then forwards 
  188. it on towards its final destination. This is to allow for the case - which used 
  189. to be very common - where there is no direct mail path from the sender to the 
  190. final destination. In such a case the SMTP server is said to be acting as a 
  191. "relay host". 
  192.  
  193. Junk mailers love relay hosts. Sending out a million pieces of junk mail can be 
  194. expensive, because it can tie up your machine for hours. To avoid that 
  195. overhead, the people who send junk mail often choose to use another machine, 
  196. selected more or less randomly, as a relay host. (They can't use the same 
  197. machine every time, or they'd be caught.) The relay host is usually an innocent 
  198. victim in this case, but the owner of the relay host is often blamed for the 
  199. junk mail. Using a relay host also helps in disguising the original sender of 
  200. the mail. 
  201.  
  202. Because of this abuse, Weasel has strong restrictions on relaying.  It will 
  203. accept relay requests only in two cases: 
  204.  
  205.    1. when the destination domain is on a list of domains for which we agree to 
  206.       pass on mail; or 
  207.    2. when the host sending us the mail is on the list of "trusted hosts". 
  208.  
  209.  All other requests to pass mail on to another machine are rejected. 
  210.  
  211.  Case 1 above allows for the situation where your machine is a mail gateway for 
  212.  your organisation's local network. The purpose of case 2 is to let you give 
  213.  your POP users an outgoing mail service, in addition to the incoming mail 
  214.  service that they automatically have by virtue of being registered POP users. 
  215.  
  216.  How mail is stored 
  217.  
  218.  After an e-mail message is accepted by the SMTP server, but before it is 
  219.  picked up by a POP client, the message is stored as a file on the local disk. 
  220.  When setting up Weasel, you specify one directory to be used as the "mail 
  221.  root". This directory has one subdirectory for each user. Each message is 
  222.  stored as a file xxxxxxxx.MSG, where xxxxxxx is an internally-generated 
  223.  identifier. 
  224.  
  225.  Apart from the *.MSG files, a user's mail directory might contain a file 
  226.  called LOCK.!!!. This is created when a POP client starts to access the 
  227.  directory, and it is deleted when the POP session ends. While this file 
  228.  exists, no other POP client is allowed to get at the directory. The SMTP 
  229.  server can still store new mail during this period, but the new mail will not 
  230.  be seen by the POP client until the next time the client logs in. The time 
  231.  delay is not particularly important, because most POP clients check for new 
  232.  mail every few minutes. 
  233.  
  234.  The Setup program creates an extra directory called "forward", as a 
  235.  subdirectory of the mail root directory, to hold outgoing mail that is still 
  236.  waiting to be sent.  In most cases mail files will remain in this directory 
  237.  for only a short time, but sometimes the transmission is not successful.  (The 
  238.  destination host might be unreachable, for example.)  Weasel attempts to 
  239.  re-send the unsuccessful mail a number of times over a period of about four 
  240.  days.  If these attempts are still not successful, the mail is returned to the 
  241.  original sender with a note saying that it could not be delivered. 
  242.  
  243.  
  244. ΓòÉΓòÉΓòÉ 5. Installation ΓòÉΓòÉΓòÉ
  245.  
  246. Installation 
  247.  
  248. See also De-installation 
  249.  
  250. To operate your machine as a post office, you need to run both a POP server and 
  251. an SMTP server.  For the SMTP part, you can choose to run either Weasel's 
  252. built-in SMTP server, or to run a separate SMTP server.  For now, let's assume 
  253. that you will use the built-in server. The other option is explained on a later 
  254. page. 
  255.  
  256.    1. You should have received this package in the form of a zip file. The 
  257.       first step is to unzip the file into a directory of your choice. 
  258.       (Presumably you've already done this.) 
  259.  
  260.    2. Create a new directory to hold the users' mail. For example, you could 
  261.       create a subdirectory called "MailRoot" in your Weasel directory; or you 
  262.       might choose to use the directory \MPTN\ETC\MAIL. 
  263.  
  264.    3. Run the program SETUP.EXE, and use the arrow keys to go to the field 
  265.       called "Root directory for mail". Fill in the full path name, including 
  266.       the drive letter, of the directory you created in the previous step. 
  267.  
  268.    4. Use the arrow keys to go to the "Enable servers" line, and use the 
  269.       left/right arrow keys to choose the "Both" option. Once you've done this, 
  270.       use the Enter key, or alternatively one of the up/down arrow keys, to 
  271.       confirm your menu selection. 
  272.  
  273.    5. While still in SETUP.EXE, press F5 until you reach a screen called 
  274.       "Weasel User Editor", containing a list of users.  This list will 
  275.       initially be empty.  Type the 'A' key to add a new user. 
  276.  
  277.    6. Type in the username and password for one user. (You can add the others 
  278.       after you're satisfied that everything is working correctly.) If you make 
  279.       a mistake, you can use the E (edit) or Del (delete) keys to correct your 
  280.       error. 
  281.  
  282.    7. Use the arrow keys to go back to the list of users, and then type X to 
  283.       get out of the Setup program. 
  284.  
  285.  The server is the program called weasel.exe.  You can run it either by 
  286.  double-clicking on the desktop icon, or by entering the command "weasel" in a 
  287.  command-line session.  Most people will want to put a program object or shadow 
  288.  for weasel into the startup folder, or to start it from TCPSTART.CMD; but 
  289.  that's up to you. 
  290.  
  291.  After you've done some testing, you'll probably want to run the Setup program 
  292.  again to add more users. You don't have to restart Weasel to get the new users 
  293.  recognised. 
  294.  
  295.  For some other options, see 
  296.  
  297.      Running from inetd 
  298.      Running Weasel detached 
  299.      Using a different SMTP server 
  300.  
  301.  
  302. ΓòÉΓòÉΓòÉ 6. De-installation ΓòÉΓòÉΓòÉ
  303.  
  304. De-installation 
  305.  
  306. Weasel does not tamper with CONFIG.SYS or with other system files. If you 
  307. decide that you don't want to keep Weasel, simply delete the directory into 
  308. which you installed it. Before doing this, you should probably check the user 
  309. mail directories, to see whether there's any undelivered mail remaining. 
  310.  
  311. Depending on how you did the installation, you might have modified files like 
  312. INETD.LST or SENDMAIL.CF. If so, don't forget to reverse these changes. 
  313.  
  314.  
  315. ΓòÉΓòÉΓòÉ 7. Configuration ΓòÉΓòÉΓòÉ
  316.  
  317. You have the choice of two different configuration programs, Setup and PMSetup. 
  318. PMSetup has one option (remote configuration) that is not supported by Setup, 
  319. but in all other respects the two programs perform exactly the same function. 
  320. You can choose to use either one, depending on whether you prefer a text-mode 
  321. program or a PM "notebook" application. 
  322.  
  323. The parameter settings are stored in a file WEASEL.INI.  Weasel reads its INI 
  324. file as it starts up, so any changes you make will not take effect until the 
  325. next time you start the server. 
  326.  
  327. Exception 1: the user information is not read until a user attempts to log in. 
  328. You may therefore alter the user information while the server is running, and 
  329. the alterations will affect the next user to log in. 
  330.  
  331. Exception 2: an alias is not expanded until incoming mail arrives for that 
  332. alias.  You may therefore alter alias lists while the server is running, and 
  333. the alterations will affect the next incoming e-mail addressed to that alias. 
  334.  
  335.  
  336. ΓòÉΓòÉΓòÉ 7.1. The Setup utility ΓòÉΓòÉΓòÉ
  337.  
  338. The program SETUP.EXE has two functions: 
  339.  
  340.      To set the parameters that Weasel.exe will use when it starts up. 
  341.      To define which users may access the POP server. 
  342.  
  343.  The configuration details are split up into a number of different screens. 
  344.  Use the F4 and F5 function keys on the keyboard to cycle around the different 
  345.  screens. 
  346.  
  347.  Now read 
  348.  
  349.      Setting the server parameters 
  350.      Modifying the list of users 
  351.      Aliases 
  352.      Optional settings 
  353.      Names for the local host 
  354.      Trusted sources for relay mail 
  355.      Acceptable destinations for relay mail 
  356.      Banned hosts 
  357.  
  358.  
  359. ΓòÉΓòÉΓòÉ 7.1.1. Setting the server parameters ΓòÉΓòÉΓòÉ
  360.  
  361. Setting the server parameters 
  362.  
  363. When you run SETUP.EXE, you get a screen showing the following items. 
  364.  
  365.  SMTP port 
  366.            Unless you are doing something nonstandard (for example, running two 
  367.            mail servers on the same machine) this should always be 25. 
  368.  
  369.            Hint: One use for nonstandard ports is to allow you to test Weasel 
  370.            without disabling your existing mail software. You don't have to 
  371.            switch to the standard port numbers until you've decided that you 
  372.            trust Weasel not to lose your mail. 
  373.  
  374.  Maximum number of SMTP users 
  375.            This specifies how many SMTP clients will be allowed to use the 
  376.            server simultaneously. I usually set this to 10.  The number is not 
  377.            particularly critical; you'd have to have a very busy mail node 
  378.            before getting simultaneous access from many clients. 
  379.  
  380.  SMTP timeout (seconds) 
  381.            The time that an SMTP session may remain idle before it is forcibly 
  382.            closed. Most SMTP clients will log out cleanly, but occasionally the 
  383.            server has to terminate a "dangling" session where, for example, the 
  384.            client machine crashed. 
  385.  
  386.  POP port 
  387.            Unless you are doing something nonstandard (for example, running two 
  388.            mail servers on the same machine) this should always be 110. 
  389.  
  390.  Maximum number of POP users 
  391.            This specifies how many POP clients will be allowed to use the 
  392.            server simultaneously. I usually set this to 10.  The number is not 
  393.            particularly critical; you'd have to have a very busy mail node 
  394.            before getting simultaneous access from many clients. 
  395.  
  396.  POP timeout (seconds) 
  397.            The time that an POP session may remain idle before it is forcibly 
  398.            closed. Most POP clients will log out cleanly, but occasionally the 
  399.            server has to terminate a "dangling" session where, for example, the 
  400.            client machine crashed. 
  401.  
  402.  Root directory for mail 
  403.            The full path name of the directory that will be used for storing 
  404.            users' mail files. This directory should exist, and preferably 
  405.            shouldn't be used for anything else. 
  406.  
  407.  Enable servers 
  408.            This specifies whether Weasel should run as an SMTP server, or as a 
  409.            POP server, or as both kinds of server simultaneously. Choose the 
  410.            "Both" option if Weasel is the only mail server software that you're 
  411.            running. 
  412.  
  413.  POP user logging 
  414.            If this feature is enabled a brief summary of each POP session is 
  415.            written to a file called POP.LOG. 
  416.  
  417.  SMTP logging 
  418.            If this feature is enabled a record of received mail is written to a 
  419.            file called SMTP.LOG. Each line in this file described one received 
  420.            mail item: date, time, sending host, size, and a list of recipients. 
  421.  
  422.  Detailed transaction log 
  423.            You can choose to send a detailed log to the screen, or to a disk 
  424.            file, or both. The disk file is called WEASEL.LOG, and it is updated 
  425.            approximately once every 15 minutes if this feature is enabled. 
  426.  
  427.            Warning: Transaction logging can create very large log files.  I 
  428.            suggest that you don't enable this feature unless you're trying to 
  429.            track down a problem. 
  430.  
  431.  To modify any of these parameters, use the up/down arrow keys to get to the 
  432.  desired item, then type in the new value.  (The backspace, Insert, Delete, 
  433.  Home, and End keys will also work during editing.)  The new value is accepted 
  434.  when you type the Enter key, or when you use the function keys to go to 
  435.  another field. 
  436.  
  437.  When you've finished editing, use the Esc key to exit from the Setup program, 
  438.  or type F5 to get to the user editor. 
  439.  
  440.  
  441. ΓòÉΓòÉΓòÉ 7.1.2. Modifying the list of users ΓòÉΓòÉΓòÉ
  442.  
  443. Modifying the list of users 
  444.  
  445. To modify the user list, run SETUP.EXE, and then type the F5 function key to 
  446. get the the "Users" screen page.  This will give you a list of all existing 
  447. users.  (The first time you run the program, the list will probably be empty.) 
  448.  
  449. From this screen, you can add, delete, or modify users.  When you've finished, 
  450. use the F5 function key to get back to the main Setup screen. 
  451.  
  452. Deleting a user 
  453.  
  454. Use the up/down arrow keys to get to the user you want to delete, and type the 
  455. Del (delete) key. 
  456.  
  457. Adding a new user 
  458.  
  459. Type A, and then proceed as for Editing a user record. 
  460.  
  461. Editing the details for an existing user 
  462.  
  463. Type E, and then follow the instructions in the section Editing a user record. 
  464.  
  465.  
  466. ΓòÉΓòÉΓòÉ 7.1.2.1. Editing a user record ΓòÉΓòÉΓòÉ
  467.  
  468. Editing a user record 
  469.  
  470. You get to this point by running the Setup program, typing F5 to get to the 
  471. user editor, and then using one of the "A" (add user) or "E" (edit user) 
  472. options. 
  473.  
  474. By now you should have two fields near the top of the screen. 
  475.  
  476.    User name 
  477.            The name that the user will use when logging in. 
  478.  
  479.    Password 
  480.            This user's password. 
  481.  
  482.  Use the up/down arrow keys to get to the field you want to edit, and then 
  483.  modify it as necessary.  When you've finished, use the Enter key or the Cursor 
  484.  Down key to confirm the changes. 
  485.  
  486.  Warning: If you change the user name, the data for the previous user name will 
  487.  be deleted.  You should also avoid using a user name that is the same as for 
  488.  some other user.
  489.  
  490.  When you've finished setting up all users, type the F5 key to get to the next 
  491.  page of the Setup program, or type X to leave the Setup program. 
  492.  
  493.  
  494. ΓòÉΓòÉΓòÉ 7.1.3. Aliases ΓòÉΓòÉΓòÉ
  495.  
  496. Aliases 
  497.  
  498. An alias looks like a username from the viewpoint of incoming mail, but the 
  499. name does not correspond to the name of any POP user.  Instead, the alias 
  500. refers to a list of e-mail addresses.  Whenever an e-mail arrives addressed to 
  501. that alias, a copy is sent to everyone on the list. 
  502.  
  503. Example 1. Suppose you have a user called Bill Smith who wants to receive all 
  504. mail in duplicate, with one copy to each of his two computers.  You can do this 
  505. by giving him two user accounts called bill1 and bill2, and setting up an alias 
  506. "bill.smith" defined as 
  507.  
  508.       bill1
  509.       bill2
  510.  
  511. With this arrangement, people send mail to Bill by addressing it to 
  512. Bill.Smith@yourdomain, but Bill collects his mail by logging in as bill1 from 
  513. one of his computers, and as bill2 from the other. 
  514.  
  515. Example 2. You can use an alias to set up a simple mailing list.  Suppose, for 
  516. example, you have a group of friends who are interested in chess and want to 
  517. discuss it as a group.  If you create an alias called "chessgroup", with 
  518. entries like 
  519.  
  520.       "Alan Jones" <alanj@xyz.org>
  521.       Bill.Smith
  522.       susan@alpha.beta.uk (Susan G.)
  523.       kw123
  524.       "Me" <myself>
  525.  
  526. then anyone can send mail to chessgroup@yourdomain, and copies will be 
  527. distributed to everyone on the list. 
  528.  
  529. Alias lists may themselves contain aliases.  To guard against circular 
  530. definitions, duplicate names are stripped out during the expansion. 
  531.  
  532. As Example 2 shows, an alias list may contain both local and non-local e-mail 
  533. addresses, and this can generate relay mail even if the sender is not otherwise 
  534. permitted to send relay mail.  As a guard against abuses, an alias can be set 
  535. up to be either "public" or "private".  Anyone can send mail to a public alias. 
  536. A private alias can be accessed only by those senders with "relay mail" 
  537. privilege. 
  538.  
  539. The following two pages explain how to create and modify aliases. 
  540.  
  541.  
  542. ΓòÉΓòÉΓòÉ 7.1.3.1. Adding and changing aliases ΓòÉΓòÉΓòÉ
  543.  
  544. Adding and changing aliases 
  545.  
  546. To create or change aliases, run SETUP.EXE, and then type the F5 function key 
  547. until you get to the "Aliases" screen page.  This will give you a list of all 
  548. existing aliases.  (The first time you run the program, the list will probably 
  549. be empty.) 
  550.  
  551. From this screen, you can add, delete, or modify aliases.  When you've 
  552. finished, use the F4 or F5 function key to go to other sections of the Setup 
  553. program, or type X to exit completely from Setup. 
  554.  
  555. Deleting an alias 
  556.  
  557. Use the up/down arrow keys to get to the alias you want to delete, and type the 
  558. Del (delete) key. 
  559.  
  560. Adding a new alias 
  561.  
  562. Type A, and then proceed as for Editing an alias list. 
  563.  
  564. Editing the expansion of an existing alias 
  565.  
  566. Type E, and then follow the instructions in the section Editing an alias list. 
  567.  
  568. Renaming an existing alias 
  569.  
  570. Type R, and then type the new name.  The name will be changed when you type the 
  571. <Enter> key, or when you use the up/down arrow keys to move to another entry. 
  572.  
  573.  
  574. ΓòÉΓòÉΓòÉ 7.1.3.2. Editing an alias list ΓòÉΓòÉΓòÉ
  575.  
  576. Editing an alias list 
  577.  
  578. You get to this point by running the Setup program, typing F5 until you get to 
  579. the alias editor, and then using one of the "A" (add alias) or "E" (edit alias) 
  580. options. 
  581.  
  582. Initially the word "Private" or "Public" will be highlighted at the top left of 
  583. the screen.  If you want to change this, use the "cursor left" or "cursor 
  584. right" key.  Then type the "cursor down" key to get to the list itself. 
  585.  
  586. At this point you have the following choices. 
  587.  
  588. Adding a new entry 
  589.  
  590. Type A, and then type an e-mail address.  Use the <Enter> key or the up/down 
  591. arrow keys to confirm your choice, or the Esc key if you change your mind. 
  592.  
  593. Editing an existing entry 
  594.  
  595. Type E, and then modify the e-mail address.  Use the <Enter> key or the up/down 
  596. arrow keys to confirm your choice, or the Esc key if you change your mind. 
  597.  
  598. Deleting an existing entry 
  599.  
  600. Type the Delete key. 
  601.  
  602. Changing the Public/Private status of the alias 
  603.  
  604. Use the Home, PageUp, and/or the up arrow key until the cursor is at the top of 
  605. the screen, and then use the left or right arrow key. 
  606.  
  607. When you've finished making modifications on this page, type Esc to complete 
  608. the operation.  If you leave the Setup program before doing this, your changes 
  609. will not be saved. 
  610.  
  611.  
  612. ΓòÉΓòÉΓòÉ 7.1.4. Optional settings ΓòÉΓòÉΓòÉ
  613.  
  614. Optional settings 
  615.  
  616. You get to this page by running SETUP.EXE, and then pressing the F5 function 
  617. key until the "Options" page appears.  This gives you a screen showing the 
  618. following items. 
  619.  
  620.  Filter for incoming mail. 
  621.            Normally this should be left blank.  If it is not blank, it should 
  622.            contain the file name of a program (a CMD or EXE file) that will 
  623.            filter all incoming mail.  This adds some processing overhead, but 
  624.            allows you to do things like virus scanning, junk mail filtering, 
  625.            etc., on the incoming items.  Filter programs are described in a 
  626.            separate section. 
  627.  
  628.  Relay host for forwarding mail. 
  629.            Normally this should be left blank.  If it is not blank, it should 
  630.            contain the hostname of another computer that is running an SMTP 
  631.            server and that will accept relay mail.  All outgoing mail from 
  632.            Weasel will be sent to that computer, which should accept 
  633.            responsibility for forwarding it on to its final destination. 
  634.  
  635.            Note: This option is provided for the case where, for example, you 
  636.            have to send all your mail through a gateway.  If you use it, make 
  637.            sure that you have permission to use the relay host this way.  If 
  638.            you abuse a relay facility, you might end up discovering that you 
  639.            have been blacklisted and can no longer send mail to anyone. 
  640.  
  641.  To modify any of these parameters, use the up/down arrow keys to get to the 
  642.  desired item, then type in the new value.  (The backspace, Insert, Delete, 
  643.  Home, and End keys will also work during editing.)  The new value is accepted 
  644.  when you type the Enter key, or when you use the function keys to go to 
  645.  another field. 
  646.  
  647.  When you've finished editing, use the Esc key to exit from the Setup program, 
  648.  or use the F4 and F5 function keys to get to the other Setup pages. 
  649.  
  650.  
  651. ΓòÉΓòÉΓòÉ 7.1.5. Names for the local host ΓòÉΓòÉΓòÉ
  652.  
  653. Names for the local host 
  654.  
  655. To reach this page, run Setup and type F5 several times, until the "local host" 
  656. page appears. 
  657.  
  658. An e-mail address has the form "user@domain".  If your local nameserver has an 
  659. MX record for your machine that matches the "domain" part, then this is mail to 
  660. be delivered locally. 
  661.  
  662. In the case where the "domain" part is actually the hostname of your machine, 
  663. or an alias known to your local nameserver, Weasel can work this out for 
  664. itself.  Many users, therefore, can afford to leave this list empty. 
  665. Unfortunately Weasel can't (yet) handle the case where the domain is not a 
  666. hostname, but is instead something mapped to a hostname by a nameserver MX 
  667. record.  (The catch here is that we can't tell whether the MX record identifies 
  668. the final destination, or simply a relay host.  If there's a way to make this 
  669. distinction, I haven't yet worked it out.)  In such cases, then, you must 
  670. explicitly list the domain name(s) on this page. 
  671.  
  672. Instructions for creating or modifying the list are given on the manual page 
  673. called Editing a list of host names. 
  674.  
  675. Note, by the way, that you can't define hostname aliases simply by adding extra 
  676. entries to this list.  The aliases are no good unless they're also recognised 
  677. by the nameserver.  If the nameserver does not define a name, then there's no 
  678. way for people at other sites to use that name as part of an e-mail address; 
  679. their own SMTP client will report an "unknown host" error. 
  680.  
  681. Note, too, that some mail clients will refuse to send mail to your machine if 
  682. they can't find an MX record for it.  You should ask your local network manager 
  683. - the person who looks after the nameserver - to include MX records for your 
  684. computer in the nameserver tables. 
  685.  
  686.  
  687. ΓòÉΓòÉΓòÉ 7.1.6. Trusted sources for relay mail ΓòÉΓòÉΓòÉ
  688.  
  689. Trusted sources for relay mail 
  690.  
  691. To reach this page, run Setup and type F5 several times, until the "acceptable 
  692. sources for relay mail" page appears. 
  693.  
  694. Relay mail is mail that the SMTP server accepts and agrees to pass on to 
  695. another host.  The Weasel philosophy is that unlimited relay mail should not be 
  696. permitted.  It puts an extra load on your computer, and it helps junk mailers 
  697. to hide the real origin of their junk mail. 
  698.  
  699. There are just two cases where it can make sense to permit your machine to be 
  700. used as a relay host. 
  701.  
  702.      Where your computer is acting as a gateway to a network that would 
  703.       otherwise be unable to receive mail from the outside world. This 
  704.       "gateway" function is described on the following page. 
  705.  
  706.      Where you want to offer an "outgoing mail" service to the users that have 
  707.       accounts on your POP server.  This function is the subject of the current 
  708.       page. 
  709.  
  710.  The "trusted sources" list is a list of host names.  Mail sent from those 
  711.  hosts, and addressed to some third host, will be accepted to be forwarded. 
  712.  Mail sent from elsewhere will not be accepted unless it is addressed to the 
  713.  machine on which Weasel is running, or to a domain on the "acceptable 
  714.  destinations" list. In other words, Weasel will not accept mail for relaying 
  715.  except when it comes from one of the hosts on this list, or when it's going to 
  716.  an approved destination. 
  717.  
  718.  Note: there are no default trusted hosts.  Even mail from your own computer 
  719.  will be rejected if it does not satisfy one of the above two conditions. 
  720.  
  721.  Instructions for creating or modifying the list are given on the manual page 
  722.  called Editing a list of host names. 
  723.  
  724.  
  725. ΓòÉΓòÉΓòÉ 7.1.7. Acceptable destinations for relay mail ΓòÉΓòÉΓòÉ
  726.  
  727. Acceptable destinations for relay mail 
  728.  
  729. To reach this page, run Setup and type F5 several times, until the "acceptable 
  730. destinations for relay mail" page appears. 
  731.  
  732. Relay mail is mail that the SMTP server accepts and agrees to pass on to 
  733. another host.  The Weasel philosophy is that unlimited relay mail should not be 
  734. permitted.  It puts an extra load on your computer, and it helps junk mailers 
  735. to hide the real origin of their junk mail. 
  736.  
  737. There are just two cases where it can make sense to permit your machine to be 
  738. used as a relay host. 
  739.  
  740.      Where your computer is acting as a gateway to a network that would 
  741.       otherwise be unable to receive mail from the outside world. This 
  742.       "gateway" function is the subject of the present page. 
  743.  
  744.      Where you want to offer an "outgoing mail" service to the users that have 
  745.       accounts on your POP server.  This function was described on the previous 
  746.       page. 
  747.  
  748.  The "acceptable destinations" list is a list of domain names.  Mail addressed 
  749.  to those domains will be accepted to be forwarded, whether or not it comes 
  750.  from one of the "trusted hosts". 
  751.  
  752.  Instructions for creating or modifying the list are given on the manual page 
  753.  called Editing a list of host names. 
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ 7.1.8. Banned hosts ΓòÉΓòÉΓòÉ
  757.  
  758. Banned hosts 
  759.  
  760. To reach this page, run Setup and type F5 several times, until the "banned 
  761. hosts" page appears. 
  762.  
  763. This page contains your personal blacklist of hosts that are not allowed to 
  764. send you mail.  Weasel will refuse to accept any mail from hosts on this list. 
  765.  
  766. Instructions for creating or modifying this list are given on the manual page 
  767. called Editing a list of host names. 
  768.  
  769.  
  770. ΓòÉΓòÉΓòÉ 7.1.9. Editing a list of host names ΓòÉΓòÉΓòÉ
  771.  
  772. Editing a list of host names 
  773.  
  774. When Setup presents you with a list of host names to be edited, you have the 
  775. following options: 
  776.  
  777.    A       Add a new entry.  Once you've typed the new entry, use the Enter key 
  778.            or the "cursor up" key to complete the operation. 
  779.  
  780.    P       Promote: move the current entry up in the list.  You can use this 
  781.            for changing the order of the entries in the list. 
  782.  
  783.    Del     (The Delete key.)  Deletes the current entry. 
  784.  
  785.    X       Exit completely from the Setup program. 
  786.  
  787.    F5      Move to the next page of the Setup options. 
  788.  
  789.  In addition, you can of course use the cursor up/down keys to move through the 
  790.  entries on the list.  The Home, End, PageUp, and PageDown keys may also be 
  791.  used. 
  792.  
  793.  The format of a list entry 
  794.  
  795.  Entries in this list can be in one of four forms: 
  796.  
  797.      An IP address enclosed in square brackets, for example [123.45.6.78]. 
  798.       This must be a fixed number; wildcards are not allowed in this format. 
  799.  
  800.      An IP address range, for example [123.45.6.78-99].  This means all 
  801.       addresses in the range [123.45.6.78] to [123.45.6.99], inclusive.  You 
  802.       may only have a single number after the '-' character.  As a more 
  803.       complicated example, [1.2.3-8] means all addresses in the range from 
  804.       [1.2.3.0] up to [1.2.8.255]. 
  805.  
  806.      A hostname, for example alpha.beta.com.  In this case wildcards are 
  807.       allowed - see below. 
  808.  
  809.      A domain name starting with the '.' character.  This is a "wildcard" 
  810.       entry that will match any hostname that ends with that domain name. This 
  811.       form is supported for compatibility with older versions of Weasel, but it 
  812.       is being phased out now that the '*' form of wildcard is available. 
  813.  
  814.  Where possible - that is, when ranges or wildcard characters are not used - 
  815.  Weasel will query the local nameserver, as it is reading in the list, to find 
  816.  out whether the specified machine has alternative names or multiple IP 
  817.  addresses.  This means that you don't normally need to specify aliases when 
  818.  setting up the list of names. 
  819.  
  820.  Wildcards 
  821.  
  822.  When you are specifying a host name or domain name string, you may include the 
  823.  wildcard characters '?' and '*'.  When comparing names, the character '?' 
  824.  matches any single character.  The wildcard character '*' matches a substring 
  825.  of any length, including a string of zero length. 
  826.  
  827.  For example, the string x*.com* would match things like xyz.com, or x.y.com, 
  828.  and it would also match things like xxx.com.au. 
  829.  
  830.  Note that 
  831.  
  832.      Alphabetic case is not significant in host and domain names; 'Abc' is 
  833.       considered to be the same as 'abc'. 
  834.  
  835.      For the purposes of wildcard matching, punctuation marks like '.' do not 
  836.       have any special status; they are treated like any other character. 
  837.  
  838.      Wildcards are not allowed when you specify a numeric IP address. 
  839.  
  840.  
  841. ΓòÉΓòÉΓòÉ 7.2. The PMSetup utility ΓòÉΓòÉΓòÉ
  842.  
  843. The program PMSETUP.EXE has two functions: 
  844.  
  845.      To set the parameters that Weasel.exe will use when it starts up. 
  846.      To define which users may access the POP server. 
  847.  
  848.  When you run PMSetup, you will get a small screen window with Local/Remote 
  849.  radio buttons and three pushbuttons. The Remote option is for remote 
  850.  configuration, which is described in a separate section. Normally you should 
  851.  choose the Local option, which will edit the Weasel.INI file that resides in 
  852.  the same directory as PMSETUP.EXE. Click on the "GO" button to start the 
  853.  editing. 
  854.  
  855.  The configuration details are split up into a number of different notebook 
  856.  pages.  Click on the tabs at the bottom of the notebook to select the page you 
  857.  need. 
  858.  
  859.  The page tabs are 
  860.  
  861.      Basic 
  862.      Options 
  863.      Users 
  864.      Aliases 
  865.      Local 
  866.      Trusted 
  867.      GateFor 
  868.      Banned 
  869.  
  870.  The instructions on the following pages talk of clicking on various screen 
  871.  controls - that is, pointing the mouse cursor to the control and clicking 
  872.  mouse button 1.  As with all OS/2 dialogue controls, you can of course also 
  873.  move around a dialogue using the tab key and the cursor movement keys on the 
  874.  keyboard. 
  875.  
  876.  
  877. ΓòÉΓòÉΓòÉ 7.2.1. Setting the basic server parameters ΓòÉΓòÉΓòÉ
  878.  
  879. Setting the basic server parameters 
  880.  
  881. The first page in the PMSetup notebook starts with an SMTP section and a POP 
  882. section. The SMTP server is for receiving incoming mail (and for forwarding it 
  883. to other SMTP servers, if appropriate).  The POP server is the software that 
  884. lets your users pick up the mail that has arrived for them.  If Weasel is the 
  885. only e-mail software you are running, then you would normally enable both of 
  886. these. 
  887.  
  888. Both servers have the options: 
  889.  
  890.  Port 
  891.            The TCP/IP port on which the server listens for connections.  Unless 
  892.            you are doing something nonstandard (for example, running two mail 
  893.            servers on the same machine) this should always be 25 for the SMTP 
  894.            server and 110 for the POP server. 
  895.  
  896.            Hint: One use for nonstandard ports is to allow you to test Weasel 
  897.            without disabling your existing mail software. You don't have to 
  898.            switch to the standard port numbers until you've decided that you 
  899.            trust Weasel not to lose your mail. 
  900.  
  901.  Timeout (seconds) 
  902.            The time that a session may remain idle before it is forcibly 
  903.            closed. Most SMTP and POP clients will log out cleanly, but 
  904.            occasionally the server has to terminate a "dangling" session where, 
  905.            for example, the client machine crashed. A typical choice for the 
  906.            timeout would be 900 seconds (i.e. 15 minutes). 
  907.  
  908.  Max users 
  909.            This specifies how many clients will be allowed to use the server 
  910.            simultaneously. I usually set this to 10.  The number is not 
  911.            particularly critical; you'd have to have a very busy mail node 
  912.            before getting simultaneous access from many clients. 
  913.  
  914.  Enabled 
  915.            This box must be checked in order to allow the corresponding server 
  916.            to run. You can disable one of the servers if you are running Weasel 
  917.            in conjunction with a different POP or SMTP server, or if you have 
  918.            any other reason for running Weasel as a POP-only or SMTP-only 
  919.            system.  (It would not make sense to disable both sections, because 
  920.            then Weasel would have nothing to do.) 
  921.  
  922.  The next item on this page is the root directory for mail. This should be the 
  923.  full path name of the directory that will be used for storing users' mail 
  924.  files. This directory should exist, and preferably shouldn't be used for 
  925.  anything else. Note that PMSetup will create subdirectories in this directory, 
  926.  if they're not already there, to hold the mail for each user. 
  927.  
  928.  Finally, you have a choice of enabling any or all of three different kinds of 
  929.  log file. 
  930.  
  931.  SMTP logging 
  932.            If this feature is enabled a record of received mail is written to a 
  933.            file called SMTP.LOG. Each line in this file described one received 
  934.            mail item: date, time, sending host, size, and a list of recipients. 
  935.  
  936.  POP user logging 
  937.            If this feature is enabled a brief summary of each POP session is 
  938.            written to a file called POP.LOG. 
  939.  
  940.  Detailed transaction log 
  941.            You can choose to send a detailed log to the screen, or to a disk 
  942.            file, or both. The disk file is called WEASEL.LOG, and it is updated 
  943.            approximately once every 15 minutes if this feature is enabled. 
  944.  
  945.            Warning: Transaction logging can create very large log files.  I 
  946.            suggest that you don't enable this feature unless you're trying to 
  947.            track down a problem. 
  948.  
  949.  
  950. ΓòÉΓòÉΓòÉ 7.2.2. Options ΓòÉΓòÉΓòÉ
  951.  
  952. Options 
  953.  
  954. There are two entry fields on this page; they should be left blank if you are 
  955. not using these options. 
  956.  
  957.  Filter for incoming mail. 
  958.            Normally this should be left blank.  If it is not blank, it should 
  959.            contain the file name of a program (a CMD or EXE file) that will 
  960.            filter all incoming mail.  This adds some processing overhead, but 
  961.            allows you to do things like virus scanning, junk mail filtering, 
  962.            etc., on the incoming items.  Filter programs are described in a 
  963.            separate section. 
  964.  
  965.  Relay host for forwarding mail. 
  966.            Normally this should be left blank.  If it is not blank, it should 
  967.            contain the hostname of another computer that is running an SMTP 
  968.            server and that will accept relay mail.  All outgoing mail from 
  969.            Weasel will be sent to that computer, which should accept 
  970.            responsibility for forwarding it on to its final destination. 
  971.  
  972.            Note: This option is provided for the case where, for example, you 
  973.            have to send all your mail through a gateway.  If you use it, make 
  974.            sure that you have permission to use the relay host this way.  If 
  975.            you abuse a relay facility, you might end up discovering that you 
  976.            have been blacklisted and can no longer send mail to anyone. 
  977.  
  978.  
  979. ΓòÉΓòÉΓòÉ 7.2.3. Users ΓòÉΓòÉΓòÉ
  980.  
  981. Users 
  982.  
  983. Adding a username on this page has two results: 
  984.  
  985.      It tells the Weasel SMTP server to accept mail for that user on this 
  986.       machine. 
  987.      It allows the user to log in to the Weasel POP server and collect any 
  988.       mail that has arrived. 
  989.  
  990.  Adding a new user 
  991.  
  992.  Click on the "Add" button, and then proceed as for Editing a user record. 
  993.  
  994.  Editing the details for an existing user 
  995.  
  996.  Click on the "Edit" button, and then follow the instructions in the section 
  997.  Editing a user record. 
  998.  
  999.  Deleting a user 
  1000.  
  1001.  Click on the username to be deleted, and then click on the "Delete" button. 
  1002.  
  1003.  
  1004. ΓòÉΓòÉΓòÉ 7.2.3.1. Editing a user record ΓòÉΓòÉΓòÉ
  1005.  
  1006. Editing a user record 
  1007.  
  1008. When you add a new user, or edit an existing user, you get a new dialogue box 
  1009. with two entry fields 
  1010.  
  1011.    User name 
  1012.            The name that the user will use when logging in. 
  1013.  
  1014.    Password 
  1015.            This user's password. 
  1016.  
  1017.  Alter these as desired, and then either type the Enter key or click on the 
  1018.  "OK" button to confirm the change. If you change your mind, click on the 
  1019.  "Cancel" button and your changes will be ignored. 
  1020.  
  1021.  Warning: If you change the user name, the data for the previous user name will 
  1022.  be deleted.  You should also avoid using a user name that is the same as for 
  1023.  some other user.
  1024.  
  1025.  
  1026. ΓòÉΓòÉΓòÉ 7.2.4. Aliases ΓòÉΓòÉΓòÉ
  1027.  
  1028. Aliases 
  1029.  
  1030. An alias looks like a username from the viewpoint of incoming mail, but the 
  1031. name does not correspond to the name of any POP user.  Instead, the alias 
  1032. refers to a list of e-mail addresses.  Whenever an e-mail arrives addressed to 
  1033. that alias, a copy is sent to everyone on the list. 
  1034.  
  1035. Example 1. Suppose you have a user called Bill Smith who wants to receive all 
  1036. mail in duplicate, with one copy to each of his two computers.  You can do this 
  1037. by giving him two user accounts called bill1 and bill2, and setting up an alias 
  1038. "bill.smith" defined as 
  1039.  
  1040.       bill1
  1041.       bill2
  1042.  
  1043. With this arrangement, people send mail to Bill by addressing it to 
  1044. Bill.Smith@yourdomain, but Bill collects his mail by logging in as bill1 from 
  1045. one of his computers, and as bill2 from the other. 
  1046.  
  1047. Example 2. You can use an alias to set up a simple mailing list.  Suppose, for 
  1048. example, you have a group of friends who are interested in chess and want to 
  1049. discuss it as a group.  If you create an alias called "chessgroup", with 
  1050. entries like 
  1051.  
  1052.       "Alan Jones" <alanj@xyz.org>
  1053.       Bill.Smith
  1054.       susan@alpha.beta.uk (Susan G.)
  1055.       kw123
  1056.       "Me" <myself>
  1057.  
  1058. then anyone can send mail to chessgroup@yourdomain, and copies will be 
  1059. distributed to everyone on the list. 
  1060.  
  1061. Alias lists may themselves contain aliases.  To guard against circular 
  1062. definitions, duplicate names are stripped out during the expansion. 
  1063.  
  1064. As Example 2 shows, an alias list may contain both local and non-local e-mail 
  1065. addresses, and this can generate relay mail even if the sender is not otherwise 
  1066. permitted to send relay mail.  As a guard against abuses, an alias can be set 
  1067. up to be either "public" or "private".  Anyone can send mail to a public alias. 
  1068. A private alias can be accessed only by those senders with "relay mail" 
  1069. privilege. 
  1070.  
  1071. The following two pages explain how to create and modify aliases. 
  1072.  
  1073.  
  1074. ΓòÉΓòÉΓòÉ 7.2.4.1. Adding and changing aliases ΓòÉΓòÉΓòÉ
  1075.  
  1076. Adding and changing aliases 
  1077.  
  1078. In the "Aliases" page of the PMSetup notebook, you have the following options: 
  1079.  
  1080. Adding a new alias 
  1081.  
  1082. Click on the "Add" button, and type the alias name into the entry field that 
  1083. appears.  (The entry field will close when you type the Return key.)  Then 
  1084. proceed as for Editing an alias list. 
  1085.  
  1086. Editing the expansion of an existing alias 
  1087.  
  1088. Click on the listbox entry that you want to change, then click on the "Edit" 
  1089. button and follow the instructions in the section Editing an alias list. 
  1090.  
  1091. Renaming an existing alias 
  1092.  
  1093. Click on the listbox entry that you want to change, then click on the "Rename" 
  1094. button.  Edit the name in the entry field that appears.  The name will be 
  1095. changed when you type the <Enter> key, or when you close the entry window. 
  1096.  
  1097. Deleting an alias 
  1098.  
  1099. Click on the entry you want to delete, then click on the Delete button. 
  1100.  
  1101.  
  1102. ΓòÉΓòÉΓòÉ 7.2.4.2. Editing an alias list ΓòÉΓòÉΓòÉ
  1103.  
  1104. Editing an alias list 
  1105.  
  1106. An alias expands out to a list of e-mail addresses; these can be either local 
  1107. or remote addresses.  When you add or edit an alias, you can manipulate this 
  1108. list. 
  1109.  
  1110. First, you should decide whether this is to be a private or public alias, and 
  1111. select the "Private" or "Public" radio button as appropriate.  Anyone can send 
  1112. mail to a public alias, but only people sending from one of the "Trusted" hosts 
  1113. can send mail to a private alias. 
  1114.  
  1115. Adding a new e-mail address 
  1116.  
  1117. Click on the "Add" button, and then type an e-mail address.  Use the <Enter> 
  1118. key when finished, to close the entry-field window. 
  1119.  
  1120. Editing an existing entry 
  1121.  
  1122. Click on the listbox entry to be changed; click on the "Revise" button; and 
  1123. then edit the e-mail address in the entry field that appears. 
  1124.  
  1125. Deleting an existing entry 
  1126.  
  1127. Click on the listbox entry to be removed, and then click on the "Delete" 
  1128. button. 
  1129.  
  1130. When you've finished making modifications on this page, click on the "OK" 
  1131. button to confirm your changes, or click on the "Cancel" button to throw away 
  1132. the changes. 
  1133.  
  1134.  
  1135. ΓòÉΓòÉΓòÉ 7.2.5. Local ΓòÉΓòÉΓòÉ
  1136.  
  1137. Local 
  1138.  
  1139. This notebook page lists the domain names that Weasel should accept as names 
  1140. for the machine on which it's running. 
  1141.  
  1142. An e-mail address has the form "user@domain".  If your local nameserver has an 
  1143. MX record for your machine that matches the "domain" part, then this is mail to 
  1144. be delivered locally. 
  1145.  
  1146. In the case where the "domain" part is actually the hostname of your machine, 
  1147. or an alias known to your local nameserver, Weasel can work this out for 
  1148. itself.  Many users, therefore, can afford to leave this list empty. 
  1149. Unfortunately Weasel can't (yet) handle the case where the domain is not a 
  1150. hostname, but is instead something mapped to a hostname by a nameserver MX 
  1151. record.  (The catch here is that we can't tell whether the MX record identifies 
  1152. the final destination, or simply a relay host.  If there's a way to make this 
  1153. distinction, I haven't yet worked it out.)  In such cases, then, you must 
  1154. explicitly list the domain name(s) on this page. 
  1155.  
  1156. Instructions for creating or modifying the list are given on the manual page 
  1157. called Editing a list of host names. 
  1158.  
  1159. Note, by the way, that you can't define hostname aliases simply by adding extra 
  1160. entries to this list.  The aliases are no good unless they're also recognised 
  1161. by the nameserver.  If the nameserver does not define a name, then there's no 
  1162. way for people at other sites to use that name as part of an e-mail address; 
  1163. their own SMTP client will report an "unknown host" error. 
  1164.  
  1165. Note, too, that some mail clients will refuse to send mail to your machine if 
  1166. they can't find an MX record for it.  You should ask your local network manager 
  1167. - the person who looks after the nameserver - to include MX records for your 
  1168. computer in the nameserver tables. 
  1169.  
  1170.  
  1171. ΓòÉΓòÉΓòÉ 7.2.6. Trusted ΓòÉΓòÉΓòÉ
  1172.  
  1173. Trusted 
  1174.  
  1175. This notebook page lists the hosts that are "trusted", in the sense that they 
  1176. are allowed to send relay mail to Weasel. 
  1177.  
  1178. Relay mail is mail that the SMTP server accepts and agrees to pass on to 
  1179. another host.  The Weasel philosophy is that unlimited relay mail should not be 
  1180. permitted.  It puts an extra load on your computer, and it helps junk mailers 
  1181. to hide the real origin of their junk mail. 
  1182.  
  1183. There are just two cases where it can make sense to permit your machine to be 
  1184. used as a relay host. 
  1185.  
  1186.      Where your computer is acting as a gateway to a network that would 
  1187.       otherwise be unable to receive mail from the outside world. This 
  1188.       "gateway" function is described on the following page. 
  1189.  
  1190.      Where you want to offer an "outgoing mail" service to the users that have 
  1191.       accounts on your POP server.  This function is the subject of the current 
  1192.       page. 
  1193.  
  1194.  The "Trusted" list is a list of host names.  Mail sent from those hosts, and 
  1195.  addressed to some third host, will be accepted to be forwarded.  Mail sent 
  1196.  from elsewhere will not be accepted unless it is addressed to the machine on 
  1197.  which Weasel is running, or to a domain on the "GateFor" list. In other words, 
  1198.  Weasel will not accept mail for relaying except when it comes from one of the 
  1199.  hosts on this list, or when it's going to an approved destination. 
  1200.  
  1201.  Note: there are no default trusted hosts.  Even mail from your own computer 
  1202.  will be rejected if it does not satisfy one of the above two conditions. 
  1203.  
  1204.  Instructions for creating or modifying the list are given on the manual page 
  1205.  called Editing a list of host names. 
  1206.  
  1207.  
  1208. ΓòÉΓòÉΓòÉ 7.2.7. GateFor ΓòÉΓòÉΓòÉ
  1209.  
  1210. GateFor 
  1211.  
  1212. This page lists the acceptable destinations for relay mail: the addresses for 
  1213. which Weasel will accept relay mail even from non-trusted hosts. 
  1214.  
  1215. Relay mail is mail that the SMTP server accepts and agrees to pass on to 
  1216. another host.  The Weasel philosophy is that unlimited relay mail should not be 
  1217. permitted.  It puts an extra load on your computer, and it helps junk mailers 
  1218. to hide the real origin of their junk mail. 
  1219.  
  1220. There are just two cases where it can make sense to permit your machine to be 
  1221. used as a relay host. 
  1222.  
  1223.      Where your computer is acting as a gateway to a network that would 
  1224.       otherwise be unable to receive mail from the outside world. This 
  1225.       "gateway" function is the subject of the present page. 
  1226.  
  1227.      Where you want to offer an "outgoing mail" service to the users that have 
  1228.       accounts on your POP server.  This function was described on the previous 
  1229.       page. 
  1230.  
  1231.  The "acceptable destinations" list is a list of domain names.  Mail addressed 
  1232.  to those domains will be accepted to be forwarded, whether or not it comes 
  1233.  from one of the "trusted hosts". 
  1234.  
  1235.  Instructions for creating or modifying the list are given on the manual page 
  1236.  called Editing a list of host names. 
  1237.  
  1238.  
  1239. ΓòÉΓòÉΓòÉ 7.2.8. Banned ΓòÉΓòÉΓòÉ
  1240.  
  1241. Banned 
  1242.  
  1243. This page contains your personal blacklist of hosts that are not allowed to 
  1244. send mail to (or via) your server.  Weasel will refuse to accept any mail from 
  1245. hosts on this list. 
  1246.  
  1247. Instructions for creating or modifying this list are given on the manual page 
  1248. called Editing a list of host names. 
  1249.  
  1250.  
  1251. ΓòÉΓòÉΓòÉ 7.2.9. Editing a list of host names ΓòÉΓòÉΓòÉ
  1252.  
  1253. Editing a list of host names 
  1254.  
  1255. Several of the PMSetup notebook pages have a list of host names.  On those 
  1256. pages you have the following options: 
  1257.  
  1258.    Add          Add a new entry.  Once you've typed the new entry, use the 
  1259.                 Enter key to complete the operation. 
  1260.  
  1261.    Promote      Move the current entry up in the list.  You can use this for 
  1262.                 changing the order of the entries in the list. 
  1263.  
  1264.    Delete       Deletes the current entry. 
  1265.  
  1266.  The format of a list entry 
  1267.  
  1268.  Entries in the list can be in one of four forms: 
  1269.  
  1270.      An IP address enclosed in square brackets, for example [123.45.6.78]. 
  1271.       This must be a fixed number; wildcards are not allowed in this format. 
  1272.  
  1273.      An IP address range, for example [123.45.6.78-99].  This means all 
  1274.       addresses in the range [123.45.6.78] to [123.45.6.99], inclusive.  You 
  1275.       may only have a single number after the '-' character.  As a more 
  1276.       complicated example, [1.2.3-8] means all addresses in the range from 
  1277.       [1.2.3.0] up to [1.2.8.255]. 
  1278.  
  1279.      A hostname, for example alpha.beta.com.  In this case wildcards are 
  1280.       allowed - see below. 
  1281.  
  1282.      A domain name starting with the '.' character.  This is a "wildcard" 
  1283.       entry that will match any hostname that ends with that domain name. This 
  1284.       form is supported for compatibility with older versions of Weasel, but it 
  1285.       is being phased out now that the '*' form of wildcard is available. 
  1286.  
  1287.  Where possible - that is, when ranges or wildcard characters are not used - 
  1288.  Weasel will query the local nameserver, as it is reading in the list, to find 
  1289.  out whether the specified machine has alternative names or multiple IP 
  1290.  addresses.  This means that you don't normally need to specify aliases when 
  1291.  setting up the list of names. 
  1292.  
  1293.  Wildcards 
  1294.  
  1295.  When you are specifying a host name or domain name string, you may include the 
  1296.  wildcard characters '?' and '*'.  When comparing names, the character '?' 
  1297.  matches any single character.  The wildcard character '*' matches a substring 
  1298.  of any length, including a string of zero length. 
  1299.  
  1300.  For example, the string x*.com* would match things like xyz.com, or x.y.com, 
  1301.  and it would also match things like xxx.com.au. 
  1302.  
  1303.  Note that 
  1304.  
  1305.      Alphabetic case is not significant in host and domain names; 'Abc' is 
  1306.       considered to be the same as 'abc'. 
  1307.  
  1308.      For the purposes of wildcard matching, punctuation marks like '.' do not 
  1309.       have any special status; they are treated like any other character. 
  1310.  
  1311.      Wildcards are not allowed when you specify a numeric IP address. 
  1312.  
  1313.  
  1314. ΓòÉΓòÉΓòÉ 7.3. Remote configuration ΓòÉΓòÉΓòÉ
  1315.  
  1316. PMSetup also offers the option of remote setup.  That is, you can run PMSetup 
  1317. on one computer and use it to configure a copy of Weasel that is installed on a 
  1318. different computer.  To do this, you have to have the freeware utility INIServe 
  1319. running on the same computer as Weasel.  You can find INIServe at 
  1320. http://eepjm.newcastle.edu.au/os2. 
  1321.  
  1322. If you select the "Remote" radio button after starting PMSetup, a "Setup" 
  1323. pushbutton is enabled.  Clicking on this gives you four fields to fill in: 
  1324.  
  1325.  Hostname 
  1326.            The name (or IP address) of the machine on which Weasel is running. 
  1327.  
  1328.  INIServe port 
  1329.            The TCP port that INIServe has been configured to listen on.  The 
  1330.            default value is 8000. 
  1331.  
  1332.  INIServe password 
  1333.            The password needed to log in to your copy of INIServe. 
  1334.  
  1335.  Weasel directory 
  1336.            The full path name of the directory, on the remote machine, where 
  1337.            Weasel is installed. 
  1338.  
  1339.  When you close the Setup window, you can click on the "GO" button to connect 
  1340.  to the remote machine.  If this gives a "failed to connect" or similar error 
  1341.  message, it probably means that you don't have INIServe running on the remote 
  1342.  machine, or that you've done something like specifying an incorrect port 
  1343.  number. 
  1344.  
  1345.  Once the connection is made, the operation is the same as for the case of 
  1346.  local configuration.  Note, however, that INIServe will not create any 
  1347.  directories on the remote machine.  If you add users, you'll still have to use 
  1348.  a tool like telnet or ftp to create the users' mail directories. 
  1349.  
  1350.  
  1351. ΓòÉΓòÉΓòÉ 8. Running Weasel ΓòÉΓòÉΓòÉ
  1352.  
  1353. Running Weasel 
  1354.  
  1355. The server executable is called WEASEL.EXE.  You can run this the way you run 
  1356. any other OS/2 program: from the command-line, by clicking on an icon, from the 
  1357. Startup folder, etc.  If you're running several server applications, then the 
  1358. most obvious choice is to put a command to start the server in the command file 
  1359. \TCPIP\BIN\TCPSTART.CMD. 
  1360.  
  1361. You also have the options of running the server from inetd or running the 
  1362. server as a detached program. 
  1363.  
  1364. To shut down the program, type Ctrl/C.  (That is, hold down the Ctrl key while 
  1365. typing 'C'.)  There might be a delay before the program terminates, because 
  1366. Weasel will allow any transactions in progress to complete before shutting 
  1367. down. 
  1368.  
  1369. If you type Ctrl/C more than once, Weasel shuts down even if there are POP 
  1370. clients who have not yet logged out. Even in this case there can still be a 
  1371. delay if the program is in the middle of a slow operation.  If you really need 
  1372. to shut down Weasel without a delay, use a process killer (e.g. the one that 
  1373. comes with the WarpCenter); but if you do this there is a risk of lost mail 
  1374. because the program has not tidied up properly. 
  1375.  
  1376. The 'G' and 'Q' keyboard commands, which were used for shutdown in older 
  1377. versions of Weasel, are no longer supported.  (Keyboard support was removed 
  1378. because it was conflicting with the spawning of user-written filters.) 
  1379.  
  1380.  
  1381. ΓòÉΓòÉΓòÉ 8.1. Running from inetd ΓòÉΓòÉΓòÉ
  1382.  
  1383. Running the server from inetd 
  1384.  
  1385. Note:  The inetd option has been implemented, but not yet tested. 
  1386.  
  1387. Inetd, which is part of the Warp 4 distribution, is a "listener" program that 
  1388. can intercept incoming connection attempts, and start up a server when needed. 
  1389.  
  1390. The advantage is that Weasel doesn't actually get loaded into main memory until 
  1391. a client wants to connect.  Thus, it might be a good option if you expect 
  1392. clients to connect only occasionally. 
  1393.  
  1394. The disadvantage is that a separate copy of the server is started for each 
  1395. logged-in user.  This makes inetd a bad choice if you expect lots of 
  1396. connections. 
  1397.  
  1398. If you want to run Weasel from inetd, the way to do it is as follows: 
  1399.  
  1400.    1. Ensure that inetd will be run the next time you boot. The usual way of 
  1401.       doing this is to include the line 
  1402.             start /min inetd 
  1403.       in your TCPSTART.CMD, and to invoke TCPSTART.CMD from your startup 
  1404.       folder.  TCPSTART.CMD may be found in the directory \tcpip\bin. 
  1405.  
  1406.    2. Edit the file \mptn\etc\inetd.lst so that it contains one or both of the 
  1407.       lines 
  1408.          pop3 tcp start /C /min d:\Apps2\Weasel\weasel.exe 
  1409.          smtp tcp start /C /min d:\Apps2\Weasel\weasel.exe 
  1410.       (adjusting the path so that it refers to the directory where you've 
  1411.       installed Weasel). 
  1412.  
  1413.  In principle you can now start inetd.  In practice I've found that inetd 
  1414.  doesn't release ports reliably, so if you already have inetd running you'll 
  1415.  probably have to re-boot. 
  1416.  
  1417.  Remark: I'm starting to suspect that inetd adds more overhead than it saves, 
  1418.  so I've reverted to not using it on my own machine. 
  1419.  
  1420.  
  1421. ΓòÉΓòÉΓòÉ 8.2. Running Weasel detached ΓòÉΓòÉΓòÉ
  1422.  
  1423. Running the server as a detached program 
  1424.  
  1425. If you want to run the server detached, the appropriate command is 
  1426.     DETACH WEASEL 
  1427. Note that a detached program does not have any way of doing screen output or 
  1428. keyboard input, so you can't get any screen messages in this case. 
  1429.  
  1430. The only time that you need screen output from this program is when you're 
  1431. testing it. Once you've decided to use it permanently, it's probably a good 
  1432. idea to leave it detached, so that it doesn't get in the way of the things you 
  1433. really want on your screen. 
  1434.  
  1435.  
  1436. ΓòÉΓòÉΓòÉ 8.3. Operating with a dial-up connection ΓòÉΓòÉΓòÉ
  1437.  
  1438. Operating with a dial-up connection 
  1439.  
  1440. A mail server normally needs a permanent network connection, so that it can 
  1441. accept incoming mail. If, however, you can arrange for another machine to act 
  1442. as an MX relay for you then it might be feasible to run Weasel with only an 
  1443. intermittent network connection. In such a situation we would like to be able 
  1444. to specify that outbound mail be stored for later delivery. 
  1445.  
  1446. Periodically - about once every five minutes, or more often in some situations 
  1447. - Weasel checks for the existence of a file called 'ONLINE' (without the quote 
  1448. marks) in its own directory.  The content of this file is not important, only 
  1449. the question of whether the file exists.  If it exists, Weasel assumes that 
  1450. there is an on-line connection and it will attempt to deliver waiting mail.  If 
  1451. the file does not exist, Weasel queues the outbound mail for later delivery. 
  1452.  
  1453. With a dial-up connection, therefore, you should create the file ONLINE when 
  1454. you have established a connection, and delete that file (or move it to another 
  1455. directory) when you disconnect from the network.  You can do this manually, or 
  1456. - depending on what sort of dialler software you are using - you can make it a 
  1457. part of your dial-up script. 
  1458.  
  1459.  
  1460. ΓòÉΓòÉΓòÉ 8.4. Setting the time zone ΓòÉΓòÉΓòÉ
  1461.  
  1462. Setting the time zone 
  1463.  
  1464. Incoming mail has a "Received:" line added as the first line of the header. 
  1465. (If the mail went through one or more relay hosts, there will be several 
  1466. "Received:" lines.  If you're trying to trace the origin of junk mail, this is 
  1467. the first place to look.)  The last thing that Weasel puts on that line is a 
  1468. time zone indicator, for example +1000. Many OS/2 installations, however, don't 
  1469. have their time zone set. If you find that the "Received:" header line has a 
  1470. date and time, but no time zone, you need to set the time zone on your machine. 
  1471.  
  1472. One way to do this is with my TZSet utility.  You can find this at 
  1473. http://eepjm.newcastle.edu.au/os2. 
  1474.  
  1475.  
  1476. ΓòÉΓòÉΓòÉ 9. Filters ΓòÉΓòÉΓòÉ
  1477.  
  1478. Filters 
  1479.  
  1480. You have the option in the Weasel setup of specifying a pre-delivery filter. 
  1481. The filter, if present, is executed after the Weasel SMTP server has received a 
  1482. mail item (header + body), but before it has put it into a local mailbox or 
  1483. forwarded it. 
  1484.  
  1485. At this point the message is in a temporary message file, in the standard 
  1486. e-mail format: the header lines, one blank line, and then the message body. 
  1487. The first header line is the "Return-path:" line, and this is followed by one 
  1488. or more "Received:" lines. Header lines after this can occur in any order, 
  1489. depending on the sender. 
  1490.  
  1491. The filter can examine the temporary message file, optionally copy it or change 
  1492. its contents, and then return a reply code to Weasel saying whether or not the 
  1493. message should be delivered. 
  1494.  
  1495. The filter can be written as a REXX script, or alternatively it can be written 
  1496. in any programming language you like and compiled and linked into EXE format. 
  1497.  
  1498. The filter is invoked by Weasel with the command 
  1499.  
  1500.          CMD.EXE /C filterprog messagefile namefile
  1501.  
  1502. where "filterprog" is the name of the CMD or EXE file to be executed, 
  1503. "messagefile" is the full pathname of the temporary message file, and 
  1504. "namefile" is the full pathname of a text file containing a list of e-mail 
  1505. addresses, one per line. (The line terminator is carriage return followed by 
  1506. line feed.) The first line identifies the sender, and the remaining lines are 
  1507. the e-mail addresses of the recipients. 
  1508.  
  1509. The filter should return one of the following values. 
  1510.  
  1511.    0       handle message normally, i.e. deliver it as if there had been no 
  1512.            filter. 
  1513.  
  1514.    1       reconstruct the list of recipients from the namefile, because the 
  1515.            filter has altered the namefile; and then continue handling the 
  1516.            message normally. 
  1517.  
  1518.    2       don't deliver the message (we presume that the filter has already 
  1519.            taken care of the delivery, if desired), and return the reply 
  1520.  
  1521.                                  250 OK
  1522.            to the client. 
  1523.  
  1524.    3       don't deliver the message, and return the reply 
  1525.  
  1526.                                  554 Mail rejected by server
  1527.            to the client. 
  1528.  
  1529.  NOTE: In all four cases, the temporary message file is deleted after the 
  1530.  filter has seen it and Weasel has copied it into the user's mailboxes.  If the 
  1531.  filter wants to take care of delivery (case 2) then it must take a copy of the 
  1532.  message file. 
  1533.  
  1534.  If the filter exits with an error, or returns a result code outside the range 
  1535.  [0..3], then Weasel acts as if the result had been 0, i.e. the filter has no 
  1536.  effect.  This is to guard against badly written filters. 
  1537.  
  1538.  
  1539. ΓòÉΓòÉΓòÉ 10. Using a different SMTP server ΓòÉΓòÉΓòÉ
  1540.  
  1541. It is possible to run the Weasel POP server without running the Weasel SMTP 
  1542. server. (Or vice versa.) To do this, use the Setup program and change the menu 
  1543. selection in the "Enable servers" field. The change will take effect the next 
  1544. time you start Weasel. 
  1545.  
  1546. You have to make sure, of course, that the other SMTP server you're running 
  1547. will store mail in a place where Weasel can find it. The details depend on 
  1548. which SMTP server you're using. See 
  1549.  
  1550.      Using IBM's sendmail 
  1551.      Using a third-party SMTP server 
  1552.  
  1553.  
  1554. ΓòÉΓòÉΓòÉ 10.1. Using IBM's sendmail ΓòÉΓòÉΓòÉ
  1555.  
  1556. Using IBM's sendmail 
  1557.  
  1558. The sendmail program is a standard part of the OS/2 Warp Connect and Warp 4 
  1559. distributions.  For Warp 3, it's either standard or part of the "Bonus Pack" 
  1560. for Warp 3 - I've forgotten which. 
  1561.  
  1562. I've never been happy with sendmail.  It's difficult to configure, and it seems 
  1563. to consume a huge amount of processor time.  (That's one of the reasons I 
  1564. decided to write Weasel.)  However, it supports some things that Weasel does 
  1565. not support, such as unrestricted relay mail. If you need those features, 
  1566. sendmail might be your best solution. 
  1567.  
  1568. To support this option, the Weasel distribution includes a program called 
  1569. "endmail.exe".  This is a program that sendmail can invoke, to deliver the 
  1570. incoming mail to Weasel's mailboxes. 
  1571.  
  1572. Installation 
  1573.  
  1574.    1. Make a backup copy of your SENDMAIL.CF.  For Warp 4 users, this file is 
  1575.       in the directory \MPTN\ETC.  In Warp 3, it's either there or in 
  1576.       \TCPIP\ETC. 
  1577.  
  1578.       Warning 1.  I'm not joking about the backup.  If you make a mistake while 
  1579.       editing SENDMAIL.CF, it can be very difficult to recover. 
  1580.  
  1581.       Warning 2.  In the next step, you'll need a text editor to edit 
  1582.       SENDMAIL.CF.  Make sure that you do not use an editor that converts tabs 
  1583.       to spaces or that re-wraps lines.  The OS/2 System Editor (E.EXE) is 
  1584.       safe.  The Enhanced Editor (EPM.EXE) is not safe.  If you prefer some 
  1585.       other editor, first check on what it does to tab characters. 
  1586.  
  1587.    2. (Most experienced users can probably skip this step.) If you've never run 
  1588.       sendmail as a server before, run the TCP/IP Configuration Program and 
  1589.       fill in the e-mail details for the case where Ultimail Lite is not your 
  1590.       e-mail program.  This will insert a few basic definitions (domain name, 
  1591.       etc.) into your SENDMAIL.CF. 
  1592.  
  1593.    3. Find the line in SENDMAIL.CF that starts with the characters "Mlocal" 
  1594.       (without the quote marks).  Edit it so that it looks like this (all in 
  1595.       one line): 
  1596.  
  1597.              Mlocal, P=d:\apps\weasel\endmail.exe, F=lnsDFP, S=10, R=0, A=d:\apps\weasel\MailRoot\ $i $u
  1598.  
  1599.       Note that: 
  1600.  
  1601.           the filename after "P=" should be the complete pathname of 
  1602.            endmail.exe. 
  1603.  
  1604.           the first letter after "F=" is a lower-case "L", not an upper-case 
  1605.            "i".  (If you're confused, re-read the Mlocal line in something like 
  1606.            a Times font.) 
  1607.  
  1608.           the name after "A=" should be the name of the directory that you set 
  1609.            up as your "mail root" when installing Weasel. The final '\' in the 
  1610.            directory name must be included. 
  1611.  
  1612.           the line should end with the parameters "$i $u" (without the 
  1613.            quotes). I mention this only because you might have missed seeing it 
  1614.            in the long line above. 
  1615.  
  1616.    4. Make a backup copy of the altered SENDMAIL.CF (but don't overwrite the 
  1617.       backup you created in step 1, just in case you have to restore your 
  1618.       original configuration).  You'll need this backup if you ever run the 
  1619.       TCP/IP Configuration Program, because that program destroys any changes 
  1620.       you've made to SENDMAIL.CF. 
  1621.  
  1622.    5. If sendmail.exe is already running, kill it.  It needs to be restarted so 
  1623.       that it will read the modified SENDMAIL.CF. 
  1624.  
  1625.    6. Start sendmail as an SMTP server with the command 
  1626.  
  1627.                        sendmail -bd
  1628.  
  1629.    7. Send yourself some test mail to check that everything is working. If 
  1630.       something went wrong, it's probably caused by an error in SENDMAIL.CF. 
  1631.  
  1632.    8. Once you're satisfied with the results, ensure that 
  1633.       TCPIP\BIN\TCPSTART.CMD contains a line like the following 
  1634.  
  1635.                   detach sendmail -bd -q15m -CE:\MPTN\ETC\sendmail.cf
  1636.  
  1637.       (with, of course, the correct drive letter after the "-C"). 
  1638.       Alternatively, make whatever other arrangements you prefer to ensure that 
  1639.       sendmail will be started with the -bd parameter each time you connect to 
  1640.       the network. 
  1641.  
  1642.  Limitations, warnings, etc. 
  1643.  
  1644.      You did remember to disable the SMTP part of Weasel, didn't you?  If 
  1645.       Weasel is listening on port 25, sendmail won't work. 
  1646.  
  1647.      I almost forgot: the filenames generated by endmail.exe might not be 
  1648.       compatible with the FAT 8.3 rule.  To get this to work properly, your 
  1649.       mailroot directory should be on an HPFS partition. 
  1650.  
  1651.       (But then, you should never run any e-mail program on a FAT partition. 
  1652.       E-mail software almost always generates lots of small files, and on FAT 
  1653.       partitions this can cause horrible fragmentation. 
  1654.  
  1655.       The same is true, by the way, for FAT32 and NTFS.  If you have any 
  1656.       friends using Windows NT, you should advise them to create an HPFS 
  1657.       partition to hold their mail software.  If they're running Windows 95 or 
  1658.       Fixpack 98, tell them to get hold of a good defragger, or to avoid using 
  1659.       e-mail.) 
  1660.  
  1661.  
  1662. ΓòÉΓòÉΓòÉ 10.2. Using a third-party SMTP server ΓòÉΓòÉΓòÉ
  1663.  
  1664. The Weasel POP server can work in conjunction with any SMTP server that 
  1665. satisfied the following conditions. 
  1666.  
  1667.      A user's mail is stored in a directory whose name has the form 
  1668.       mailroot\user, where "mailroot" is a fixed directory and "user" matches 
  1669.       the user's e-mail address. 
  1670.  
  1671.      Each e-mail message is stored as a single "plain text" file, in the 
  1672.       standard e-mail format (header, blank line, body); and the file name is 
  1673.       of the form "something.MSG". 
  1674.  
  1675.  Of course, there's no guarantee that any given SMTP server will satisfy these 
  1676.  conditions; but it's often easy to write a little conversion program that will 
  1677.  copy the files across. (If there's enough demand, I might be able to write the 
  1678.  conversion programs. I won't do it for something that's used only by two or 
  1679.  three people, but I'll certainly consider it if some particular program turns 
  1680.  out to be widely used.) 
  1681.  
  1682.  
  1683. ΓòÉΓòÉΓòÉ 11. Troubleshooting ΓòÉΓòÉΓòÉ
  1684.  
  1685. Unlocking a locked mailbox 
  1686.  
  1687. Sometimes a POP client will get a "mailbox is locked" message while trying to 
  1688. fetch mail. If this happens, go to the user's mail directory and delete the 
  1689. file LOCK.!!! 
  1690.  
  1691. Normally Weasel deletes this file when a POP session finishes. The lock file 
  1692. might, however, be left undeleted if your computer crashes, or if you shut down 
  1693. Weasel while a POP session is in progress. Although Weasel checks for locked 
  1694. mailboxes on startup, it might fail to clear the lock in unusual circumstances 
  1695. - e.g. if the lock file attributes somehow got set to be read-only. 
  1696.  
  1697. Slow startup? 
  1698.  
  1699. If you're getting a long time delay while Weasel is starting, it's probably 
  1700. caused by Weasel having to wait for responses from your local nameserver. 
  1701. There are two likely causes for a slow response: 
  1702.  
  1703.      The nameserver is not responding, because of a network problem or because 
  1704.       the nameserver has crashed.  If this is the problem then you'll simply 
  1705.       have to accept the delay, because the problem is on some other computer. 
  1706.  
  1707.      One of the host names in your master lists (local hosts, acceptable relay 
  1708.       hosts, banned hosts) does not exist.  In this case the nameserver 
  1709.       responds slowly because it must, in effect, search the entire world for 
  1710.       the nonexistent name.  The solution for this is to run Setup and remove 
  1711.       the useless name from the list. 
  1712.  
  1713.  Outgoing mail is rejected? 
  1714.  
  1715.  If outgoing mail is accumulating in the "forward" directory without being sent 
  1716.  out, the likely problem is that you don't have a file called ONLINE in the 
  1717.  same directory as Weasel.exe.  If this file doesn't exist, Weasel won't try to 
  1718.  send out the mail. 
  1719.  
  1720.  If mail is being rejected with a message that says "User not local, please try 
  1721.  ...", it means that the sender is not authorised to send relay mail.  To 
  1722.  authorise it, you have to include the sending host in the list of "Acceptable 
  1723.  sources for relay mail". 
  1724.  
  1725.  Stopping PMMail from crashing 
  1726.  
  1727.  There is something that PMMail doesn't like about Weasel's response to the TOP 
  1728.  command, and I haven't yet figured out what it is. If you find that PMMail 
  1729.  crashes when trying to fetch mail, open the PMMail Account Settings, go to the 
  1730.  Receive page, and enable the "Quick Interrogation" option. 
  1731.  
  1732.  (The problem appears to have been fixed in the latest version of PMMail.) 
  1733.  
  1734.  
  1735. ΓòÉΓòÉΓòÉ 12. Development notes ΓòÉΓòÉΓòÉ
  1736.  
  1737.      Development tools 
  1738.  
  1739.      Why Modula-2? 
  1740.  
  1741.      Known bugs 
  1742.  
  1743.      Wish list 
  1744.  
  1745.      Reporting errors 
  1746.  
  1747.  
  1748. ΓòÉΓòÉΓòÉ 12.1. Development tools ΓòÉΓòÉΓòÉ
  1749.  
  1750. Development tools 
  1751.  
  1752. Some people have asked about the compiler I'm using.  (I guess a lot of people 
  1753. didn't realise that there were Modula-2 compilers for OS/2.)  It's XDS 
  1754. Modula-2, OS/2 native mode version.  You can find out about this, and other 
  1755. Modula-2 compilers for OS/2, at the web page 
  1756.    http://www.ee.newcastle.edu.au/users/staff/peter/os2/os2m2.html 
  1757. (I'm getting a little behind on keeping my web pages up to date, but the 
  1758. information is still basically correct, only the version numbers have changed.) 
  1759.  
  1760. The XDS home page is at 
  1761.    http://www.xds.ru/ 
  1762. This is well worth visiting, because the XDS development team often has "try 
  1763. before you buy" versions of their compilers available for download. 
  1764.  
  1765. Weasel uses some of the modules from the PMOS/2 library. If you want to know 
  1766. more about PMOS/2, you'll also find that on my web pages.  Source code is 
  1767. available.  My web pages are at 
  1768. http://www.ee.newcastle.edu.au/users/staff/peter/Moylan.html. 
  1769.  
  1770. The PMSetup utility was built with the aid of a dialogue editor (available free 
  1771. from IBM) called DrDialog. 
  1772.  
  1773. This documentation was prepared with IBM's IPFC help compiler. 
  1774.  
  1775.  
  1776. ΓòÉΓòÉΓòÉ 12.2. Why Modula-2? ΓòÉΓòÉΓòÉ
  1777.  
  1778. Why Modula-2? 
  1779.  
  1780. I'm often asked why I chose to code my software in Modula-2.  Everyone else 
  1781. seems to be using C or C++, so why don't I? 
  1782.  
  1783. The short answer is that I don't think much of the "everyone else uses it" 
  1784. argument.  If popularity was more important to me than technical merit, I 
  1785. wouldn't be using OS/2. 
  1786.  
  1787. The long answer is contained in a document called "The Case Against C", which 
  1788. can be found at 
  1789. http://murray.newcastle.edu.au/users/ftp/pub/reports/CaseAgainstC.ps.Z. This is 
  1790. a compressed Postscript file.  If you can't handle compressed Postscript, a 
  1791. text-only version (CaseAgainstC.txt) can be found in the same directory. 
  1792.  
  1793. And the medium-length answer is on this page. 
  1794.  
  1795. To begin with, run-time efficiency is not as big an issue as most people seem 
  1796. to think it is.  With modern compiler technology, the main programming 
  1797. languages (apart from things like BASIC and its derivatives) give about the 
  1798. same run-time efficiency.  C and C++ lose out a little because their low-level 
  1799. constructs make it hard for the compiler to do a good job at optimisation; the 
  1800. figures I've seen tend to suggest that a program written in Modula-2 runs a 
  1801. little faster than the same program written in C or C++. However, the 
  1802. difference is typically less than 5%, and hardly worth worrying about. 
  1803.  
  1804. So the big issue is development efficiency.  For a job like this we can rule 
  1805. out languages like BASIC and REXX because they're a little too crude; and we 
  1806. can rule out languages like Fortran because of their poor support for "systems 
  1807. programming" tasks.  We can also rule out a host of lesser-known languages 
  1808. because of the unavailability of OS/2 compilers.  That leaves us with Pascal, 
  1809. Ada, Oberon, Modula-2, C, and C++. 
  1810.  
  1811. I don't use Pascal because Modula-2 is basically an upgraded Pascal, and I 
  1812. might as well use the improved version. 
  1813.  
  1814. I haven't looked into the availability of Ada compilers for OS/2; but in any 
  1815. case I don't like Ada because of its complexity.  The bigger a language is, the 
  1816. more things there are to go wrong. 
  1817.  
  1818. Oberon is a more subjective matter.  Some people will tell you that Oberon is 
  1819. the successor to Modula-2, and is a superior programming language.  My personal 
  1820. opinion is that Oberon has deleted some of the features that make Modula-2 a 
  1821. good language.  I agree, however, that this issue is not entirely clear-cut. 
  1822.  
  1823. That brings us to C and C++.  I've done a lot of C and C++ programming over the 
  1824. years, and it's left me with the feeling that those languages are major 
  1825. barriers to programming efficiency.  It takes me roughly twice the time to get 
  1826. a C or C++ program working as it does to get a comparable Modula-2 program 
  1827. working.  (On some projects I've kept logs to verify this.)  The coding time is 
  1828. roughly the same, but there's a major difference in debugging time.  Everyone I 
  1829. know writes buggy software in C and C++, and then they take forever trying to 
  1830. track down the bugs.  Some developers give up, and sell the software with the 
  1831. bugs still included. 
  1832.  
  1833. There are two main reasons why C software is so bug-prone. 
  1834.  
  1835.    1. Lack of type safety.  C is designed in such a way that the compiler can't 
  1836.       do much error checking, so the compiler gives no warnings for things 
  1837.       that, in a type-safe language, would be reported as errors at compile 
  1838.       time.  You don't see the errors until execution time, and then you're 
  1839.       left wondering what caused the error. 
  1840.  
  1841.    2. Poor support for modular programming.  You can break up a C program into 
  1842.       modules, but they're not truly independent of one another.  A slight 
  1843.       change in one module can have catastrophic effects on other modules. 
  1844.       Once a project grows moderately large, you lose control of your own code. 
  1845.  
  1846.  C++ is a little better in these two respects, but C++ has problems of its own. 
  1847.  The language designers tried to graft high-level features onto a low-level 
  1848.  language, and the result is a mass of inconsistency.  A C++ reference manual 
  1849.  is typically several times as thick as manuals for other programming 
  1850.  languages, because every rule has a maze of exceptions and special cases. 
  1851.  
  1852.  In addition, I've noticed that a lot of C++ programmers seem to have adopted 
  1853.  the philosophy of "let's try this, and hope that it works".  The notion that 
  1854.  you shouldn't write code that you don't understand seems to have become 
  1855.  unfashionable.  Maybe that's the fault of the language (and its libraries), 
  1856.  maybe not.  In any case, it's not the way I prefer to work. 
  1857.  
  1858.  Ultimately, the reason I use Modula-2 is that it lets me get applications 
  1859.  working quickly, it gives me control of large projects, and it doesn't force 
  1860.  me to spend huge amounts of time on debugging.  I'm too old to enjoy the 
  1861.  thrill of tracking down obscure bugs.  I like to get something working, and 
  1862.  then be free to move on to other projects. 
  1863.  
  1864.  Of course, it's difficult to guarantee that any piece of software is bug-free, 
  1865.  no matter what development tools you use.  But I can have the next-best thing, 
  1866.  which is an acceptably small error rate. 
  1867.  
  1868.  
  1869. ΓòÉΓòÉΓòÉ 12.3. Known bugs ΓòÉΓòÉΓòÉ
  1870.  
  1871. Known bugs and limitations in Weasel 
  1872.  
  1873.      The option of running from inetd is untested. 
  1874.  
  1875.  
  1876. ΓòÉΓòÉΓòÉ 12.4. Wish list ΓòÉΓòÉΓòÉ
  1877.  
  1878. Wish List 
  1879.  
  1880. A list of things that various people have asked for, and that I might (or might 
  1881. not) implement in a future version. 
  1882.  
  1883. For now there's nothing on the list.  (I've received some requests, but haven't 
  1884. yet sorted them.) 
  1885.  
  1886. Note:  I'm trying very hard to keep Weasel lightweight and simple, so I don't 
  1887. want to add lots of fancy features. My main goal for the future is to add 
  1888. checks that will eliminate some of the junk mail. 
  1889.  
  1890.  
  1891. ΓòÉΓòÉΓòÉ 12.5. Reporting errors ΓòÉΓòÉΓòÉ
  1892.  
  1893. If you find any error that's not mentioned in this document, please report it 
  1894. to peter@ee.newcastle.edu.au. 
  1895.  
  1896. If you need to send me paper mail, the address is 
  1897.  
  1898.         P.J. Moylan 
  1899.         Department of Electrical and Computer Engineering 
  1900.         The University of Newcastle 
  1901.         NSW 2308, Australia. 
  1902.  
  1903.  
  1904. ΓòÉΓòÉΓòÉ 13. Why did the weasel go pop? ΓòÉΓòÉΓòÉ
  1905.  
  1906. Why did the weasel go pop? 
  1907.  
  1908. Many children learn a traditional song from England called "Pop goes the 
  1909. weasel".  There are many versions; this is the one that I learnt as a child. 
  1910.  
  1911.         Half a pound of tuppeny rice
  1912.         Half a pound of treacle
  1913.         That's the way the money goes
  1914.         Pop goes the weasel
  1915.  
  1916. If English is not your native language, you won't understand this. It uses 
  1917. words that aren't properly explained in the dictionary. 
  1918.  
  1919. Tuppeny rice is rice that costs two pennies per pound.  This doesn't sound like 
  1920. much money, but it's a very old song. 
  1921.  
  1922. Your dictionary will probably tell you that a weasel is a small animal. It's 
  1923. true, that is the most common meaning. But not in this song. There are a few 
  1924. different theories on the meaning here.  The most commonly accepted theory is 
  1925. that a weasel was a tailor's iron. This is such an old and unusual meaning of 
  1926. the word that it's missing from even relatively large dictionaries. 
  1927.  
  1928. "Pop" is the noise that you hear when you stick a pin into a balloon. Perhaps 
  1929. it's also the noise that happens when you pump too much air into a small furry 
  1930. animal; but I'm not sure, because I've never tried that experiment. 
  1931.  
  1932. In English, though, short words usually have more than one meaning. In this 
  1933. song, "pop" means "pawn". You pawn something by taking it to a pawnshop. A 
  1934. pawnshop is a place that will lend you money in exchange for anything valuable. 
  1935. Maybe next week you'll have enough money to buy back the items that you pawned. 
  1936. Maybe not. A pawnshop is a method for making poor people even poorer. 
  1937.  
  1938. By now you should be able to guess the meaning of the song. The poor fellow has 
  1939. had to pawn his weasel in order to buy food (rice and treacle). 
  1940.  
  1941. In case you're feeling sorry for him, I'll tell you the second verse of the 
  1942. song. 
  1943.  
  1944.         Up and down the City Road,
  1945.         In and out of the Eagle
  1946.         That's the way the money goes
  1947.         Pop goes the weasel
  1948.  
  1949. In this verse, "The Eagle" is the name of a pub: a place that sells alcoholic 
  1950. drinks. Alcohol is usually more expensive than rice and treacle. I'll leave you 
  1951. to draw your own conclusions. 
  1952.  
  1953. There is, I've been told, still a pub called "The Eagle" near the City Road in 
  1954. London.  That one was built somewhere near the beginning of the 19th century. 
  1955. Before that, there was another pub with the same name and in approximately the 
  1956. same location.  The song "Pop goes the weasel" probably comes from a long time 
  1957. earlier than the 19th century; I don't know whether anyone knows exactly how 
  1958. old it is.