home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-1.iso / CDROM / FAQs / Unix / email < prev    next >
Encoding:
Text File  |  1996-09-24  |  107.1 KB  |  2,991 lines

  1. Path: informatik.tu-muenchen.de!lrz-muenchen.de!uni-erlangen.de!news.tu-chemnitz.de!zrz.TU-Berlin.DE!news.uni-ulm.de!rz.uni-karlsruhe.de!blackbush.xlink.net!tank.news.pipex.net!pipex!arclight.uoregon.edu!news.sprintlink.net!news-stk-200.sprintlink.net!news.sgi.com!news-peer.gsl.net!news.gsl.net!portc01.blue.aol.com!newsstand.cit.cornell.edu!news.acsu.buffalo.edu!news.drenet.dnd.ca!crc-news.doc.ca!nott!bcarh189.bnr.ca!nrchh45.rich.nt.com!ferret.ocunix.on.ca!resurrect
  2. From: andrew@tamarix.demon.co.uk (Andrew Josey)
  3. Newsgroups: comp.unix.unixware.misc,comp.answers,news.answers
  4. Subject: UnixWare Frequently Asked Questions (The Email system)
  5. Supersedes: <DvyxLG.20I@tamarix.demon.co.uk>
  6. Followup-To: comp.unix.unixware.misc
  7. Date: Sun, 22 Sep 1996 07:06:00 GMT
  8. Organization: Home.
  9. Lines: 2969
  10. Sender: news@tamarix.demon.co.uk
  11. Approved: news-answers-request@MIT.EDU
  12. Expires: Sun, 27 Oct 1996 00:00:00 GMT
  13. Message-ID: <R.Dy4H20.qx@tamarix.demon.co.uk>
  14. NNTP-Posting-Host: localhost
  15. Summary: Answers to questions frequently asked about SCO's UnixWare product
  16. X-NNTP-Posting-Host: tamarix.demon.co.uk
  17. X-Newsreader: TIN [version 1.2 PL2]
  18. Xref: informatik.tu-muenchen.de comp.unix.unixware.misc:17531 comp.answers:21233 news.answers:82327
  19.  
  20. Reposting article removed by rogue canceller.
  21.  
  22. Archive-name: unix-faq/unixware/email
  23. Posting-Frequency: monthly
  24. Last-modified: Aug 20 1996
  25. Version: 2.10
  26.  
  27. UnixWarefi Frequently Asked Questions List ( The Email system ) 
  28.  
  29. For more information about the files which make up the total UnixWare
  30. FAQ, see the "FAQ Overview" file posted regularly on the Internet
  31. newsgroup comp.unix.unixware.misc.
  32.  
  33. INTRODUCTION 
  34.  
  35. This is the Email section of the UnixWare Frequently Asked Questions
  36. file maintained on the Internet. Its maintainers is Andrew Josey (
  37. andrew@tamarix.demon.co.uk). Suggestions and contributions are always
  38. welcome.
  39.  
  40. The purpose of this document is to give answers to frequently asked
  41. questions on Email configuration in UnixWare 1.x and 2.x for the
  42. "mailsurr" subsystem. This document applies to both UnixWare 1.x and
  43. 2.x, please look for version specific notes within this document stating
  44. applicability of individual subsections.
  45.  
  46. This document in this revision does not cover sendmail, if you want to
  47. know about to make sendmail the default mailer, click here.
  48.  
  49. If you are setting up Email for the first time, please check Questions
  50. M2 and M15 first, which document known problems in the Email system and
  51. give an overview of key steps to setup for internet mail. If you use
  52. dialup PPP see M52.
  53.  
  54. This document and the other FAQ files may be found on the world wide web at 
  55. http://www.freebird.org/faq/ 
  56.  
  57. This document may also be obtained by anonymous ftp from the freebird
  58. archive at
  59.  
  60.  o ftp.freebird.org:/unixware/freebird/hints/FAQ/email 
  61.  o ftp1.freebird.org:/pub/mirror/freebird/hints/FAQ/email 
  62.  o ftp2.freebird.org:/pub/unixware/freebird/hints/FAQ/email 
  63.  
  64. Small print: This file is Copyright 1996 freebird.org. Permission is
  65. granted for copying for non-commercial use. Many proper names of
  66. companies and software mentioned in these files are trademarks of their
  67. respective owners. All views are those of the individual contributors
  68. and not of their employers.
  69.  
  70.  
  71. TABLE OF CONTENTS
  72.  
  73. M1) What is the default Mailer on UnixWare ?
  74. M2) Are there any mail related bug fixes for UnixWare 2 ?
  75. M3) Is there any documentation describing the mail subsystem?
  76. M4) I've seen mention of the createSurr command and autoconfiguration
  77.     of the mail subsystem - what is this and what does it do?
  78. M5) Where are the configuration files used by the mail subsystem?
  79. M6) How do I set the domain name used in the From: line?
  80. M7) What other configuration parameters can I set in the 
  81.     /etc/mail/mailcnfg file?
  82. M8) How does mail get delivered and how does the /etc/mail/mailsurr file work?
  83. M9) How can I setup mail aliasing?
  84. M10) How are uucp and smtp handled by the mailsurr file?
  85. M10.1) How do I setup uucp over TCP between two UnixWare machines?
  86. M11) I want to setup uucp outbound over a modem, how do I setup
  87.      the uucp files?
  88. M12) I'm using UW1.x and the From: line for inbound smtp
  89.      mail is in bang format when I want it in domain address format, what
  90.      should I change?
  91. M13) How do I setup mail logging?
  92. M14) How do I setup Smart Routing - using pathrouter ?
  93.  
  94. M15) What do I need to do to Set Up an Internet/Uucp Mail Gateway on UnixWare2?
  95. M15.1) Setup mail alias lookups via DNS, NIS or MHS (/etc/mail/lookupLibs)
  96. M15.2) Set the mail domain information in /etc/mail/mailcnfg
  97. M15.3) Setup any header rewrite rules (/etc/mail/rewrite)
  98. M15.4) Customizing /etc/mail/mailsurr (/usr/lib/mail/mailsurr.proto)
  99. M15.5) Setting up delivery lines to mail-servers, list-processors etc
  100. M15.6) Activating mail logging 
  101. M15.7) Setting up suitable defaults for mailx users
  102. M15.8) If you have local users, then add other mail-user agents 
  103. M15.9) Update /etc/profile
  104. M15.10) Setting up smart routing between uucp and internet zones
  105. M15.11) Add a rule to mailsurr.proto to catch mail to unknown local users.
  106. M15.12) Setup uucp over the connection server for  uucp over
  107. M15.13) Setup mail alias files
  108. M15.14) Install an alternate incoming smtpd 
  109. M15.15) Install the TCP/SPX wrappers so as to monitor who is connecting.
  110. M15.16) An example /usr/lib/mail/mailsurr.proto for this configuration
  111. M16) I have UW2 and my inbound smtpd keeps dying. Is there a fix?
  112. M17) I have UW2 - smtpd now runs as a daemon - is there a way to run
  113.      it from inetd? Running from inetd makes it more reliable and also
  114.      can be wrapped.
  115. M18) I have UW2  and my outbound smtp  does incorrect routing to MX
  116.      record sites and also continually bounces mail when sending
  117.      to an unknown user when it should only bounce once - is there a fix?
  118. M19) I'm having trouble routing email from my local machine to the net.
  119.      I'm connected to a local internet provider and can run Mosaic etc 
  120.      but can't send email. What do i need to do to make this work?
  121. M20) Mail sent to my domain mydom.com does not arrive locally on the
  122.      machine. It gets here but the local mailsystem does not recognise it
  123.      as local.
  124. M20.1) How can I set other mail domains besides my real domain
  125.             to be treated as local?
  126. M21) I'm using UnixWare2 and when mail arrives locally the Return-Path:
  127.      header has the format @myprovider:remotedomain!user or @domain:user or
  128.      @domain:user@domain.  Is there someway to put this into normal 
  129.      domain address format?
  130. M22) Large mail alias lists don't seem to work on UnixWare 2. Is this
  131.      a known problem?
  132. M23) smtp mail to hosts which only have MX records and no valid A 
  133.      records never gets there? This is with the 2.0 developer release.
  134. M24) How do I make the mailsystem send mail for local addresses off
  135.      to another host if they are not found locally without setting up
  136.      aliases?
  137. M25) How can I get mailx/dtmail to add fullname information to 
  138.      the From: line?
  139. M26) How can I set the From: line  (hiding the internal hosts to a 
  140.      mail domain)?
  141. M27) I want to setup a cluster of machines, with a single mail
  142.      gateway machine.
  143. M28) How can i make bounced email go to the postmaster if the user
  144.      address is invalid?
  145. M29) How can i debug mail delivery?
  146. M30) How can i debug the /etc/mail/rewrite rules?
  147. M31) How can I use the rewrite rules to rewrite a To: header
  148.      of the format uunet!domain!user to user@domain?
  149. M32) I have  tcp installed yet i only want to do transfers over 
  150.      uucp. How do i make the mailsurr file exclude the smtpqer delivery lines?
  151. M33) I'm sending to a SCO system over uucp which only understands 
  152.      RFC822. The UnixWare mailsystem inserts an extra From line which 
  153.      upsets the SCO mailer.
  154. M34) Where are outgoing messages stored for smtp?
  155. M35) Mail is bouncing back with problems about an invalid 
  156.      From header line, what should I do?
  157. M36) After changing the system owner to another user and 
  158.      deleting the original user, mail is still being sent to the original 
  159.      system owner for example when a new package is installed, 
  160.      and errors stating "unable to send to " appear after adding a package.
  161. M37) Why when I send local mail does my PPP link get established, for
  162.      example when I pkgadd or pkgrm a package?
  163. M38) Is it possible to change the sender address with 
  164. mailsurr's translation facilities?  The man page indicates 
  165. that only the recipient address can be changed.  
  166. Am I going to have to move to sendmail?
  167. M39) How do I setup a POP3 server on UnixWare ?
  168. M40) I'm using UnixWare 1.x and  I can't find the createSurr command, 
  169.      what should i do?
  170. M41) How do I setup my mail to be autoanswered?
  171. M42) How do I setup my mail to be forwarded?
  172. M43) How do I setup a mail-server?
  173. M44) How do I  setup a mailing list - such as Listproc ?
  174. M45) How do I  make sendmail the default mailer?
  175. M46) Mail of the address format @mylocal.domain:user@mylocal.domain is not
  176.      delivered locally, how can I fix this?
  177. M47) dtmail won't restart after my machine was switched off.
  178. M48) Inbound mail is addressed to <@site.demon.co.uk:user@domain.co.uk>
  179.      and does not get delivered to the local user.
  180. M49) I'm using PPP but don't have the interface up when the system
  181.     creates the mailsurr file, and thus it does not detect my IP
  182.     link - what can I do?
  183. M50) How can I set mailalias in the form : user@site  maps to local user?
  184. M51) What is the /etc/mail/smtpcnfg file in tf2100/UW2.1?
  185. M52) How should I setup Mail via PPP?
  186. M53) How can I setup mail to handle virtual hosts's mail?
  187. M54) I need to print all incoming mail as well as send it to local users.
  188. M55) Mail loops - its forwarded by my provider but then goes into a loop - any ideas?
  189. M56) Mail delivery does not seem to be case insensitive - any ideas?
  190.  
  191.  
  192.  
  193. Subject: M1) What is the default Mailer on UnixWare?
  194.  
  195. The default mailer on UnixWare is based on SVR4 mail and was originally
  196. developed at AT&T Bell Labs.  This mailer uses a regular-expression 
  197. based parser (/etc/mail/mailsurr) to deliver mail - this is similar in 
  198. format to sendmail but is not sendmail.
  199. It supports SMTP, UUCP mail, mailing list directories, 
  200. mail aliases and an MHS gateway.
  201.  
  202. Sendmail is also included on the system and can be used instead
  203. of the mailsurr subsystem  but is not the officially
  204. supported mailer (see question M45 for how to make sendmail
  205. the default mailer).
  206.  
  207.  
  208. Subject: M2) Are there any mail related bug fixes for UnixWare2 ?
  209.  
  210. If you have UnixWare 2.01/2.02/2.03 you should install tf2100.tar.
  211. (IGNORE THE RELEASE NOTES for tf2100 that say the fixes are in 2.03,
  212. the final version of tf2100 was after 2.03, so you do need it).
  213.  
  214. If you have UnixWare 2.1 you DO NOT need to install tf2100.tar.
  215.  
  216. IMPORTANT: before install tf2100 backup any customised versions
  217. of /etc/mail/rewrite or /usr/lib/mail/mailsurr.proto or /etc/mail/mailsurr.
  218.  
  219. This fixes various difficulties with smtpd dying, and smtp
  220. not being able to deliver to certain MX record combinations.
  221.  
  222. Symptoms:
  223. smtp core dumps and times out connections.
  224. RCPT TO: line is not fully qualified - Not compatible with MS mail.
  225. smtp.pid does not get reset properly on system reboot.
  226. smtpd dies without notice or gets into a tight loop.
  227. Popper does not send body of mail to pop3 clients.
  228.        
  229. IT IS HIGHLY RECOMMENDED THAT YOU APPLY TF2100.tar
  230. IF YOU PLAN ON CONNECTING YOUR MACHINE TO THE 
  231. INTERNET AND USING MAILSURR
  232.  
  233. My recommended solution for 2.01/2.02/2.03 is as follows: If you
  234. use the MHS gateway use tf2101.tar, if you only use smtp/uucp
  235. use tf2100.tar and then you might also consider using smap/smapd as a
  236. replacement smtpd running out of inetd (see section M17)
  237.  
  238. There is one problemette with tf2100. Its outbound smtp
  239. holds open a tcp DNS connection. An alternate smtp daemon
  240. is available to fix this on ftp.abs.net:/unixware/freebird/hints/Mail
  241. mailupd.smtp. This updated smtp daemon will also work on UW2.1.
  242.  
  243.  
  244. Tf2101.tar (applicable to 2.01/2.02 - this fix is included in 2.03) 
  245. is available  on ftp.sco.com:/UW20 
  246. fixing numerous problems with the MHS gateway. The two biggest 
  247. problems it fixes are:
  248.  
  249. 1. Users cannot reply to sender due to incorrect Sender lines
  250. 2. Attachments cannot be sent.
  251.  
  252.  
  253. Subject: M3) Is there any documentation describing the mail subsystem?
  254.  
  255. If you are using UnixWare 2, please check
  256. the on-line Dynatext documentation ; two sections are available in
  257. postscript form from the freebird archive in the files:
  258.         hints/Mail/mailserver_admin.UW2.ps.Z
  259.         hints/Mail/setup_mail.UW2.ps.Z
  260.  
  261. For information on accessing the Freebird archive
  262. see the UnixWare resource section of the  "FAQ Overview".
  263.  
  264. Subject: M4) I've seen mention of the createSurr command and autoconfiguration
  265. of the mail subsystem - what is this and what does it do?
  266.  
  267. Firstly you should setup your DNS and uucp links,  if any, and then 
  268. run the /usr/lib/mail/surrcmd/createSurr autoconfiguration command ; this 
  269. takes a look at your configuration and tries to generate an appropriate 
  270. configuration file (/etc/mail/mailsurr) for your system.  For example
  271. if you have TCP/IP installed and uucp configured then a mail configuration
  272. that attempts delivery over both those transports is produced; if this
  273. is not what you intended for example you only want to send email over
  274. uucp even though you have tcp/ip then read on.
  275.  
  276.  
  277. ** UnixWare 2 note: On UnixWare 2 the createSurr command is run
  278.    automatically on each reboot in /etc/rc2.d/S81smtp, thus any changes
  279.    you wish to make permanent must always be applied to the mailsurr.proto
  280.    file in /usr/lib/mail rather than the /etc/mail/mailsurr file. Of course
  281.    another option would be for you to comment the line out in S81smtp.
  282.    The first thing you might want to try prior to any other changes is
  283.    to run the new GUI admin tool for Mail Setup, in Admin_Tools/Mail_Setup,
  284.    select extended and save the selection.
  285.  
  286. The next section describes in some detail how createSurr works.
  287.  
  288. The mail autoconfiguration routine invoked by 
  289. /usr/lib/mail/surrcmd/createSurr consults the perl script  (note that
  290. UnixWare includes a cut down version of perl 4.036 in /usr/gnu/bin)
  291. /usr/lib/mail/surrcmd/configCheck to probe the system configuration, followed
  292. by /usr/lib/mail/surrcmd/configMail to update the /etc/mail/mailsurr file.
  293.  
  294. In detail the sequence is as follows:
  295.  
  296.         createSurr
  297.                 calls-> configCheck
  298.                                 opens-> /etc/mail/mailflgs
  299.                                         /etc/mail/mailcnfg
  300.                                         /etc/mail/smfcnfg
  301.                                         /etc/resolv.conf
  302.                                         /etc/uucp/Systems
  303.                                         /etc/confnet.d/inet/interface
  304.                                 updates-> /etc/mail/mailflgs
  305.                 calls-> configMail
  306.                                 opens-> /etc/mail/mailflgs
  307.                                         /etc/mail/mailsurr.proto
  308.                                 updates-> /etc/mail/mailsurr
  309.  
  310. Subject: M5) What are the configuration files used by the mail subsystem?
  311.  
  312. The configuration files are stored in /etc/mail and in /usr/lib/mail.
  313.  
  314. The key files in /etc/mail are:
  315.         mailcnfg        mailsurr        rewrite         lookupLibs
  316.  
  317. The key files in /usr/lib/mail are:
  318.         mailsurr.proto lookupLibs.proto
  319.  
  320. The /etc/mail/mailcnfg file:
  321.  
  322. This file  is used to initialise the mail configuration;
  323. in UnixWare 2 the GUI Mail_setup tool edits this file.
  324. The fields DOMAIN and SMARTERHOST are of particular importance.
  325.  
  326. DOMAIN  - string used to supply the domain name for the From: line
  327.  
  328. SMARTERHOST - can be set to a machine that has better routing information
  329. in case the local machine does not understand the address. Its
  330. possible and desirable for some workstations to route all mail
  331. to the SMARTERHOST; if you are connecting to the internet you probably
  332. want to set SMARTERHOST to the name of your ISP.
  333.  
  334. The /etc/mail/mailsurr file:
  335.  
  336. This file contains a set of rules for routing and transport of mail.
  337. This is further described later in this document.
  338.  
  339. The /etc/mail/rewrite file:
  340.  
  341. This is new in UnixWare 2 and allows mail header rewriting (see 
  342. rewrite(4) and the Dynatext documents referred to in section M3) .
  343.  
  344. The /etc/mail/rewrite contains functions to rewrite mail headers for
  345. local (called in the local() function) and remote delivery (called in
  346. the main() function). 
  347.  
  348. An example  of changing the From: lines to hide internal
  349. hosts is given in question M15  section 3.
  350.  
  351. The /etc/mail/lookupLibs files:
  352.  
  353. This is new in UnixWare 2 and is a file containing the names of the
  354. shared libraries to be opened when the mailalias command (which is
  355. run by mail when parsing the mailsurr file). This determines where
  356. aliases should be found. Its possible using this for alias lookup to
  357. use the DNS and NIS. 
  358. This file is autoconfigured.
  359.  
  360. The /usr/lib/mail/mailsurr.proto file:
  361.  
  362. This contains the default mailsurr rules for different configurations.
  363. This file is used to create the file /etc/mail/mailsurr. Permanent
  364. changes to /etc/mail/mailsurr should be made by editing this file.
  365. This is further described later in this document.
  366.  
  367. The /usr/lib/mail/lookupLibs.proto file:
  368.  
  369. This is new in UnixWare 2.
  370. This contains the default mailalias lookup rules. This file is used
  371. to create the file /etc/mail/lookupLibs. Permanent changes to that
  372. file should be made by editing this file.
  373. This is further described later in this document.
  374.  
  375. The /etc/mail/smtpcnfg file:
  376.  
  377. This is new in tf2100 and UnixWare 2.1.
  378. The contains initialisation information for the behaviour of smtp.
  379. See M50 for details of the default values in this file.
  380.  
  381. Subject: M6) How do I set the domain name used in the From: line?
  382.  
  383. In UnixWare2 the Mail_setup GUI tool can be used to set the domain
  384. address. This edits a file called /etc/mail/mailcnfg and adds
  385. a line, for example to set the domain to "mydomain.com"
  386.  
  387. DOMAIN=mydomain.com
  388.  
  389. Subject: M7) What other configuration parameters can I set in the 
  390. /etc/mail/mailcnfg file?
  391.  
  392.  
  393. CLUSTER - can be used to name a group of machines. The string supplied
  394. is used instead of the domain name when mail supplies the
  395. remote from line. (with the /etc/mail/rewrite file included
  396. in UnixWare 2 - i no longer use this field but add a rewrite
  397. function instead)
  398.  
  399. FAILSAFE - can be used to denote a machine to which delivery should
  400. be made in case local delivery fails - useful when using
  401. mail in a networked environment
  402.  
  403. DEL_EMPTY_FILE - if value set to no empty mailfiles are not deleted by
  404. mail or mailx
  405.  
  406. ADD_DATE - if set to true, i.e ADD_DATE=true, the mailer will add a Date:
  407. line if one does not already exit
  408.  
  409. ADD_FROM - if set to true, i.e ADD_FROM=true, the mailer will add a From:
  410. line if one does not already exit
  411.  
  412. If you're using UnixWare 1.x and you use uucp transfer you may also 
  413. want to set the REMOTEFROM field which be used to set an alternate From 
  414. line (note, not From: ).  which will be used rather than the cluster name e.g.
  415.  
  416. REMOTEFROM=real.addr.domain
  417.  
  418. (In UnixWare 2  REMOTEFROM is not supported, similar functionality
  419. can be had by using the add_from_header function from /etc/mail/rewrite)
  420.  
  421.  
  422. Subject: M8) How does mail get delivered and how does the /etc/mail/mailsurr 
  423.              file work?
  424.  
  425. Incoming mail over smtp is received over TCP/IP on port 25.
  426. In UnixWare 1.x the inetd server listens on port 25 and invokes 
  427. in.smtpd to receive the mail.  In UnixWare 2.x an smtpd daemon process listens
  428. on port 25 to receive mail
  429.  
  430. Once mail is received by the smtp receiver it is passed to
  431. the rmail process which then uses the regular expression based
  432. parser (/etc/mail/mailsurr) to decide how to do deliver the mail.
  433.  
  434. Incoming mail over uucp is queued in /var/spool/uucp/sitename and then
  435. uux scans that directory and passes the mail off to the 
  436. rmail process for delivery.
  437.  
  438. Outgoing mail is handed to rmail which based on the address and
  439. the mailsurr rules in place  delivers the mail accordingly.
  440.  
  441.  
  442. The file /etc/mail/mailsurr contains a set of rules for routing and 
  443. transport of mail.
  444.  
  445. This file is automatically created by the command
  446. /usr/lib/mail/surrcmd/createSurr by scanning the system configuration
  447. and a template mailsurr prototype file in /usr/lib/mail/mailsurr.proto.
  448.  
  449. To make permanent changes to this file edit the mailsurr.proto file
  450. and then rerun the createSurr command.
  451.  
  452. The mail autoconfiguration routine invoked by /usr/lib/mail/surrcmd/createSurr 
  453. consults the perl script /usr/lib/mail/surrcmd/configCheck to probe the system 
  454. configuration. 
  455.  
  456. After scanning the system the file /etc/mail/mailflgs 
  457. contains flags for the configuration options autoconfigured. Examination of the
  458. mailsurr.proto shows the same flags with conditional mailsurr entries.
  459.  
  460. The possible flags in /etc/mail/mailflgs are SMTR, MHS, DNS, UUCP and IP:
  461.  
  462. SMTR if SMARTERHOST is set in /etc/mail/mailcnfg
  463.  
  464. MHS is set if %g is set in /etc/mail/mailcnfg (MHS gateway )
  465. This may be set off if MHSINTERVAL is set to 0 in /etc/mail/smfcnfg
  466.  
  467. DNS is set if there is a resolver set in /etc/resolv.conf
  468. UUCP is set if there are entries in /etc/uucp/Systems
  469. IP is set if it determines there is a valid device in
  470. /etc/confnet.d/inet/interface
  471.            
  472.  
  473. The createSurr command the invokes /usr/lib/mail/surrcmd/configMail to
  474. produce the updated /etc/mail/mailsurr file.
  475.  
  476. Looking at the file created (see mailsurr(4) for full details).
  477. Each entry in the /etc/mail/mailsurr file consists of three fields.
  478.  
  479. 'sender'          'recipient'   'command'
  480.  
  481. The sender and recipient fields are regular expressions.  If
  482. these first two fields match those of the mail message being
  483. processed, the associated command is run.
  484.  
  485. Some sample mailsurr entries follow - don't worry if you don't
  486. understand these, for a full explanation you can refer to the 
  487. UnixWare man page for mailsurr(4).
  488.  
  489. # mail-server, mailing lists and information distribution handling section
  490. '.+'    'mail-server'   '<      /opt/lib/mserv/listener'
  491. '.+'    'listproc'      '<S=0;      /home/listserv/catmail -r -f'
  492.  
  493. #    Send mail for `laser' to   attached laser printer
  494. #    Make certain that failures are reported via return mail.
  495. '.+' 'laser'     '< S=0;F=*; lp -dlaser'
  496.  
  497. #    For remote mail via uucp
  498. '.+' '([^!@]+)!(.+)'     '< /usr/bin/uux - \\1!rmail (\\2)'
  499.  
  500.  
  501. Examples of mailsurr/mailsurr.proto/mailcnfg files for a uucp/internet 
  502. gateway  and client workstation in cluster configurations for both
  503. UnixWare 1.x and UnixWare 2 are available from the Freebird archive
  504. in the directory hints:
  505.         Mail/README
  506.         Mail/mailsurr
  507.         Mail/mailcnfg
  508.         Mail/client.mailcnfg
  509.         Mail/client.mailsurr
  510.         Mail/client.mailcnfg.uw2
  511.         Mail/client.mailsurr.uw2
  512.         Mail/mailcnfg.uw2
  513.         Mail/mailsurr.proto.uw2
  514.         
  515. Subject: M9) How can I setup mail aliasing?
  516.  
  517. UnixWare mail has a convenient method of alias processing, and the
  518. mailer calls a utility called mailalias. 
  519.  
  520. The mailalias utility if it cannot find a user locally or a mailbox 
  521. (UnixWare mail delivers to mailfiles as well as users - so
  522. you can just places a mailbox into /var/mail without setting
  523. up a user account) looks for a list 
  524. of alias files in the configuration file /etc/mail/namefiles.
  525.  
  526. Note that mailsurr does not use any of the sendmail aliasing
  527. files (i.e. /usr/ucblib/aliases).
  528.  
  529. The default files are /etc/mail/lists and /etc/mail/names. In our
  530. local installation we've added added a couple of local files, 
  531. /etc/mail/groups for internal groups, /etc/mail/localiases for 
  532. internal distribution and /etc/mail/fullnames 
  533. which has alternate  long names; so this file looks like:
  534.  
  535. # --- example /etc/mail/namefiles -----
  536. /etc/mail/lists
  537. /etc/mail/names
  538. # Local add-ons
  539. /etc/mail/groups
  540. /etc/mail/localiases
  541. /etc/mail/fullnames
  542. # -----end example ----
  543.  
  544. /etc/mail/groups could be:
  545.  
  546. # ---- example /etc/mail/groups -----
  547. #       All the local groups within Sitename.This is the definitive copy used by
  548. #       all the mail interfaces (it's totally transparent to them all).
  549. #
  550.  
  551. managers        john fred wendy june
  552. staff           joan michelle rita \
  553.                 sarah brendan
  554. all             managers staff
  555. # --- end example --
  556.  
  557. /etc/mail/localiases could be:
  558.  
  559. # ----- example /etc/mail/localiases ----
  560. #       localiases:
  561. #               These are purely local, readily changeable aliases for mapping
  562. #       user@site.domain to internal host!user
  563. #
  564. # This file is for the gateway
  565.  
  566. john            argus!john
  567. fred            argus!fred
  568. wendy           woolco!wendy
  569. june            sun4!june
  570. rita            olim380!rita
  571. sarah           olim380!sarah
  572. brendan         sun4!brendan
  573. # -- end example --
  574.  
  575. /etc/mail/fullnames could be:
  576.  
  577. # --- example /etc/mail/fullnames ---
  578. j.williams      john
  579. john.williams   john
  580. f.jones         fred
  581. fred.jones      fred
  582. w.jones         wendy
  583. wendy.jones     wendy
  584. r.arnold        rita
  585. rita.arnold     rita
  586. # common misspellings can also be included
  587. sara            sarah
  588. brendon         brendan
  589. # --- end example ----
  590.  
  591.  
  592. Subject: M10) How are uucp and smtp handled by the mailsurr file?
  593.  
  594. Delivery by uucp is driven off the /etc/uucp files. If you wish to
  595. do some smart routing see the later section on pathrouter..
  596.  
  597. Use of smtp can we be done either using DNS lookup or not.
  598. Typically for internal hosts in a cluster, we set smarterhost
  599. (in /etc/mail/mailcnfg) to our internet gateway, and then
  600. that host does the DNS lookup.
  601.  
  602. To choose smtp delivery before uucp swap the two lines below (example for 
  603. UnixWare 1.x).  If you want to use DNS lookup remove the "-N" from the smtpqer
  604. line.
  605.  
  606. #UnixWare 1.x example uucp delivery first, followed by smtp
  607. '.+'    '!([^!]+)!(.+)'         '< B=1024; uux -a %R -p -- \\1!rmail' '(\\2)'
  608. '.+'    '!([^!]+)!(.+)'         '< B=4096; smtpqer -N %R \\1' '\\2'
  609.  
  610.  
  611. ** UnixWare 2 note: The mailsurr lines in UnixWare 2  default to use 
  612. domain addressing rather than ! notation. They appear different but the
  613. ordering may be changed.
  614.  
  615. # UnixWare 2 example: The mail transports go here.
  616. # smtp delivery first followed by uucp
  617. # If DNS is not used, use "smtpqer -N". If DNS is used, remove the "-N".
  618. #
  619. '.+'    '([^@,:]+)@(.+)'        '< B=4096; /usr/lib/mail/surrcmd/smtpqer -f %R -s %X' '\\1@\\2'
  620. '.+'    '(@[^@,:]+[,:].+)'      '< B=4096; /usr/lib/mail/surrcmd/smtpqer -f %R -s %X' '\\1'
  621. '.+'    '([^@,:]+)@(.+)%D'      '< H=add_from_header;B=1024; uux -a %R -p -- \\2 !rmail' '(\\1)'
  622. '.+'    '@([^@,:]+)%D[,:](.+)'  '< H=add_from_header;B=1024; uux -a %R -p -- \\1 !rmail' '(\\2)' 
  623.  
  624. Tip: If you are using dialup uucp you may want to change the uux command
  625. invoked to add the "-r" flag so that mail will be queued for delivery,
  626. rather than attempting delivery at the time the mail is sent. The mail
  627. can then be sent when the uucp system polls the site which is more
  628. efficient. An example of a uucp delivery line with the -r flag added
  629. follows:
  630.  
  631. # invoke uux with -r flag to queue mail for delivery
  632. '.+'    '([^@,:]+)@(.+)%D'      '< H=add_from_header;B=1024; uux -a %R -p -- \\2 !rmail' '(\\1)'
  633. '.+'    '@([^@,:]+)%D[,:](.+)'  '< H=add_from_header;B=1024; uux -r -a %R -p -- \\1 !rmail' '(\\2)' 
  634.  
  635. Since your mailsurr file was created by the createSurr command then remember
  636. to make the changes permanent by editing the file
  637. /usr/lib/mail/mailsurr.proto (the template prototype file).
  638.  
  639. Subject: M10.1) How do I setup uucp over TCP between two UnixWare machines?
  640.  
  641. Step 1. Edit /etc/uucp/Devices and uncomment the following line
  642.  
  643. CS  - - - CS   
  644.  
  645. This then uses the connection server to make connections.
  646.  
  647.  
  648. Step 2. Edit /etc/uucp/Systems , add a line for each system you
  649. want to talk to, for example to system raven
  650.  
  651. raven     Any CS - -,listen:10103 
  652.  
  653. This entry makes "uucico" run over the TCP network.  
  654. It causes the Connection Server to connect to the "10103" service 
  655. through the "listen" service. The "10103" service invokes uucico.
  656.  
  657. Step 3. Edit /etc/uucp/Permissions, to allow remote systems 
  658. connecting over the connection server to send and request files (note
  659. that remote systems also need an entry in /etc/uucp/Systems).
  660.  
  661. LOGNAME=nuucp SENDFILES=yes REQUEST=yes
  662.  
  663.  
  664.  
  665. M11) I want to setup uucp outbound over a modem, how do I setup
  666. the uucp files?
  667.  
  668. In UnixWare2 you can do this using the Dialup_setup GUI tool.
  669.  
  670. Alternately I carry a floppy with the following files from /etc/uucp
  671. that I install when I want to setup my laptop to call outbound:
  672.  
  673.         Config  Devices Devices.tcp Dialers Systems
  674.  
  675. This configuration is for a Hayes compatible modem, and is known
  676. to work with Supra modems, Multitech ZDX modems and US Robotics.
  677. These files can be obtained from the freebird archive in the file
  678.  
  679.         hints/Mail/uucp.quick.tar.Z
  680.  
  681. Subject: M12) I'm using UW1.x and the From: line for inbound smtp
  682. mail is in bang format when I want it in domain address format, what
  683. should I change?
  684.  
  685. Change to /etc/inet/inetd.conf [ Applies only to UnixWare 1.x]
  686.  
  687. In UnixWare 1.x smtp is run as an inetd service each time a request comes
  688. in. If you're running UnixWare 1.x you most probably want to make
  689. the change below:
  690.  
  691. One problem you can get if you deliver over smtp is that the mail 
  692. subsystem rewrites the From: line from
  693. internet format to uucp format.  To change this edit the
  694. smtp line in /etc/inet/inetd.conf (on the receiving host) and add 
  695. the -r flag to tell smtpq not to rewrite the addresses.
  696.  
  697. smtp    stream  tcp     nowait  smtp    /usr/lib/mail/surrcmd/in.smtpd  in.smtpd -H novell.co.uk -r
  698.  
  699. (in the above example we fixed the Helo string to be novell.co.uk, you
  700. probably want to change this or you can omit it altogether).
  701.  
  702. Remember to restart inetd, or send it a HUP signal to re-read the config file.
  703.  
  704. # ps -ef|grep inetd
  705. root   268   262  0   Dec 01 ?        3:25 /usr/sbin/inetd 
  706. andrew 17546 17313  6 14:43:58 pts/5    0:00 grep inetd 
  707.  
  708. # kill -HUP 268
  709.  
  710. ** UnixWare 2.x note; In UnixWare 2 smtpd is run as a daemon rather than being
  711. started by the inetd process, so the above does not apply. The only
  712. option supported in UW2 is -d debug_level.  It has been reported that when
  713. upgrading from UnixWare 1.x to UnixWare 2, that some of the old daemons
  714. are not removed, so you may want to hand check your /etc/inet/inetd.conf
  715. file and comment out any in.smtpd entries carried over - remembering
  716. to restart inetd afterwards.
  717.  
  718. Subject: M13) How do I setup mail logging?
  719.  
  720. The following mailsurr entries log successful and failed deliveries in
  721. /var/mail/:log and /var/mail:errors respectively.  In UnixWare 1.x these
  722. are files, in UnixWare 2 these are directories.
  723.  
  724. # Log mail delivery
  725. #
  726. '.+'    '.+'    '> W=1;B=*; maillog -o /var/mail/:log' '-O %O %R %n %H %l --'
  727. '.+'    '.+'    'Errors W=1;B=*; maillog -o /var/mail/:errors' '-O %O %R %n %H %l --'
  728.  
  729. If you are using UnixWare 1.x and enable these be sure to setup a cron to 
  730. periodically trim them (not necessary for UnixWare 2 since it
  731. logs to one file for each day of the week, truncating any existing
  732. files at the start of each day -see below).
  733.  
  734. To turn on logging for incoming and outgoing mail, execute the 
  735. following command:
  736.  
  737. #/usr/lib/mail/surrcmd/createSurr -l on
  738.  
  739. In UnixWare 2 you can also select the appropriate part of the GUI setup
  740. to turn logging on.
  741.  
  742. ** UnixWare 2 Note:  The log files are different between UnixWare 1.x and
  743. UnixWare 2. Logs are now kept in directories with a different log being
  744. stored each day in a file denoted by the day name, ie. Monday,....Sunday
  745. for the 7 days. If you prefer the old style format of logging to
  746. just a single file , its very simple just to replace the logging tool
  747. with either your own or the one from UnixWare 1.x. (from the Freebird
  748. archive ...freebird/hints/Mail/maillog.alt).
  749.  
  750. Logs for smtp delivery are kept in /var/spool/smptq/LOG* in UnixWare 1.x
  751.  
  752. To determine problems with outgoing mail, check the /var/spool/smtpq/LOG file.
  753. Each time a mail message is sent, a log of the delivery command is appended 
  754. to this log file.  A cron entry located in /var/spool/cron/crontabs/smtp 
  755. recycles daily backup copies of the mail message deliveries on a 7 day 
  756. cycle.  This is useful for debugging mail problems.  
  757.  
  758. Some simple logging sample scripts suitable for UnixWare 1.x are contained 
  759. on the Freebird archive in mailloggers.shar, these simply show how to 
  760. tail relevant logfiles.
  761.  
  762. In UnixWare 2 daily logs for smtp delivery are now kept in the directory
  763. /var/spool/mailq/Logs.
  764.  
  765. A useful file to monitor uucp activity is:
  766.  
  767. #!/bin/sh
  768. # works on both UnixWare 1.x and UnixWare 2
  769. tail -f /var/uucp/.Admin/xferstats
  770.  
  771. To see todays uucp log for a given system
  772.  
  773. uulog -f system
  774.  
  775. To see the days logs for all systems, type 
  776.  
  777. uulog
  778.  
  779. To tail the smtp logs for UnixWare 2, you need a script:
  780.  
  781. #!/bin/sh
  782. # You'll need to chmod the files in the Logs directory
  783. # or run this with privilege
  784.  
  785. DAY=`date +%A`
  786. tail -f /var/spool/mailq/Logs/$DAY
  787.  
  788. Subject: M14) How do I setup Smart Routing - using pathrouter ?
  789.  
  790. If you wish to setup a machine to act as a smart mail gateway capable
  791. of routing, then some smart routing software is needed.  A utility
  792. suitable for use with UnixWare is pathrouter.
  793.  
  794. ** UnixWare 2 note: 
  795.  
  796. The good news is that pathrouter is now part of the 
  797. standard release and can be found in /usr/lib/mail/surrcmd/pathrouter. 
  798. There is even a man page, and it gets a mention in the Dynatext.
  799.  
  800. UnixWare 1.x pathrouter is available from the freebird archive :
  801.         freebird/hints/Mail/pathrouter.tar.Z
  802.  
  803. Pathrouter is essentially the routing part of smail2.5, with some
  804. modification for batch routing and auto detection of hostname and domain
  805. name. It's driven by a routing database in /etc/uucp/paths (which can
  806. be built manually or you could use the freely available pathalias utility).
  807.         
  808. Pathrouter can be used to lookup route information for uucp and 
  809. domain addresses.
  810.  
  811. The following  is an example of the delivery commands from the
  812. file /etc/mail/mailsurr for such a configuration which can gateway
  813. between the internet and uucp zones. 
  814.  
  815. This example for UnixWare 1.x, see later for example mailsurr.proto
  816. for UnixWare 2.
  817.  
  818. ####
  819. #### Part 3
  820. ####
  821. #### Delivery commands should go here. All addresses going
  822. #### remote should begin with a single "!".
  823. ####
  824.  
  825. # Check for binary mail. Uncomment this if you want to use it.
  826. # Smtp can not handle binary mail so use this line.
  827. #
  828. '.+'    '!([^!]+)!.+'           '< F=*;C=0; ckbinarsys -t %C -s \\1'
  829.  
  830. # Perform routing via /etc/uucp/paths database
  831. '.+'    '.*[!@].*'              'Translate T=1;B=*; R=|pathrouter -p' '%n'
  832.  
  833. # For remote mail via uucp and smtp. Uucp is first because
  834. # it is more universal and handles binary mail properly.
  835.  
  836. '.+'    '!([^!]+)!(.+)'         '< B=1024; uux -a %R -p -- \\1!rmail' '(\\2)'
  837.  
  838. #
  839. # If DNS is not used, use "smtpqer -N". If DNS is used, remove the "-N".
  840. #
  841. #'.+'   '!([^!]+)!(.+)'         '< B=4096; smtpqer -N %R \\1' '\\2'
  842. '.+'    '!([^!]+)!(.+)'         '< B=4096; smtpqer %R \\1' '\\2'
  843.  
  844.  
  845.  
  846. The /etc/uucp/paths file is the routing database for the pathrouter command 
  847. (see paths(4), and pathrouter(1M)) .  Each line of the file provides 
  848. routing information to either a host or to a domain (designated by a 
  849. leading ".").  Each line should have either two or three tab characters 
  850. (ascii 0x9) as separated fields.  The format of each line in the 
  851. paths file is:
  852.  
  853.         key  route   [cost]
  854.  
  855.  
  856. Note that the cost field is a delivery weighting field 
  857. which is not used by the mail subsystem (smail would use it).
  858.  
  859.  
  860. An example paths (/etc/uucp/paths) file for a gateway machine.
  861.  
  862. The following paths file is an example of setup for a gateway machine.
  863. This example prefixes the destination routes with an exclamation
  864. mark (!) to reduce the number of translations done by the rmail(1).
  865.  
  866. This example is used to rewrite the domain addresses france.fr;
  867. and any uk domain address (matched by the .uk rule) to be routed 
  868. via the uel machine.
  869.  
  870. The usg.com domain address is converted to !usg!%s in order to utilise
  871. the uucp transport rather than smtp. 
  872.  
  873. france.fr       !uel!france.fr!%s       0
  874. uel     !uel!%s 0
  875. usg     !usg!%s 0
  876. windsor !uel!windsor!%s 0
  877. ..uk     !uel!%s 0
  878. ..usg.com        !usg!%s 0
  879.  
  880.  
  881. Prefixing a name by a dot as in ".usg.com" can be used to match
  882. domains, and so this rule would match site1.usg.com to be routed
  883. thru usg!.
  884.  
  885.  
  886. Note that this example does not have "smart-host" defined, and so
  887. any addresses that are not matched by pathrouter are left unchanged. In this
  888. example it is assumed that the DNS lookup will resolve the
  889. address and perform delivery over smtp.
  890.  
  891. If you don't have DNS lookup, or you decide to route unknown
  892. addresses to the nearest backbone then add an entry
  893.  
  894. smart-host      !backbone!%s    0
  895.  
  896. An example we use here to send mail to a particular route follows; this
  897. for various internal routing to an internal gateway within the company,
  898. and allows mail to be addressed as user@fpk, user@fpk.mycomp.com or
  899. user@mycomp.com with all mail going to the one gateway.
  900.  
  901. fpk     !nj-ums.fpk.mycomp.com!%s       0
  902. fpk.mycomp.com  !nj-ums.fpk.mycomp.com!%s       0    
  903. mycomp.com      !nj-ums.fpk.mycomp.com!%s       0
  904.  
  905.  
  906. This is then combined with a delivery line within mailsurr.proto
  907. to send this over smtp:
  908.  
  909. '.+'    '!(nj-ums.fpk.mycomp.com)!(.+)' '< B=4096; /usr/lib/mail/surrcmd/smtpqer -f %R -s \\1' '\\2'          
  910.  
  911.  
  912. * UnixWare 2 note:
  913.  
  914. You may encounter some differences between the pathrouter available
  915. on the ftp sites and that included in UnixWare2.
  916. In particular the 2.0 version does not take entries in 
  917. /etc/uucp/paths of the form 
  918.  
  919. ukb.novell.com  %s      0
  920.  
  921. to be for local delivery which it should.
  922. The above example should match "user@ukb.novell.com" to be a local
  923. user and translate is to just "user" - you can work around
  924. this by add a mailsurr translation rule 
  925.  
  926.         '.+'    '([^@]+)@(ukb.novell.com)'            'Translate R=\\1'
  927.  
  928.  
  929.  
  930. Subject: M15) What do I need to do to Set Up an Internet/Uucp Mail Gateway 
  931.               on UnixWare 2?
  932.  
  933. The following section details the steps taken to setup up an email
  934. gateway on UnixWare 2 - the email gateway is connected to the internet
  935. and also has direct uucp connections over tcp and serial lines.
  936.  
  937.  
  938. Subject: M15.1) Setup mail alias lookups via DNS, NIS or MHS 
  939.                 (/etc/mail/lookupLibs)
  940.  
  941. Do you want mailalias to use  DNS, NIS or MHS to lookup for aliases?
  942. If you don't then by disabling the feature (by commenting out
  943. lines in usr/lib/mail/lookupLibs.proto) you can speed mailalias
  944. lookup.
  945.  
  946. In /usr/lib/mail is the file lookupLibs.proto; by default this contains:
  947.  
  948. /usr/lib/mail/libalias/file.so
  949. /usr/lib/mail/libalias/passwd.so
  950. <DNS>   /usr/lib/mail/libalias/dns.so
  951. <NIS>   /usr/lib/mail/libalias/nis.so
  952. <MHS>   /usr/lib/mail/libalias/extract.so    
  953.  
  954.  
  955. When createSurr is run to auto-discover the machine configuration
  956. and create a suitable mailsurr file, it will auto include the
  957. lines for the features it discovers, for example DNS being
  958. configured auto includes the line beginning <DNS>
  959.  
  960. You can insert a comment into this file to disable the line, or
  961. you can delete the line; for example to disable DNS, NIS and MHS
  962. mailalias lookup  on this machine;
  963.  
  964. /usr/lib/mail/libalias/file.so
  965. /usr/lib/mail/libalias/passwd.so
  966. <DNS>   #/usr/lib/mail/libalias/dns.so
  967. <NIS>   #/usr/lib/mail/libalias/nis.so
  968. <MHS>   #/usr/lib/mail/libalias/extract.so    
  969.  
  970.  
  971. Alternately you can replace mailalias with the UW1.x version of mailalias
  972. which then only uses the aliases as defined in /etc/mail/namefiles.
  973. (This also works around a bug in 2.01 mailalias where long alias lists
  974. are truncated -alternately installing one of the mail fix updates in
  975. question M2 will also fix this problem). Since I'm not
  976. using any aliases in the DNS/NIS presently I install the UW1.x version as 
  977. /usr/lib/mail/surrcmd/mailalias.alt and edit the line in
  978. mailsurr.proto accordingly.
  979.  
  980. The changes are as follows:
  981.  
  982. # Run all (apparently) local names through the mail alias processor.
  983. # This version uses mailalias.alt which is the 1.x version
  984. #
  985. '.+'    '.+'                    'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/mailalias.alt -P%L! -P%U! -P%L\%D! -P%U\%D! -S@%U\%D -S@%L\%D -S@%L -S@%U -r -p' '%n'
  986.  
  987. A copy of the UW1.x version of mailalias is available on the Freebird
  988. archive.
  989.  
  990. Subject: M15.2) Set the mail domain information in /etc/mail/mailcnfg
  991.  
  992. You can establish many of the mail configuration parameters  by using
  993. the Admin_Tools/Mail_Setup GUI Tool. One of the things this does is
  994. to enter parameters into the file /etc/mail/mailcnfg - a file that does
  995. not exist by default.
  996.  
  997. A typical file is as follows:
  998.  
  999.  
  1000. ADD_DATE=1
  1001. ADD_FROM=1
  1002. ADD_RECEIVED=1
  1003. DOMAIN=novell.co.uk
  1004. SMARTERHOST=usl.com
  1005. ADD_MESSAGE_ID=1
  1006. FORCE_7BIT_HEADERS=1
  1007. FORCE_7BIT_MIME=1
  1008. ADD_TO=1
  1009. FORCE_MIME=1
  1010.  
  1011. Important parameters here are:
  1012.  
  1013. SMARTERHOST - where to send mail in the event that you are
  1014. unable to resolve or have no uucp route to a host. Typically this
  1015. is your IP provider or another friendly site.
  1016.  
  1017. DOMAIN - is the mail domain for the From: line in mail. Typically
  1018. mail will have the form From: user@nodename.domain. The next section
  1019. in this document shows a mail rewrite rule which rewrites
  1020. the From: lines so as to make all mail  seem to have come from 
  1021. just the domain name.
  1022.  
  1023.  
  1024. Subject: M15.3) Setup any header rewrite rules (/etc/mail/rewrite)
  1025.  
  1026. Using the default setup with DOMAIN=novell.co.uk, mail will appear
  1027. as if it comes from the machinename.novell.co.uk. Many installations
  1028. prefer to make it appear as if they have just one email address, their
  1029. domain name.
  1030.  
  1031. The /etc/mail/rewrite file contains functions to rewrite mail headers for
  1032. local and remote delivery. The following is a rewrite function
  1033. to search for occurrences of node.novell.co.uk and replace them with
  1034. just novell.co.uk.
  1035.  
  1036.  
  1037. function check_headers()
  1038. {
  1039. var hdr;
  1040. # loop through ALL headers
  1041. for (hdr from headers_pattern("From:"))
  1042.    # if we match a header that has something like foo.xyz.com in it
  1043.    if (hdr ~ "[a-zA-Z]\\.novell\\.co\\.uk")
  1044.      # then substitute the shorter version in its place
  1045.      hdr=gsubstitute(hdr, "[a-zA-Z0-9.]+\\.novell\\.co\\.\\uk", "novell.co.uk");
  1046. }         
  1047.  
  1048. So this function should be added to the file /etc/mail/rewrite.
  1049. There are two pre-defined special functions within this file - main()
  1050. and local().
  1051.  
  1052. You need to add  this to the function main() which is executed before
  1053. any rules in the /etc/mail/mailsurr file are executed. 
  1054.  
  1055. Other functions may be executed from mailsurr via Rewrite rules or 
  1056. H= invocations  on delivery lines. 
  1057.  
  1058. The function local() is executed for local delivery.
  1059.  
  1060. An example function to be executed by a H= invocationm is add_from_header.
  1061. This is a modified version we use for uucp connections
  1062. (this works for us below)
  1063.  
  1064. # function add_from_header
  1065. #
  1066. # Add a >From line.
  1067.  
  1068. function add_from_header()
  1069. {
  1070.     # Create the From header.
  1071.     var retpath, elementArray, newHeader;
  1072.     retpath = returnpath();
  1073.     if(strstr(retpath, "!") != 0)
  1074.         {
  1075.         # uucp incoming case
  1076.         #retpath = substitute(retpath, "^(.+)!([^!]+)$", "\\1:\\2");
  1077.         elementArray = split(retpath, ":");
  1078.         elementArray[0] = substitute(elementArray[0], "^@", "");
  1079.         newHeader = elementArray[1] @ " " @ fromdate(time()) @ " remote from " @ elementArray[0];
  1080.         }
  1081.     else if(strstr(retpath, "@") == 0)
  1082.         {
  1083.         # local delivery so add this machine's domain
  1084.         newHeader = retpath @ " " @ fromdate(time()) @ " remote from " @ usefuldomain();
  1085.         }
  1086.     else
  1087.         {
  1088.         # over smtp?
  1089.         retpath = gsubstitute(retpath, ":@", "!");
  1090.         retpath = substitute(retpath, "^@", "");
  1091.         if(strstr(retpath, ":") == 0)
  1092.             {
  1093.             retpath = substitute(retpath, "([^!@]+)@([^@]+)$", "\\2:\\1");
  1094.             }
  1095.         else
  1096.             {
  1097.             retpath = substitute(retpath, "([^:]*)[:]([^!@]+)@([^@]+)$", "\\1!\\3:\\2");
  1098.             }
  1099.  
  1100.         elementArray = split(retpath, ":");
  1101.         elementArray[0] = substitute(elementArray[0], "^@", "");
  1102.         newHeader = elementArray[1] @ " " @ fromdate(time()) @ " remote from " @ elementArray[0];
  1103.         }
  1104.  
  1105.     prepend_header(">From", ">From", newHeader);
  1106.         
  1107. }
  1108.  
  1109. function usefuldomain() {
  1110. var dom = domain();
  1111.   dom = substitute(dom, "^\.", "");
  1112.   return dom;
  1113. }     
  1114.  
  1115.  
  1116. Also see section M21 for a rewrite function for changing the
  1117. Return-Path: mail header.
  1118.  
  1119.  
  1120. Subject: M15.4) Customizing /etc/mail/mailsurr (/usr/lib/mail/mailsurr.proto)
  1121.  
  1122.  
  1123. To customize the /etc/mail/mailsurr file and make the changes
  1124. permanent you need to make the changes to the file 
  1125. /usr/lib/mail/mailsurr.proto.
  1126.  
  1127. Some example changes are below:
  1128.  
  1129. To see mail to the address "novell.co.uk" as local when the nodename is
  1130. mailgate.novell.co.uk add the following entry to /etc/mail/mailcnfg
  1131.  
  1132. %d=novell.co.uk
  1133.  
  1134. Add the following line to /usr/lib/mail/surrcmd/ (just after the ACCDOM
  1135. line in Part 2 and before the mailalias line)
  1136.  
  1137. '.+'    '([^@]+)@%d'            'Translate R=\\1'  
  1138.  
  1139. To do this change in a more generic manner add a capital D to the NODOT entry
  1140. in mailsurr.proto. (The NODOT was a typo)
  1141.  
  1142.  
  1143. An alternate to adding %d into the mailcnfg is to put the explicit
  1144. line in the mailsurr.proto file; for example:
  1145.  
  1146.  
  1147. '.+'    '([^@]+)@(uel.co.uk)'            'Translate R=\\1'   # our old domain
  1148.  
  1149.  
  1150. Subject: M15.5) Setting up delivery lines to mail-servers, list-processors 
  1151.                 etc (mailsurr.proto)
  1152.  
  1153.  
  1154. Entries can also be added to setup special delivery lines into
  1155. programmes such as the mail-server.
  1156.  
  1157. Add the entry in part 3 after the ckbinarsys line:
  1158.  
  1159. '.+'    'mail-server'   '<      /opt/lib/mserv/listener'
  1160.  
  1161.  
  1162. Subject: M15.6) Activating mail logging 
  1163.  
  1164. You won't get too far without being able to determine whats
  1165. going on. The command to switch mail logging on follows:
  1166.  
  1167. /usr/lib/mail/surrcmd/createSurr -l on
  1168.  
  1169.  
  1170. Subject: M15.7) Setting up suitable defaults for mailx users
  1171.  
  1172.  
  1173. Edit the file /etc/mail/mailx.rc and add some suitable site
  1174. defaults:
  1175.  
  1176.  
  1177. set autoprint askcc bang crt=20 dot showto
  1178. set metoo cmd=/opt/bin/mailPR page hold
  1179. set sendmail=/bin/rmail
  1180. set from
  1181.  
  1182. ignore Message-Id Received Status Content-Type Content-Length Default-Options Auto-Forwarded-From Auto-Forward-Count 
  1183.  
  1184.  
  1185. Subject: M15.8)  If you have local users, then add other mail-user agents : 
  1186. for example, mush, elm, pine etc
  1187.  
  1188. If you are using the version of Elm from the mail-server, system
  1189. wide defaults are contained in /opt/lib/elm/elm.rc, a sample is below
  1190. for our site.
  1191.  
  1192. ## /opt/lib/elm/elm.rc -- system wide defaults for elm
  1193.  
  1194. ## default hostname to override uname in From: line
  1195. ## for example.
  1196. ##   hostname = uel.co.uk
  1197. ## If not set, the From: line defaults to the uname
  1198. ## hostname = uel.co.uk
  1199. hostname = novell.co.uk
  1200. hostdomain = novell.co.uk
  1201. hostfullname = novell.co.uk
  1202.  
  1203. ## weedout unwanted mail headers
  1204. weedout via Default-Options Auto-Forwarded-From Auto-Forward-Count X-Nvlenv-01DL-Expanded Original-Content-Type Content-Type Content-Length X-Nvlenv-01Date-Transferred X-Nvlenv-01Date-Posted References
  1205.  
  1206.  
  1207. Subject: M15.9) Update /etc/profile
  1208.  
  1209.  
  1210.         EDITOR=vi
  1211.         postmark="`grep '^'$LOGNAME':' /etc/passwd | cut -d: -f5`"
  1212.         ORGANIZATION="Novell Europe."
  1213.         export EDITOR postmask ORGANIZATION
  1214.  
  1215. Subject: M15.10) Setting up smart routing between uucp and internet zones
  1216.  
  1217. As a mail gateway that has both uucp connections and an internet
  1218. connection we need to be able to smart route between the zones.
  1219. A utility called pathrouter is provided with UnixWare 2 to enable
  1220. this.
  1221.  
  1222. To enable the pathrouter utility, find the lines beginning
  1223. <PATHS> in mailsurr.proto :
  1224.  
  1225. <PATHS> # Reroute using pathrouter.
  1226. <PATHS> #
  1227. <PATHS> '.+' '[^@]+' 'Translate R=|/usr/lib/mail/surrcmd/pathrouter %n'
  1228. <PATHS>                                                                 
  1229.  
  1230. And change these to:
  1231.  
  1232. # Reroute using pathrouter.
  1233. #
  1234. #'.+' '[^@]+' 'Translate R=|/usr/lib/mail/surrcmd/pathrouter %n'
  1235. '.+'    '.*[!@].*'              'Translate T=1;B=*; R=|pathrouter -p' '%n'
  1236.  
  1237.  
  1238. Also add a uucp delivery line (before or after the smtp delivery
  1239. lines depending on your preference)
  1240.  
  1241. #Added for pathrouter
  1242. '.+'    '!([^!]+)!(.+)'         '< B=1024; uux -r -a %R -p -- \\1!rmail' '(\\2)'
  1243.  
  1244. #before <UUCP>
  1245.  
  1246. One thing I also found was to comment out calls to localmail in mailsurr.proto.
  1247.  
  1248. Install paths routing database in /etc/uucp/paths
  1249.  
  1250. Subject: M15.11) Add a rule to mailsurr.proto to catch mail to unknown local users.
  1251.  
  1252. # mailgate setup:
  1253. # This rule included for catching email sent to an unknown local user.
  1254. # This combined with  the use of pathrouter allows unknown local mail
  1255. # to be sent to user@uknown which pathrouter expands to postmaster and the
  1256. # unknown address so an error mesg still gets sent to the originator.
  1257. '.+'    '[^!@]+'                'Translate T=1;B=*; R=|localmail -p -S @unknown' '%n'
  1258.  
  1259. In /etc/uucp/paths add:
  1260.  
  1261. unknown !windsor!postmaster %s  0
  1262.  
  1263. (Note windsor is where the postmast mailbox lives)
  1264.  
  1265. For localdelivery to postmaster this would simply be:
  1266.  
  1267. unknown postmaster %s   0
  1268.  
  1269. Subject: M15.12) Setup uucp over the connection server for  uucp over
  1270. the network (rather than dialup uucp)
  1271.  
  1272. Edit /etc/uucp/Systems.tcp, add entries:
  1273.  
  1274. usl Any CS - -,listen:10103
  1275. usle Any CS - -,listen:10103
  1276. waterloo Any CS - -,listen:10103
  1277. carrera Any CS - -,listen:10103
  1278. marlow Any CS - -,listen:10103  
  1279.  
  1280. Edit /etc/uucp/Devices; enable CS - - - CS entry
  1281.  
  1282. Edit /etc/uucp/Permissions
  1283.  
  1284.  
  1285. Subject: M15.13) Setup mail alias files
  1286.  
  1287. Typically, you will want to edit /etc/mail/namefiles and add any filenames
  1288. that you wish to contain your mailing lists. See section M9 for
  1289. examples.
  1290.  
  1291. Subject: M15.14) Install an alternate incoming smtpd so that incoming
  1292. mail connections can be controlled using the TCP/SPX wrappers.
  1293.  
  1294. (see M17 for further details)
  1295.  
  1296. Subject: M15.15) Install the TCP/SPX wrappers so as to monitor who is 
  1297.                 connecting.
  1298.  
  1299. If you're paranoid (or security conscious) and want to keep logs of who is 
  1300. connecting to your machine, install the TCP/SPX wrappers. If you're
  1301. on the internet you should consider installing this package or the
  1302. netacl's from the TIS Firewall Toolkit in order to control access
  1303. to all TCP services.
  1304.  
  1305.  
  1306. Subject: M15.16) An example /usr/lib/mail/mailsurr.proto for this configuration
  1307.  
  1308. The example /usr/lib/mail/mailsurr.proto for this configuration
  1309. is attached, this version has much of the original entries removed
  1310. to just those needed for this configuration.
  1311.  
  1312.  
  1313.  
  1314. #comment ^A
  1315. ####
  1316. #### Part 1
  1317. ####
  1318. #### Accepts and Denies should go here
  1319. ####
  1320.  
  1321. # Prevent all shell meta-characters
  1322. #
  1323. '.+'    '.*[`;&|^<>()].*'       'Deny No Shell Metacharacters'
  1324. '.+'    '!*#.*'                 'Deny No Shell Metacharacters'
  1325.  
  1326.  
  1327. ####
  1328. #### Part 2
  1329. ####
  1330. #### Address translations should go here.
  1331. #### Do the appropriate mapping between various addressing schemes.
  1332. #### All remote mail should leave this section in RFC822 format
  1333. ####
  1334.  
  1335. # Collapse bang address loops that go through two or more hops
  1336. #
  1337. '.+'    '[^!@%]+![^@%]+![^@%]+' 'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/uucollapse' '%n'
  1338.  
  1339. # mailgate setup:
  1340. # Strip off local routes to domain, local.domain, uname, uname.alternate
  1341. # note the %d is for alternate domain names
  1342. #'.+'     '@(%d)[:,](.+)'     'Translate R=\\2'
  1343. '.+'     '@(%DNODOT)[:,](.+)'     'Translate R=\\2'
  1344. '.+'     '@(%L%D)[:,](.+)'     'Translate R=\\2'
  1345. '.+'     '@(%U)[:,](.+)'     'Translate R=\\2'         
  1346.  
  1347. # Reroute using pathrouter.
  1348. #
  1349. # mailgate setup:
  1350. # Comment line out and add batched version
  1351. #'.+' '.*[!@].*' 'Translate T=1;B=*;R=|/usr/lib/mail/surrcmd/pathrouter -p %n'
  1352. #'.+'   '([^@,:]+)@(.+)'        'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/pathrouter -p' '%n'
  1353. '.+'    '.*[!@].*'              'Translate T=1;B=*; R=|pathrouter -p' '%n'
  1354.  
  1355. # If you have a flat name space across multiple machines, but user-names only
  1356.         
  1357. # Map domain-routed domain addresses. That is, map all names of
  1358. # the form domain1!... -> @domain1[,@domain2]*:user@domain3 
  1359. #
  1360. # mailgate setup:
  1361. # Comment this line out as pathrouter likes to do routes ala
  1362. # !sitea!full.domain!user and this rewrites that format.
  1363. #'.+'   '(.+)!([^!:]+)!([^!:]+)'        'Translate R=!\\1:\\3@\\2'
  1364. '.+'    '(.*)!([^!:]+):(.+)'    'Translate R=\\1,@\\2:\\3'
  1365. '.+'    ',@(.+)'        'Translate R=@\\1'
  1366.  
  1367. # Map all names of the form host!user -> user@host
  1368. # The default is to give @ precedence over anything else.
  1369. # ! and @ may not be present in the same address
  1370. #
  1371. '.+'    '([^!]*)!([^!]+)'       'Translate R=\\2@\\1'
  1372.  
  1373. # Map all names of the form user%host (without any other @) -> user@host
  1374. #
  1375. '.+'    '([^@]*)%%([^@%]+)'     'Translate R=\\1@\\2'
  1376.  
  1377. # Map all names of the form host.local-domain!user -> host!user
  1378. #       (host must not have a . in it)
  1379. #
  1380. '.+'    '([^@]+)@([^.]+)'       'Translate R=\\1@\\2%D'
  1381. '.+'    '@([^.,:]+)([,:].+)'    'Translate R=@\\1%D\\2'
  1382.  
  1383. # Map all names of the form user@local-machine -> user
  1384. # Map all names of the form user@uname -> user
  1385. # Then loop back through from the top.
  1386. #
  1387. '.+'    '([^@]+)@%L%D'          'Translate R=\\1'
  1388. '.+'    '([^@]+)@%U%D'          'Translate R=\\1'
  1389. # mailgate setup:
  1390. # Accept mail to %DNODOT for local delivery
  1391. '.+'    '([^@]+)@%DNODOT'               'Translate R=\\1'
  1392. # Accept mail to alternate domains as local, i.e. our old address
  1393. '.+'    '([^@]+)@%d'            'Translate R=\\1'
  1394. '.+'    '([^@]+)@(uel.co.uk)'           'Translate R=\\1'
  1395.  
  1396. # Run all (apparently) local names through the mail alias processor.
  1397. # This version uses mailalias.alt which is the 1.x version
  1398. #
  1399. '.+'    '.+'                    'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/mailalias.alt -P%L! -P%U! -P%L\%D! -P%U\%D! -S@%U\%D -S@%L\%D -S@%L -S@%U -r -p' '%n'
  1400.  
  1401. ####
  1402. #### Part 3
  1403. ####
  1404. #### Delivery commands should go here.
  1405. ####
  1406.  
  1407. # Check for binary mail. Uncomment this if you want to use it.
  1408. #
  1409. #'.+'   '!([^!]+)!.+'           '< F=*;C=0; /usr/lib/mail/surrcmd/ckbinarsys -t %C -s \\1'
  1410.  
  1411. # mailgate setup:
  1412. # mail-server, mailing lists and information distribution handling section
  1413. '.+'    'mail-server'   '<      /opt/lib/mserv/listener'
  1414. '.+'    'listproc'      '<S=0;      /home/listserv/catmail -r -f'
  1415. '.+'    'uw-developers'         '<S=0;F=1-255;C=*;  /home/listserv/catmail -L UW-DEVELOPERS -f'
  1416.  
  1417.  
  1418. # If you have a flat name space across multiple machines, but user-names only
  1419. # exist on disjoint machines, this entry will forward any name not known
  1420. # locally off to the given host.
  1421. #
  1422. # mailgate setup: 
  1423. # Comment out these entries as they clash with use of pathrouter
  1424. # by routing the mail off to another machine
  1425. <(!ROUTEMHS||!MHS)&&SMTR&&!CLUSTER>     #'.+'   '[^@]+'                 'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/localmail -p -S @%X' '%n'
  1426. <(!ROUTEMHS||!MHS)&&SMTR&&CLUSTER>      #'.+'   '[^@]+'                 'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/localmail -p -S @%X:real' '%n'
  1427. <ROUTEMHS&&MHS> #'.+'   '[^@]+'                 'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/localmail -p -S @%g%D' '%n'
  1428.  
  1429. # mailgate setup:
  1430. # special delivery to certain hosts goes here
  1431. '.+'    '!(stubai)!(.+)' '< B=4096; /usr/lib/mail/surrcmd/smtpqer -N -f %R -s \\1' '\\2'
  1432. '.+'    '!(usl)!(.+)'           '< H=add_from_header;B=1024; uux -a %R -p -- \\1!rmail' '(\\2)'
  1433. '.+'    '!(windsor)!(.+)'           '< H=add_from_header;B=1024; uux -a %R -p -- \\1!rmail' '(\\2)'
  1434.  
  1435.  
  1436. # The mail transports go here.
  1437. #
  1438. <IP>    # If DNS is not used, use "smtpqer -N". If DNS is used, remove the "-N".
  1439. <IP>    #
  1440. <IP&&DNS&&!(SMTR&&STUP)>        '.+'    '([^@,:]+)@(.+)'        '< B=4096; /usr/lib/mail/surrcmd/smtpqer -f %R -s \\2' '\\1'
  1441. <IP&&DNS&&!(SMTR&&STUP)>        '.+'    '@([^@,:]+)[,:](.+)'    '< B=4096; /usr/lib/mail/surrcmd/smtpqer -f %R -s \\1' '\\2'
  1442.  
  1443. # mailgate setup:
  1444. #Added for pathrouter
  1445. '.+'    '!([^!]+)!(.+)'         '< H=add_from_header;B=1024; uux -r -a %R -p -- \\1!rmail' '(\\2)'
  1446.  
  1447. <UUCP>  '.+'    '([^@,:]+)@(.+)%D'      '< H=add_from_header;B=1024; uux -a %R -p -- \\2!rmail' '(\\1)'
  1448. <UUCP>  '.+'    '@([^@,:]+)%D[,:](.+)'  '< H=add_from_header;B=1024; uux -a %R -p -- \\1!rmail' '(\\2)'
  1449. <SMTR&&!STUP>   
  1450. <SMTR&&!STUP>   ####
  1451. <SMTR&&!STUP>   #### Part 3b
  1452. <SMTR&&!STUP>   ####
  1453. <SMTR&&!STUP>   #### Smarter-host processing
  1454. <SMTR&&!STUP>   ####
  1455. <SMTR&&!STUP>   
  1456. <SMTR&&!STUP>   # If none of the above work, then ship remote mail off to a smarter host.
  1457. <SMTR&&!STUP>   # Make certain that SMARTERHOST= is defined within /etc/mail/mailcnfg.
  1458. <SMTR&&!STUP>   # If there is no smarter host, then routed mail fails here.
  1459. <SMTR&&!STUP>   #
  1460. <SMTR&&!STUP>   '.+'    '@%X.+'                 'Deny Smarter host unreachable'
  1461. <CLUSTER&&SMTR&&!STUP>  '.+'    '(@.+)'                 'Translate T=1; R=@%X:real,\\1'
  1462. <CLUSTER&&SMTR&&!STUP>  '.+'    '([^@].+@.+)'           'Translate T=1; R=@%X:real:\\1'
  1463. <!CLUSTER&&SMTR&&!STUP> '.+'    '(@.+)'                 'Translate T=1; R=@%X,\\1'
  1464. <!CLUSTER&&SMTR&&!STUP> '.+'    '([^@].+@.+)'           'Translate T=1; R=@%X:\\1'
  1465.  
  1466.  
  1467. # mailgate setup:
  1468. # This rule in for catching email sent to an unknown local user.
  1469. # This combined with  the use of pathrouter allows unknown local mail
  1470. # to be sent to user@uknown which pathrouter expands to postmaster and the
  1471. # unknown address so an error mesg still gets sent to the originator.
  1472. '.+'    '[^!@]+'                'Translate T=1;B=*; R=|localmail -p -S @unknown' '%n'
  1473.  
  1474. ####
  1475. #### Part 4
  1476. ####
  1477. #### Postprocessing commands should go here.
  1478. ####
  1479.  
  1480. # Log mail delivery
  1481. #
  1482. # mailgate setup:
  1483. # Install alternate maillogger in /usr/lib/mail/surrcmd/maillog.alt
  1484. # In this example we took the maillog prog from UW1.x and installed
  1485. # that so it logs to a single file rather than a file per day, we prefer
  1486. # it that way.
  1487. <LOG>   #'.+'   '.+'    '> W=1;B=*; /usr/lib/mail/surrcmd/maillog -o /var/mail/:log' '-O %O %R %n %H %l --'
  1488. <LOG>   #'.+'   '.+'    'Errors W=1;B=*; /usr/lib/mail/surrcmd/maillog -o /var/mail/:errors' '-O %O %R %n %H %l --'
  1489. <LOG>   '.+'    '.+'    '> W=1;B=*; /usr/lib/mail/surrcmd/maillog.alt -o /var/mail/:log' '-O %O %R %n %H %l --'
  1490. <LOG>   '.+'    '.+'    'Errors W=1;B=*; /usr/lib/mail/surrcmd/maillog.alt -o /var/mail/:errors' '-O %O %R %n %H %l --'
  1491.  
  1492. Subject: M16) I have UW2 and my inbound smtpd keeps dying. Is there a fix?
  1493.  
  1494. Either upgrade to update2.03, or apply tf2100.tar
  1495. from ftp.sco.com:/UW20
  1496.  
  1497. If these don't work reliably, then an alternative is to use smap/smapd
  1498. from the TIS Firewall toolkit (see the next question on running
  1499. smtpd from inetd on UW2).
  1500.  
  1501. Subject: M17) I have UW2 - smtpd now runs as a daemon - is there a way to run
  1502. it from inetd? Running from inetd makes it more reliable and also
  1503. can be wrapped.
  1504.  
  1505. You can run the smap/smapd programmes from the TIS Firewall Toolkit V1.3
  1506. as replacements for the inbound smtpd. These have been ported
  1507. to UnixWare2 /rmail subsystem - binaries can be found in the
  1508. internet/server/fwtk/smap directory on the Freebird archive.
  1509.  
  1510. smap is a simple incoming smtp daemon invoked from inetd.
  1511. Its job in life is to store incoming mail for processing by
  1512. smapd. It runs chroot'd in the incoming mail spool area.
  1513.  
  1514. smapd reads mail from the incoming spool area, and hands it
  1515. off to the real mail subsystem
  1516.  
  1517. The idea behind this mailer is that smap is simple and understandable
  1518. and robust, and can be run on a firewall - you can also run
  1519. it as a replacement to the stock smtpd daemon if you prefer -
  1520. and this allows you to use tcp wrappers if you wish.
  1521.  
  1522. The files provided on the server with smap contain a new /etc/rc2.d/S81smtp 
  1523. script that auto detects if smapd is in place and runs smapd
  1524. on system startup - this assumes you'll reconfigure
  1525. your inetd to include the smap and restart it.
  1526.  
  1527. If you have the base UW2.01 or UW2.02 with no mailfixes get tf2100.tar
  1528. from ftp.sco.com.
  1529.  
  1530. smap/smapd use syslog for logging, tail -f /var/adm/log/osmlog
  1531.  
  1532. To install 
  1533.  
  1534.         mkdir /opt/etc
  1535.         ln -s /opt /usr/local   # smap/smapd look in /usr/local/etc
  1536.                                 # for netperm-table their config file
  1537.  
  1538.         cp smap smapd netperm-table /opt/etc
  1539.  
  1540.         chmod +rx /opt/etc/smap*
  1541.         chmod 555 /opt/etc/netperm-table
  1542.  
  1543.         mkdir /var/spool/mailq/smapin
  1544.         mkdir /var/spool/mailq/smapin/bad
  1545.  
  1546.         chown smtp:mail /var/spool/mailq/smapin /var/spool/mailq/smapin/bad
  1547.         chmod 700 /var/spool/mailq/smapin /var/spool/mailq/smapin/bad
  1548.         sh /etc/rc2.d/S81smtp stop
  1549.         cp /etc/rc2.d/S81smtp /etc/rc2.d/.S81smtp.orig
  1550.         cp S81smtp /etc/rc2.d/S81smtp
  1551.         sh /etc/rc2.d/S81smtp start
  1552.  
  1553.         
  1554. Edit inetd.conf and add the appropriate lines from the inetd.conf file
  1555.  
  1556. # if using the tcp-wrappers you need the first line 
  1557. #smtp stream tcp nowait  root    /usr/sbin/wrapd  /opt/etc/smap
  1558. smtp stream tcp nowait  root    /opt/etc/smap  /opt/etc/smap
  1559.  
  1560. Restart inetd using kill -HUP {PID}
  1561.  
  1562. where you get {PID} from ps -ef|grep inetd
  1563.  
  1564.  
  1565. Source to smap/smapd and man pages are in 
  1566.  
  1567.         /pub/unixware/usle/internet/server/fwtk
  1568.  
  1569. on ftp.novell.de and ftp.abs.net (/unixware...)
  1570.  
  1571. Subject: M18) I have UW2  and my outbound smtp  does incorrect routing to MX
  1572. record sites and also continually bounces mail when sending
  1573. to an unknown user when it should only bounce once - is there a fix?
  1574.  
  1575. Upgrade to update2.03 or tf2100.tar. 
  1576. Or obtain a replacement outbound smtp (mailupd.smtp
  1577. to replace /usr/lib/mail/surrcmd/smtp) from the Freebird archive.
  1578.  
  1579.  
  1580. Subject: M19) I'm having trouble routing email from my local machine to the net.
  1581. I'm connected to a local internet provider and can run Mosaic etc 
  1582. but can't send email. What do i need to do to make this work?
  1583.  
  1584. Either (1) use them as a SMARTERHOST (for mail forwarding if
  1585. they are agreeable),  by setting
  1586.         SMARTERHOST=ipprovider.domain
  1587. in /etc/mail/mailcnfg
  1588.  
  1589. and  updating the /etc/mail/mailsurr mail configuration file (best to
  1590. back it up first) by the following:
  1591.  
  1592.         su
  1593.         /usr/lib/mail/surrcmd/createSurr
  1594.  
  1595. CreateSurr looks at the system configuration
  1596. and using the /usr/lib/mail/mailsurr.proto file creates a new
  1597. /etc/mail/mailsurr file , in this case it enables a section of the
  1598. mailsurr file to forward all mail to unknown sites to the site
  1599. specified by SMARTERHOST. You may want to make sure that the IP
  1600. address of the site specified by SMARTERHOST is in your /etc/hosts
  1601. files.
  1602.                
  1603. Alternately (2) if you have DNS working  backup /usr/lib/mail/mailsurr.proto
  1604. and then edit it changing the smtpqer lines to remove the -N flag,
  1605. which tells smptqer to do a DNS lookup.
  1606.  
  1607. And then create a new /etc/mail/mailsurr file:
  1608.  
  1609.         su
  1610.         /usr/lib/mail/surrcmd/createSurr
  1611.                                              
  1612. If you create the /etc/mail/mailcnfg file (btw check the manual page for details
  1613. on mailcnfg) the permissions should be  444 bin mail.
  1614. On my UnixWare 1.x machines we have the following.
  1615.  
  1616. SMARTERHOST=usg
  1617. ADD_DATE=true
  1618. ADD_FROM=true
  1619. REMOTEFROM=novell.co.uk
  1620.  
  1621. You should change SMARTERHOST and REMOTEFROM accordingly.     
  1622.                                           
  1623. If you choose to have SMARTERHOST set to a fully qualified domain name
  1624. i.e. usg.novell.com
  1625.  
  1626. Then toggle two lines in part 3 of the /etc/mail/mailsurr to use
  1627. smtp delivery first...
  1628.  
  1629. You'll have something like this in part 3 (for UnixWare 1.x),
  1630.  
  1631. '.+'    '!([^!]+)!(.+)'         '< B=512; uux -a %R -p -- \\1!rmail' '(\\2)'
  1632. '.+'    '!([^!]+)!(.+)'         '< B=4096; smtpqer -N %R \\1' '\\2'
  1633.  
  1634. Swap the two lines around. 
  1635.  
  1636.                              
  1637. Subject: M20)Mail sent to my domain mydom.com does not arrive locally on the
  1638. machine. It gets here but the local mailsystem does not recognise it
  1639. as local.
  1640.  
  1641. The Mail Setup GUI has a button to select to catch mail to the domain
  1642. for local delivery. This activates the NODOT entry in the mailsurr file.
  1643. This in fact should be  DNODOT  (edit /usr/lib/mail/mailsurr.proto and
  1644. change the occurrence of NODOT to DNODOT, re-run createSurr and this
  1645. should work correctly). 
  1646.  
  1647. (Note that this is fixed in update2.03 and tf2100.tar)
  1648.  
  1649. Subject: M20.1) How can I set other mail domains besides my real domain
  1650. to be treated as local?
  1651.  
  1652. If you have multiple domain names that you want to
  1653. receive mail, you can add an entry to /etc/mail/mailcnfg
  1654.  
  1655. %d=myotherdom.com
  1656.  
  1657. Edit /usr/lib/mail/mailsurr.proto
  1658. to create a translation entry in  that file.  The user@domain
  1659. entry is shown below from the mailsurr.proto file:
  1660.  
  1661. # Map all names of the form user@local-machine -> user
  1662. # Map all names of the form user@uname -> user
  1663. # Map all names of the form user@domain
  1664. # Then loop back through from the top.
  1665. #
  1666. '.+'  '(.+)@%L'    'Translate R=\\1'
  1667. '.+'  '(.+)@%U'    'Translate R=\\1'
  1668. '.+'  '(.+)@%d'    'Translate R=\\1'   #This is the added entry for user@domain
  1669.  
  1670. Then run the script /usr/lib/mail/surrcmd/createSurr.
  1671.  
  1672. If mail is coming in via the internet you'll also need to
  1673. setup an MX record for the other domain to tell it to send mail
  1674. to this host.
  1675.  
  1676. Subject: M21) I'm using UnixWare2 and when mail arrives locally the Return-Path:
  1677. header has the format @myprovider:remotedomain!user or @domain:user or
  1678. @domain:user@domain.  Is there someway to put this into normal 
  1679. domain address format?
  1680.  
  1681.  
  1682. The following rewrite function edits the Return-path: header  
  1683. for locally delivered email into normal domain address format. 
  1684. Add the following functions to the file /etc/mail/rewrite.
  1685.  
  1686.  
  1687. function local()
  1688. {
  1689.         fix_return_path();
  1690. }
  1691.  
  1692.  
  1693. function fix_return_path()
  1694. {
  1695.     var hdr;
  1696.     # loop through the headers of this name
  1697.     for (hdr from headers("Return-path"))
  1698.         {
  1699.         if (hdr ~ "@([a-zA-Z0-9.]+):([a-zA-Z0-9.]+)!([a-zA-Z0-9.]+)" )
  1700.             {
  1701.             hdr = gsubstitute(hdr, "@([a-zA-Z0-9.]+):([a-zA-Z0-9.]+)!([a-zA-Z0-9.]+)", "\\3@\\2");
  1702.             }
  1703.         if (hdr ~ "@([a-zA-Z0-9.]+):([a-zA-Z0-9.]+)@([a-zA-Z0-9.]+)" )
  1704.             {
  1705.             hdr = gsubstitute(hdr, "@([a-zA-Z0-9.]+):([a-zA-Z0-9.]+)@([a-zA-Z0-9.]+)", "\\2@\\3");
  1706.             }
  1707.         if (hdr ~ "@([a-zA-Z0-9.]+):([a-zA-Z0-9.]+)" )
  1708.             {
  1709.             hdr = gsubstitute(hdr, "@([a-zA-Z0-9.]+):([a-zA-Z0-9.]+)", "\\2@\\1");
  1710.             }
  1711.         }
  1712. }
  1713.  
  1714.  
  1715. Subject: M22) Large mail alias lists don't seem to work on UnixWare 2. Is this
  1716. a known problem?
  1717.  
  1718. This is a bug. To fix this you need to apply one of the mail updates in 
  1719. section M2.
  1720.  
  1721. An alternative workaround is to use the UnixWare 1.x version of mailalias.
  1722. This loses some functionality , i.e. is not driven off the
  1723. /etc/mail/lookupLibs file and only looks up aliases based
  1724. off the files referenced in /etc/mail/namefiles; but then is
  1725. thus faster.
  1726.  
  1727. I have installed this on my UW2 mail gateway as 
  1728. /usr/lib/mail/surrcmd/mailalias.alt
  1729.  
  1730. and adjusted the /usr/lib/mail/mailsurr.proto file as:
  1731.  
  1732. '.+'    '.+'                    'Translate T=1;B=*; R=|/usr/lib/mail/surrcmd/mailalias.alt -P%L! -P%U! -P%L\%D! -P%U\%D! -S@%U\%D -S@%L\%D -S@%L -S@%U -r -p' '%n'
  1733.  
  1734. And then recreated the /etc/mail/mailsurr file with
  1735.  
  1736. /usr/lib/mail/surrcmd/createSurr -l on
  1737.  
  1738. A copy of the UW1.x version of mailalias is on the Freebird archive
  1739. as mailalias.bin.UW1.Z.
  1740.  
  1741. Subject: M23) smtp mail to hosts which only have MX records and no valid A 
  1742. records never gets there? This is with the 2.0 developer release.
  1743.  
  1744. This is  a bug fixed in the 2.01 version of smtpd. Update to 2.01,2.02 or 2.03
  1745. or apply tf2100.tar.
  1746.  
  1747.  
  1748. Subject: M24) How do I make the mailsystem send mail for local addresses off
  1749. to another host if they are not found locally without setting up
  1750. aliases?
  1751.  
  1752. Enable the following line in the mailsurr file, replacing the HOST.DOMAIN
  1753. field by the appropriate values.
  1754.  
  1755. # If you have a flat name space across multiple machines, but user-names only
  1756. # exist on disjoint machines, this entry will forward any name not known
  1757. # locally off to the given host.
  1758. #
  1759. #'.+'   '[^!@]+'                'Translate T=1;B=*; R=|localmail -p -S @HOST.DOMAIN' '%n'
  1760.  
  1761.  
  1762. Subject: M25) How can I get mailx/dtmail to add fullname information to 
  1763. the From: line?
  1764.  
  1765. UnixWare rmail/mail adds additional information to the From: line based
  1766. on the postmark environment variable. On our systems we typically
  1767. add the following to /etc/profile:
  1768.  
  1769.         postmark="`grep '^'$LOGNAME':' /etc/passwd | cut -d: -f5`"
  1770.         export postmark
  1771.  
  1772. Subject: M26) How can I set all the From: line  (hiding the internal hosts to a 
  1773. mail domain)?
  1774.  
  1775. This can be done either in the mail user agent , that is mailx, dtmail ,
  1776. elm or mush , which are described here , or alternately using the
  1777. rewrite rules in /etc/mail/rewrite (only in UnixWare 2 - see question
  1778. M15 section 3 for details on this feature).
  1779.  
  1780. ==>mailx/dtmail:
  1781.  
  1782. In your .mailrc for mailx,dtmail
  1783.  
  1784. set  postmark="myname@my.domian (My Fullname)"
  1785.  
  1786. From the mailx man page:
  1787.  
  1788.              postmark=string
  1789.                    The specified string is included in the comment field of
  1790.                    the From: header of messages that you send.  The string
  1791.                    is usually set to your name.  See from and translate.
  1792.                    If the string includes an @, it will be used for the
  1793.                    entire From: header.         
  1794.  
  1795. ==>For elm, edit /opt/lib/elm/elm.rc
  1796.  
  1797.  
  1798. ## /opt/lib/elm/elm.rc -- system wide defaults for elm
  1799.  
  1800. ## default hostname to override uname in From: line
  1801. ## for example.
  1802. ##   hostname = uel.co.uk
  1803. ## If not set, the From: line defaults to the uname
  1804. ## hostname = uel.co.uk
  1805. hostname = my.domain
  1806. hostdomain = my.domain
  1807. hostfullname = my.domain
  1808.  
  1809. ==>For mush
  1810.  
  1811. in your system mushrc file
  1812.  
  1813. set hostname=my.domain
  1814.  
  1815. Subject: M27) I want to setup a cluster of machines, with a single mail
  1816. gateway machine.
  1817.  
  1818. (for UW1) Use the sample files client.mailcnfg and client.mailsurr to
  1819. make the internal hosts forward all mail to the gateway. And then
  1820. just configure the mail gateway to be a smarthost for mail.
  1821.  
  1822. On UnixWare 2 setup a client machine with the GUI so that all
  1823. mail is forwarded to a smarter host - which can be your local
  1824. email gateway. Copy the resulting /etc/mail/mailsurr and /etc/mail/mailcnfg
  1825. files - install on each machine in the cluster - and edit S81smtp so
  1826. as not to call createSurr and rewrite the /etc/mail/mailsurr file on
  1827. each reboot.
  1828.  
  1829.  
  1830. Subject: M28) How can i make bounced email go to the postmaster if the user
  1831. address is invalid?
  1832.  
  1833. We use the pathrouter tool and an entry in /etc/mail/mailsurr to
  1834. enable this (pathrouter is available by ftp from ftp.novell.de:/pub/
  1835. unixware/usle/hints/Mail).
  1836.  
  1837. We map all unknown user-names to the site unknown!username
  1838.  
  1839. # map unknown local users to unknown!user
  1840. '.+'    '[^!@]+'                'Translate T=1;B=*; R=|localmail -p -S @unknown' '%n'
  1841.  
  1842. In /etc/uucp/paths unknown is mapped to
  1843.  
  1844. unknown !postmaster %s  0
  1845.  
  1846. This way the originator and the postmaster get a bounced copy.
  1847.  
  1848. A simpler way just to send the message to the postmaster follows:   
  1849. '.+'    '[^!@]+'                'Translate T=1;B=*; R=postmaster'
  1850.  
  1851.  
  1852. You should add these lines to the /usr/lib/mail/mailsurr.proto file
  1853. before part 4 (postprocessing commands),
  1854. and use the command /usr/lib/mail/surrcmd/createSurr to create a new
  1855. mailsurr file (best to backup your existing mailsurr file first).
  1856. CreateSurr looks at the system configuration
  1857. and using the /usr/lib/mail/mailsurr.proto file creates a new
  1858. /etc/mail/mailsurr file .
  1859.                                
  1860. Subject: M29) How can i debug mail delivery?
  1861.  
  1862. There are two commands you can execute to see whats happening:
  1863.  
  1864. /bin/mail -d address
  1865. message
  1866. <ctrl-d>
  1867.  
  1868. Will show you a short list of translations and delivery commands
  1869. (and will deliver the message).
  1870.  
  1871. /bin/mail -T "" address
  1872.  
  1873. will show you in gorey detail the translations taken from the
  1874. default mailsurr file.  This can be used to determine whether a problem 
  1875. can be isolated to the address translation. 
  1876.  
  1877. Subject: M30) How can i debug the /etc/mail/rewrite rules?
  1878.  
  1879. Set the following environment variable:
  1880.  
  1881. MAILR_DEBUG=10
  1882. export MAILR_DEBUG
  1883.  
  1884. /bin/mail -d email-address
  1885. msg
  1886. <ctrl-d>
  1887.  
  1888. This lets you see what the rewrite rules are doing.             
  1889.  
  1890. Subject: M31)How can I use the rewrite rules to rewrite a To: header
  1891. of the format uunet!domain!user to user@domain?
  1892.  
  1893. Add a call to the function fix_to_line() in the main() function of 
  1894. /etc/mail/rewrite so this is called for remote mail delivery.
  1895.  
  1896. function main()
  1897. {
  1898.         ...
  1899.         fix_to_line("To");
  1900. }
  1901.         
  1902. function fix_to_line(var hdrname)
  1903. {
  1904.     var hdr;
  1905.     # loop through the headers of this name
  1906.     for (hdr from headers(hdrname))
  1907.         {
  1908.         # if the header has uunet!domain!user in it
  1909.         if (hdr ~ "uunet!([a-zA-Z0-9.]+)!([a-zA-Z0-9.]+)" )
  1910.             {
  1911.             # then convert !uunet!domainr!user to user@domain
  1912.             hdr = gsubstitute(hdr, "uunet!([a-zA-Z0-9.]+)!([a-zA-Z0-9.]+)", "\\2@\\1");
  1913.             }
  1914.         }
  1915. }          
  1916.  
  1917.  
  1918.  
  1919. Subject: M32) I have  tcp installed yet i only want to do transfers over 
  1920. uucp. How do i make the mailsurr file exclude the smtpqer delivery lines?
  1921.  
  1922. Comment out the smtpqer entries in the /usr/lib/mail/mailsurr.proto and 
  1923. execute /usr/lib/mail/surrcmd/createSurr to eliminate the smtp delivery command.  
  1924.  
  1925. Subject: M33) I'm sending to a SCO system over uucp which only understands 
  1926. RFC822. The UnixWare mailsystem inserts an extra From line which upsets the SCO 
  1927. mailer.
  1928.  
  1929. (for UW1)
  1930.  
  1931. To have the From line stripped when sending mail via UUCP 
  1932. an I=1; would need to be prepended to  the uux delivery command lines in the 
  1933. mailsurr.proto file, otherwise the mail will bounce because of this 
  1934. postmark line. Then execute /usr/lib/mail/surrcmd/createSurr to update the
  1935. /etc/mail/mailsurr file.
  1936.  
  1937. Subject: M34) Where are outgoing messages stored for smtp?
  1938.  
  1939. (for UW1)All outgoing mail messages for SMTP are located in /var/spool/smtpq 
  1940. under the domain/host directories.
  1941.  
  1942. (for UW2) Mail msgs are now stored in /var/spool/mailq .
  1943.  
  1944. Subject: M35) Mail is bouncing back with problems about an invalid 
  1945. From header line, what should I do?
  1946.  
  1947. (for UnixWare 2.0x)
  1948. Please apply patch tf2100.tar. This symptom is often seen
  1949. when communicating with Microsoft Mail or cc:Mail.
  1950.  
  1951. (UW1 only)
  1952. Edit the mailsurr.proto file and either insert or
  1953. remove the I=1; field of the smtpqer delivery command line 
  1954. entries as shown below:
  1955.  
  1956. <IP&&!DNS&&!(SMTR&&STUP)>  '.+'  '([^@,:]+)@(.+)'  '< I=1;B=4096; smtpqer -N -u %R \\2' '\\1@\\2'
  1957. <IP&&!DNS&&!(SMTR&&STUP)>  '.+'  '@([^@,:]+)[,:](.+)'  '< I=1;B=4096; smtpqer -N -u %R \\1' '\\2'
  1958. <IP&&!DNS&&SMTR&&STUP>  '.+'  '([^@,:]+)@(.+)'  '< I=1;B=4096; smtpqer -N -u %R %X' '\\1@\\2'
  1959. <IP&&!DNS&&SMTR&&STUP>  '.+'  '(@[^@,:]+[,:].+)'  '< I=1;B=4096; smtpqer -N -u %R %X' '\\1'
  1960. <IP&&DNS&&!(SMTR&&STUP)>  '.+'  '([^@,:]+)@(.+)'  '< I=1;B=4096; smtpqer -u %R \\2' '\\1@\\2'
  1961. <IP&&DNS&&!(SMTR&&STUP)>  '.+'  '@([^@,:]+)[,:](.+)'  '< I=1;B=4096; smtpqer -u %R \\1' '\\2'
  1962. <IP&&DNS&&SMTR&&STUP>  '.+'  '([^@,:]+)@(.+)'  '< I=1;B=4096; smtpqer -u %R %X' '\\1@\\2'
  1963. <IP&&DNS&&SMTR&&STUP>  '.+'  '(@[^@,:]+[,:].+)'  '< I=1;B=4096; smtpqer -u %R %X' '\\1'
  1964.  
  1965. In cases where internet mail is coming in, and forwarded out via uucp, 
  1966. the I=1; field must be removed, otherwise the From line containing the 
  1967. user name and date will be stripped prior to sending the message off via 
  1968. uucp or uux.
  1969.  
  1970. NOTE:  It is advisable to remove the -B option of the smtpqer entries in the 
  1971. mailsurr.proto file to eliminate the need for batch processing.
  1972.  
  1973. Execute /usr/lib/mail/surrcmd/createSurr to update the /etc/mail/mailsurr 
  1974. file and re-test the mail once again.
  1975.  
  1976. Subject: M36) After changing the system owner to another user and 
  1977. deleting the original user, mail is still being sent to the original 
  1978. system owner for example when a new package is installed, 
  1979. and errors stating "unable to send to " appear after adding a package.
  1980.  
  1981.  
  1982. This is caused since the files
  1983.  
  1984. /var/sadm/install/admin/check and 
  1985. /var/sadm/install/admin/default contain a line 
  1986. "mail=username username2 etc.  
  1987.  
  1988. These files do not get updated when some users are deleted from the system.
  1989. The fix is to manually take out the names of the non existing user 
  1990. from the mail= line in /var/sadm/install/admin/check and 
  1991. default.
  1992.  
  1993. Subject: M37) Why when I send local mail does my PPP link get established, for
  1994. example when I pkgadd or pkgrm a package?
  1995.  
  1996. On UnixWare 2 this is triggered by the mailalias program.
  1997. There is a file in /etc/mail called lookupLibs (built from
  1998. /usr/lib/mail/lookupLibs.proto) that contains references to shared
  1999. libraries used to lookup aliases.  By default if you have DNS defined
  2000. in your mailflgs file, mailalias will connect to your name server to
  2001. ask it about aliases.  To work around this just comment out the <DNS> line
  2002. /usr/lib/mail/lookupLibs.proto and /etc/mail/lookupLibs. 
  2003.  
  2004. Subject: M38) Is it possible to change the sender address with 
  2005. mailsurr's translation facilities?  The man page indicates 
  2006. that only the recipient address can be changed.  
  2007. Am I going to have to move to sendmail?
  2008.  
  2009. Not necessary. Its possible but not elegant in UW 1.x, in 2.0 there
  2010. is now a file /etc/mail/rewrite which allows you to specify rewrite
  2011. rules for mail headers.  What I do for UW1.x is below:
  2012.  
  2013.  
  2014. For UW.1x I basically replace the delivery command with a script that
  2015. edits the mail header using sed and then pipes the edited message into
  2016. what would have been the delivery command (i.e. uux or smtp).
  2017.  
  2018. Example 1:
  2019.  
  2020. For example the next mailsurr line is for fixing some strange From:
  2021. lines coming from a Dos mailer which has a From: line of the format
  2022. domain(full name) user , fixing them to domain!user format. ( the example
  2023. below works just for mail from
  2024. site nwc-uk.ukb.novell.com to host windsor)
  2025.  
  2026. # rewrite the mail header
  2027. # s/nwc-uk.ukb.novell.com/novell/
  2028. 'nwc-uk.ukb.novell.com!.*'      '!(windsor)!(.+)'               '<B=1024;S=0;F=*; /%w/headerfix -a %R -p -- \\1!rmail' '(\\2)'
  2029.  
  2030. The headerfix command is located in /usr/lib/mail/surrcmd/headerfix
  2031.  
  2032. #!/bin/sh
  2033. # headerfix script
  2034. /bin/cat -| /bin/sed -f /usr/lib/mail/surrcmd/headfix.sed|/usr/bin/uux  $*
  2035. exit 0
  2036.  
  2037.  
  2038. Where /usr/lib/mail/surrcmd/headfix.sed contained the substitution
  2039. regular expression
  2040.  
  2041. s/\(From: nwc-uk.ukb.novell.com\)(.*!\(.*\)[         ].*)/From: nwc-uk.ukb.novell.com!\2/
  2042.  
  2043.  
  2044. Example 2:
  2045.  
  2046. Another example is where we use a script to remove some of the delivery
  2047. lines , in this case all mail to usle has some mail headers stripped,
  2048. note that this machine is a mailhub internal to our cluster
  2049.  
  2050.  
  2051. '.+'    '!(usle)!(.+)'          '< B=4096; /%w/hidesmtp -u %R \\1' '\\2'
  2052.  
  2053.  
  2054. #!/bin/sh
  2055. #set -x
  2056. /bin/cat -| /bin/sed -f /usr/lib/mail/surrcmd/hidesmtp.sed|/usr/lib/mail/surrcmd/smtpqer $*
  2057.  
  2058.  
  2059. Where /usr/lib/mail/surrcmd/hidesmtp.sed is:
  2060.  
  2061. 1d
  2062. 2s/^>From/From/
  2063. /^Received: from novell.co.uk/d
  2064. /^$/,$s/^From />From /
  2065.  
  2066. For UnixWare 2.x we add functions to the file /etc/mail/rewrite
  2067.  
  2068.  
  2069.  
  2070. Subject: M39) How do I setup a POP3 server on UnixWare ?
  2071.  
  2072.  
  2073. The POP server is included in UW2 in /usr/lib/mail/surrcmd/popper,
  2074. however there's a problem with truncation of the last mail
  2075. message with that version.
  2076.  
  2077. Either pick up tf2100 from ftp.sco.com:/UW20
  2078.  
  2079. or get one of the freeware versions from ftp.abs.net|ftp.novell.co.uk
  2080. in /pub/unixware/freebird/mailtools/popper  (source and binaries
  2081. available).
  2082.  
  2083. To make operational, you need to do the following:
  2084.  
  2085.  (i) edit /etc/services, ensure there is an entry
  2086.  
  2087. pop3            110/tcp                         # Post Office
  2088.  
  2089.  (ii) edit /etc/inetd.conf, add an entry
  2090.  
  2091.  pop3   stream  tcp     nowait  root    /replace_with_Path_to_popper/popper             popper
  2092.  
  2093.  (iii) Restart inetd, by sending a kill -HUP to the inetd PID.
  2094.  
  2095.  
  2096. Subject: M40) I'm using UnixWare 1.x and  I can't find the createSurr command, 
  2097. what should i do?
  2098.  
  2099. [This section below is UnixWare 1.x specific for folks who did not
  2100.  install the nuc package]
  2101.  
  2102. The createSurr command is in the nuc package in UnixWare 1.x.
  2103. There is a package on the Freebird archive containing only
  2104. the additional mail tools provided in the nuc package, that is
  2105. createSurr (note that you'll have to add a copy of perl yourself ) - 
  2106. the package is mailproto.tar.Z - the readme file is attached below:
  2107.  
  2108. mailproto version 1.0
  2109.  
  2110. Copyright 1993-1995 Novell, All Rights Reserved.
  2111.  
  2112. This software is provided "as is" and without any expressed or implied
  2113. warranties, including, without limitation, the implied warranties of
  2114. merchantibility and fitness for any particular purpose. 
  2115.  
  2116. This version for UnixWare 1.x.
  2117.  
  2118. This package contains the minimal mailtools for auto configuration of
  2119. the mail subsystem - these are normally contained in the nuc package.
  2120.  
  2121. DO NOT INSTALL THESE IF YOU ALREADY HAVE THE NUC PACKAGE INSTALLED OR
  2122. ARE RUNNING UNIXWARE 2!
  2123. (the package checks this and will not install over the nuc package)
  2124.  
  2125. YOU WILL ALSO NEED TO INSTALL A COPY OF PERL.
  2126. These scripts expect to find a copy of perl in /usr/gnu/bin/perl.
  2127. If you have perl installed elsewhere edit the first line of the
  2128. perl scripts to point to the correct location.
  2129.  
  2130. For information on how to setup the mail subsystem see
  2131.         hints/Mail/README
  2132.         hints/Mail/Howto_setup
  2133. from the mail-server archive.
  2134.  
  2135. The files installed by this package are:
  2136.  
  2137. /usr/lib/mail/mailsurr.proto - a prototype mailsurr file 
  2138.  
  2139. /usr/lib/mail/surrcmd/createSurr - command to generate mailsurr file
  2140. /usr/lib/mail/surrcmd/configCheck - subsidiary command used by createSurr
  2141. /usr/lib/mail/surrcmd/configMail - subsidiary command used by createSurr
  2142. /usr/lib/mail/surrcmd/getDomain - subsidiary command used by createSurr
  2143.  
  2144.  
  2145. To install the package the simplest way follows:
  2146.  
  2147. 1. Extract the tar archive. 
  2148.  
  2149. $ cd /tmp
  2150. $ su
  2151. # tar xvf mailproto.tar
  2152.  
  2153. 2. Installing the package
  2154.  
  2155.  
  2156.         pkgadd -d `pwd`
  2157.  
  2158.  
  2159. 3. Removing the package
  2160.  
  2161. # pkgrm  mailproto
  2162.  
  2163. Subject: M41) How do I setup my mail to be autoanswered?
  2164.  
  2165. This is done by using the vacation command.
  2166. To setup the default autoanswering message just type
  2167.  
  2168.         vacation
  2169.  
  2170. For example:
  2171.  
  2172.         $ vacation
  2173.         UX:vacation: INFO: Vacation notification installed
  2174.         UX:vacation: INFO: Logging will go to '/opt/lib/mserv/.maillog'
  2175.         UX:vacation: INFO: '/usr/share/lib/mail/std_vac_msg' will be used for the canned message
  2176.  
  2177. This will cause the system to send the following standard reply:
  2178.  
  2179.         Subject: AUTOANSWERED!!!
  2180.  
  2181.         I am on vacation. I will read (and answer if necessary)
  2182.         your e-mail message when I return.
  2183.  
  2184.         This message was generated automatically and you will
  2185.         receive it only once, although all messages you send
  2186.         me while I am away WILL be saved.
  2187.  
  2188.  
  2189. A list of senders is kept in the file $HOME/.maillog, and
  2190. incoming mail is kept in your normal mailbox by default,
  2191. since the UnixWare mailer keeps the forwarding information in 
  2192. /var/mail/:forward and not in the mailbox file as in earlier SVR4.0 releases.
  2193.  
  2194. If you would prefer to customise the reply, prepare a message in a
  2195. file and then give the filename as an option to the vacation utility,
  2196. for example:
  2197.  
  2198.         vacation -M message
  2199.  
  2200. For example:
  2201.         $ vacation -M Msg     
  2202.         Forwarding to |/usr/lib/mail/vacation2 -o %R -M Msg
  2203.         $
  2204.  
  2205. For example the message might contain (Note: the ``From:'' line is the address
  2206. for folks to reply to -- this should be of the form username@domain_addr, this
  2207. may not be needed if your mail subsystem puts a From: line for you, there
  2208. should be an entry ADD_FROM=true in /etc/mail/mailcnfg if using the default
  2209. mailer [/bin/mail])
  2210.  
  2211.  
  2212.         Subject: AUTOANSWERED!!!
  2213.         From: postmast@novell.co.uk (Postmaster)
  2214.  
  2215.         I am permanently on vacation. I will read (and answer if necessary)
  2216.         your e-mail message when and if  I return, and if I can be bothered.
  2217.  
  2218.         This message was generated automatically and you will
  2219.         receive it only once, although all the messages you send
  2220.         me while I am away WILL be saved.
  2221.  
  2222.         If your mail is really for the attention of somebody else, then why
  2223.         did n't you send it to them in the firstplace :-) Alternately try
  2224.         sysadmin@novell.co.uk :-)
  2225.  
  2226.           -- The Postmaster
  2227.  
  2228.  
  2229. To  read your mail while vacation is in effect:
  2230.  
  2231. You can use your normal mail user agent (elm, mush, mailx or whatever),
  2232. since the UnixWare mailer keeps the forwarding information in 
  2233. /var/mail/:forward and not in the mailbox file as in earlier SVR4.0 releases.
  2234.         
  2235.  
  2236. To remove the vacation facility:
  2237.  
  2238.         /bin/mail -F ""
  2239.  
  2240. or
  2241.         vacation -n
  2242.  
  2243. For example:
  2244.         $ /bin/mail -F ""
  2245.         UX:mail: INFO: Forwarding removed
  2246.         $ 
  2247.  
  2248. Subject: M42) How do I setup my mail to be forwarded?
  2249.  
  2250.  
  2251. To forward all your mail to another person or another mailbox use
  2252. the following command :
  2253.  
  2254. To forward to a single person, e.g.
  2255.  
  2256.         /bin/mail -F andrew
  2257.  
  2258.  
  2259. To forward to more than one person use a quoted string:
  2260.  
  2261.         /bin/mail -F "andrew plord"
  2262.  
  2263. for example:
  2264.  
  2265.  
  2266.         $ /bin/mail -F "andrew plord"
  2267.         UX:mail: INFO: Installing forwarding to local address: andrew
  2268.         UX:mail: INFO: Installing forwarding to local address: plord
  2269.         UX:mail: INFO: Forwarding to andrew plord
  2270.  
  2271. It is also possible to combine a forward with the vacation programme:
  2272.  
  2273. for example
  2274.  
  2275.         
  2276.         $ vacation -M $HOME/.MSG -f andrew
  2277.         UX:vacation: INFO: Vacation notification installed
  2278.         UX:vacation: INFO: Logging will go to '/opt/lib/mserv/.maillog'
  2279.         UX:vacation: INFO: '/opt/lib/mserv/.MSG' will be used for the canned message
  2280.  
  2281. To confirm the forward is in effect, cat the :forward/user-id file:
  2282.  
  2283.         $ cat /var/mail/:forward/mserv
  2284.         Forward to andrew | C=0;S=2;F=*; /usr/lib/mail/vacation2 -o %R -M /opt/lib/mserv/.MSG
  2285.  
  2286. Note that you should not edit the /var/mail/:forward files directly
  2287. else they will loose the correct permissions and email delivery will
  2288. fail.
  2289.  
  2290.  
  2291. Subject: M43) How do I setup a mail-server?
  2292.  
  2293. The mail-server we use at novell.co.uk is the Squirrel mail-server
  2294. version 3.01 . This is written by Johan Vromans and is mainly
  2295. written in perl.
  2296.  
  2297.  
  2298. A binary version ready for use with UW1.x or UW2 is on the
  2299. Freebird archive
  2300. ftp.abs.net:/unixware/freebird/mailtools/mail-server.bin.tar.Z.
  2301.  
  2302. The steps to install this are as follows:
  2303.  
  2304. Create an account mserv, with the home directory rooted in 
  2305. /opt/lib/mserv.  We assume the mail-server archive tree is in
  2306. /home/mserv-archive, if its elsewhere make a symlink.
  2307.  
  2308.         useradd -s /usr/bin/ksh -d /opt/lib/mserv mserv
  2309.         (mkdir /opt/lib if it does not exist)
  2310.         cd /opt/lib
  2311.         zcat mserv.tar.Z|tar xvf -
  2312.         chown -R mserv mserv
  2313.         chown root mserv/listener
  2314.  
  2315. To run the mail-server, you need to install ALL the following packages:
  2316. utils/perl-4.0pl36.pkg.tar, archivers/gzip-1.2.4.pkg.tar,
  2317. utils/gnufind-3.7.pkg.tar.  All these packages are on the
  2318. novell.co.uk mail-server archive.
  2319.  
  2320. You also need to allow  the mserv account to use cron, 
  2321. edit  /usr/lib/cron/cron.allow and add the mserv user.
  2322.  
  2323. To test prior to running out of cron, login as user mserv
  2324.  
  2325.         ./listener -noqueue
  2326.  
  2327. You can then type interactive requests
  2328.  
  2329. Once you are happy, edit the file
  2330.  
  2331.         mserv.hints
  2332.  
  2333.  
  2334. Place the files you want to serve in /home/mserv-archive,
  2335. run some of the indexing commands by hand
  2336.  
  2337.         ./makeindex
  2338.         ./makels
  2339.         ./changes
  2340.  
  2341. Then enable the crons
  2342.  
  2343.         crontab ctab
  2344.  
  2345.  
  2346. Next stage, enable in the mailsubsystem. This can be done
  2347. by editing /usr/lib/mail/mailsurr.proto and editing the following in
  2348. section 3 of the file after the ckbinarsys entry.
  2349.  
  2350. # mail-server, mailing lists and information distribution handling section
  2351. '.+'    'mail-server'   '<      /opt/lib/mserv/listener'
  2352.  
  2353.  
  2354. Then run /usr/lib/mail/surrcmd/createSurr -l on. 
  2355.  
  2356.  
  2357. #       /etc/mail/extaliases
  2358.  
  2359.  
  2360. Then run /usr/lib/mail/surrcmd/createSurr -l on. 
  2361.  
  2362.  
  2363. On the system that the mail-server runs I have a mailbox called
  2364. bit-bucket, which as long as it exists in /var/mail/bit-bucket
  2365. and is mode 660 owner mserv, group mail is used to catch
  2366. all admin mail.
  2367.  
  2368. System aliases are added a file in /etc/mail, /etc/mail/names
  2369.  
  2370. ### Mailserver ###
  2371. # if you want mail to go to real people
  2372. #mserv          plord andrew
  2373. # else put it in a mailbox
  2374. mserv           bit-bucket
  2375.  
  2376. # various typos on mail-server
  2377. mailserv        mail-server
  2378. mailserver      mail-server
  2379. mail_server     mail-server
  2380. mail-serverl    mail-server
  2381. mail-serv       mail-server
  2382. mail-serve      mail-server
  2383. mail-sarver     mail-server
  2384. mailx-server    mail-server
  2385. mailer-server   mail-server
  2386. ftpmail         mail-server
  2387.  
  2388.  
  2389. # various strange things that requestors send, best to dump them in the
  2390. # bit-bucket mailbox
  2391.  
  2392. reply-address   bit-bucket
  2393. your-address-here       bit-bucket
  2394. your-mail-address-goes-here     bit-bucket
  2395. address-to-reply-to     bit-bucket
  2396. your-email-address      bit-bucket
  2397.  
  2398.  
  2399. File Permissions:
  2400.  
  2401. All files except listener can be owned by user mserv.
  2402. listener has to be owned by root and setuid.
  2403.  
  2404.  
  2405. Subject: M44) How do I  setup a mailing list - such as Listproc ?
  2406.  
  2407. A port of ListProcessor Version 6.0, Binary distribution for UnixWare
  2408. is available on ftp.novell.de:/pub/unixware/usle/mailtools/listproc.bin.tar.Z.
  2409.  
  2410. Please observe the copyright notice below:
  2411.  
  2412. ListProcessor version 6.0 by Anastasios Kotsikonas, Copyright (c) 1991-93.
  2413. Use, duplication or disclosure by the U.S. Federal Government is subject to the
  2414. restrictions set forth in FAR 52.227-19(c), Commercial Computer Software or,
  2415. for U.S. Department of Defense Users, by DFAR 252.227-7013(c)(1)(ii).  
  2416.  
  2417.  
  2418. Note:
  2419. To make this work with the UnixWare mail subsystem (mailsurr), the
  2420. formail utility from procmail has been used as a front end to
  2421. the ListProcessor catmail utility, to edit the headers etc.
  2422.  
  2423.  
  2424. Installation instructions for this distribution
  2425.  
  2426. (1) Login as root
  2427.  
  2428. If you are running straight UnixWare 2.0 , 2.01 or 2.02
  2429. you need to apply a patch to the smtp subsystem. 
  2430.  
  2431. The supported version can be obtained from
  2432. ftp.sco.com:/UW20/tf2100.tar
  2433.  
  2434.  
  2435. (2) Then install the listproc tools into /home/listserv as follows:
  2436.  
  2437. cd /home
  2438. zcat listproc.tar.Z|tar xvf -
  2439. useradd -d /home/listserv -s /usr/bin/ksh listserv
  2440. chown -R listserv listserv
  2441. vi /usr/lib/cron/cron.allow     append listserv to the end of this file
  2442.  
  2443.  
  2444. (3) Setup the mailaliases etc:
  2445.  
  2446. You need to add entries in the /etc/mail/mailsurr file
  2447. for your mailing lists. This can be done by editing the
  2448. file /usr/lib/mail/mailsurr.proto adding the lines below
  2449. (note xopen-testing is an example) and then running the
  2450. command:
  2451.  
  2452.         /usr/lib/mail/surrcmd/createSurr -l on
  2453.  
  2454.  
  2455. ####
  2456. #### Part 3
  2457. ####
  2458. #### Delivery commands should go here.
  2459. ####
  2460.  
  2461. # Check for binary mail. Uncomment this if you want to use it.
  2462. #
  2463. #'.+'   '!([^!]+)!.+'           '< F=*;C=0; /usr/lib/mail/surrcmd/ckbinarsys -t %C -s \\1'
  2464.  
  2465. # mailgate setup:
  2466. # mail-server, mailing lists and information distribution handling section
  2467. # admin requests
  2468. '.+'    'listproc'      '<S=0;      /home/listserv/catmail -r -f'
  2469. # mailing lists
  2470. '.+'    'xopen-testing'         '<S=0;F=1-255;C=*;  /home/listserv/catmail -L XOPEN-TESTING -f'
  2471.  
  2472.  
  2473. (4) Edit /etc/mail/namefiles and add:
  2474. /etc/mail/listaliases
  2475.  
  2476. This tells mailalias to look in this file for additional aliases.
  2477. Add the following to that list, change the name (andrew)
  2478. as appropriate
  2479.  
  2480. ### Mailing Lists ###
  2481.  
  2482. # who is the overall admin for listproc
  2483. list-admin      andrew
  2484. # if you share this file on multiple machines enable the next line
  2485. # to get the mail to the right machine
  2486. #xopen-testing  lechladel!xopen-testing
  2487. xopen-testing-request   listproc
  2488.  
  2489.  
  2490. (5) Login as user listserv:
  2491.  
  2492. Edit the config file and change values in there as appropriate for
  2493. your configuration.
  2494.  
  2495. The organization line needs changing, as do the lists that
  2496. you define. In this example a list xopen-testing is shown.
  2497. This list requires all subscription requests to be approved
  2498. by the list owner.
  2499.  
  2500. Also in this example the lists are running on a machine called
  2501. lechlade, you want to change all email addresses to be those
  2502. of your mail domain.
  2503.  
  2504. Check out the documentation in the doc directory.
  2505.  
  2506. Lastly when you are ready and feel you have an understanding,
  2507. install a crontab entry .
  2508.  
  2509. Install a cron file to start the server:
  2510.         crontab crontab
  2511.  
  2512.  
  2513. This will start the server.
  2514.  
  2515. To test, send some mail to listproc, and also to xopen-testing.
  2516. It takes a while for the listproc to awake the first time, since
  2517. its only started on the hour, once awake the daemon keeps running.
  2518. Edit the crontab to start the daemon sooner.
  2519.  
  2520. To see where incoming requests go, if you configured the mailer
  2521. correctly, check the file /home/listserv/requests.
  2522.  
  2523. xopen-testing should say you are not subscribed, you can then
  2524. resend and subscribe. Check both the admin mail box and the
  2525. initiator.
  2526.  
  2527.  
  2528. Look at help/general and change the first line as required.
  2529.  
  2530. To add new lists you have to create a set of files in /home/listserv/lists
  2531. in a subdirectory as well as editing /home/listserv/config.
  2532. Check out the doc directory.
  2533.  
  2534.  
  2535. File & Directory Perms in /home/listserv
  2536.  
  2537. A couple of utilities have to be setuid listserv - see below:
  2538.  
  2539.  
  2540. total 4032
  2541. drwxr-xr-x    2 listserv other         96 Apr 12 14:56 News
  2542. drwx------    3 listserv other         96 Apr 12 14:56 arc
  2543. drwx------    5 listserv tech          96 Apr 12 14:55 archives
  2544. -rw-------    1 listserv tech           0 Jan 18  1994 batch
  2545. drwxr-xr-x    2 listserv other         96 Apr 12 14:56 bin
  2546. -rwsr-xr-x    1 listserv other         86 Apr 17 09:10 catmail
  2547. -rwsr-xr-x    1 listserv other     155400 Jan 26  1994 catmail.prog
  2548. -rw-------    1 listserv tech        6745 Feb 14 19:12 config
  2549. -rw-r--r--    1 listserv other         57 Feb 10  1994 crontab
  2550. drwx------    2 listserv tech        1024 Apr 12 14:55 doc
  2551. -rwx------    1 listserv other     175732 Jan 26  1994 farch
  2552. -rw-------    1 listserv tech          84 Jan 18  1994 flocks
  2553. -rwx------    1 listserv other      15208 Jan 26  1994 fwin
  2554. drwxr-xr-x    2 listserv tech          96 Apr 12 14:56 gateway
  2555. drwx------    2 listserv tech        1024 Apr 12 14:56 help
  2556. -rwxr-xr-x    1 listserv other      13892 Jan 26  1994 ilp
  2557. -rwx------    1 listserv other     321880 Jan 26  1994 list
  2558. -rwx------    1 listserv other     424760 Jan 26  1994 listproc
  2559. drwx------   11 listserv tech        1024 Apr 12 14:55 lists
  2560. -rwxr-xr-x    1 listserv other      45208 Jan 18  1994 make
  2561. -rw-r--r--    1 listserv tech         546 Jan 18  1994 makefile
  2562. drwxr-xr-x    4 listserv other         96 Apr 12 14:56 man
  2563. -rw-------    1 listserv other     251796 Jul  6 08:16 mbox
  2564. drwx------    2 listserv tech        1024 Jul 10 18:57 mqueue
  2565. -rwx------    1 listserv tech        1986 Jan 18  1994 news
  2566. -rw-------    1 listserv tech         892 Jul  5 10:18 owners
  2567. -rwx------    1 listserv tech        1888 Jan 18  1994 peer
  2568. -rwx------    1 listserv other     216956 Jan 26  1994 pqueue
  2569. -rwx------    1 listserv tech        1201 Jan 18  1994 queued
  2570. -rwxr-xr-x    1 listserv other        501 Jan 20  1994 rcp
  2571. -rw-------    1 listserv other         57 Jul  6 08:16 received
  2572. -rwx------    1 listserv tech         502 Jan 18  1994 redux
  2573. -rw-------    1 listserv other          0 Jul  6 08:16 requests
  2574. -rwx------    1 listserv other       4808 Jan 26  1994 rev
  2575. -rwxr-xr-x    1 listserv other       7420 Jan 26  1994 semset
  2576. -rw-------    1 listserv other          6 Jul  6 08:16 sent
  2577. -rwxr-xr-x    1 listserv other     172072 Jan 26  1994 serverd
  2578. -rwx------    1 listserv tech        6931 Jan 20  1994 setup
  2579. -rwx------    1 listserv other     169264 Jan 26  1994 start
  2580. -rwx------    1 listserv tech       23389 Jan 18  1994 systest
  2581. -rwx------    1 listserv other      22312 Jan 26  1994 tlock
  2582. -rwx------    1 listserv tech         133 Jan 18  1994 ulock
  2583. -rw-------    1 listserv tech         700 Jan 18  1994 unwanted.hosts
  2584. drwxr-xr-x    2 listserv tech        1024 Apr 12 14:56 util
  2585. -rw-r--r--    1 listserv tech         591 Jan 18  1994 welcome.live
  2586.  
  2587. Subject: M45) How do I  make sendmail the default mailer?
  2588.  
  2589. On UnixWare 2:
  2590.  
  2591. (Step 1). rename /etc/rc2.d/S81smtp to /etc/rc2.d/s81stmp
  2592. (Step 2).  Start sendmail in /etc/inet/config. Like this:
  2593.  
  2594. # The next line can be read:
  2595. # If field 3 is a Y and /usr/sbin/in.gated was not run, then run
  2596. # /usr/sbin/in.routed -q
  2597. 4b:/usr/sbin/in.routed:/usr/sbin/in.gated:Y::-q:
  2598. ###4c:/usr/sbin/route::n::add default router_placeholder 1
  2599. ###6:/usr/sbin/in.xntpd::y:/etc/inet/ntp.conf::
  2600. 7:/usr/bin/sh::y:/etc/inet/rc.inet:/etc/inet/rc.inet start:
  2601. 4c:/usr/sbin/route::y::add default 129.123.1.254 1:
  2602. ## added by JRD
  2603. 8:/usr/ucblib/sendmail::y:/usr/ucblib/sendmail.cf:-bd -q24h:
  2604. 9:/usr/sbin/syslogd::y:/etc/syslog.conf::
  2605.  
  2606.  
  2607. (Step 3). copy the /etc/ucbmail/mailsurr file over the /etc/mail/mailsurr file.
  2608.  
  2609. Note that you should also check the mailtools/sendmail directory
  2610. on the ftp archive since  there's likely to be a binary pkgadd
  2611. version of sendmail there..
  2612.  
  2613. Subject: M46) Mail of the address format @mylocal.domain:user@mylocal.domain 
  2614.               is not delivered locally, how can I fix this?
  2615.  
  2616. You need to add a line to /usr/lib/mail/mailsurr.proto
  2617. as follows:
  2618.  
  2619. After the uucollapse line add:
  2620.  
  2621. '.+'    '@(%DNODOT)[:,](.+)'               'Translate R=\\2'
  2622. '.+'    '@(%L%D)[:,](.+)'               'Translate R=\\2'
  2623. '.+'    '@(%U)[:,](.+)'         'Translate R=\\2'
  2624.  
  2625. Then run
  2626.  
  2627.         /etc/rc2.d/S81smtp stop
  2628.         /etc/rc2.d/S81smtp start            
  2629.  
  2630. Subject: M47) dtmail won't restart after my machine was switched off.
  2631.  
  2632. One of our machines was switched off with a dtmail session active
  2633. and when restarted wont let the user back into mail, saying the mail
  2634. is already being read - any ideas?
  2635.  
  2636. Check /var/mail/:readlock for a file as in username.lock
  2637.  
  2638. Try removing that file. If that does not work and you can't get
  2639. in (due to a kernel lock) move the mailbox in /var/mail aside
  2640. and rename it, then copy it back to the original name (has to be
  2641. done quickly:-)   
  2642.  
  2643. Subject: M48) Inbound mail is addressed to 
  2644.      <@site.demon.co.uk:user@domain.co.uk>
  2645.      and does not get delivered to the local user.
  2646.  
  2647.  
  2648. Our  Internet provider is Demon, and we are using the mail forwarding service.
  2649. This allows use of user@domain.co.uk, rather than the usual
  2650. user@site.demon.co.uk.
  2651.                     
  2652. The problem :-
  2653.  
  2654. The "RCPT TO:" line when receiving mail reads ( As seen in the osm log )
  2655.  
  2656. RCPT TO: <@site.demon.co.uk:user@domain.co.uk>
  2657.  
  2658. Instead of the mail being delivered to the user, it goes to root.  This is the
  2659. same for any user.  Outgoing mail is fine.   
  2660.  
  2661.  
  2662. To fix:  edit the /usr/lib/mail/mailsurr.proto file and
  2663. try the following:
  2664.  
  2665. {after uucollapse }; add
  2666.  
  2667. # Strip off local routes to domain, local.domain, uname, uname.alternate
  2668. '.+'     '@(%DNODOT)[:,](.+)'     'Translate R=\\2'
  2669. '.+'     '@(%L%D)[:,](.+)'     'Translate R=\\2'
  2670. '.+'     '@(%U)[:,](.+)'     'Translate R=\\2'
  2671. # put our alternate domain here
  2672. '.+'     '@(%site.demon.co.uk)[:,](.+)'     'Translate R=\\2'
  2673.  
  2674.                             
  2675. Subject: M49) I'm using PPP but don't have the interface up when the system
  2676.     creates the mailsurr file, and thus it does not detect my IP
  2677.     link - what can I do?
  2678.  
  2679.  
  2680. Bob Stewart writes:
  2681.  
  2682.  
  2683. If your only networking connection is via ppp, you will have to make
  2684. a change to /usr/lib/mail/surrcmd/configCheck if you want to use smtp
  2685. to send your mail.  Look for the section entitled "Check if IP is up
  2686. and running".  Add the following line immediately after the check to
  2687. just force IP as the mail transport:
  2688.  
  2689. $flaglist{IP} = 1;
  2690.  
  2691. Reboot your system, or alternately as root, type
  2692.  
  2693.         sh /etc/rc2.d/S81smtp stop
  2694.         sh /etc/rc2.d/S81smtp start
  2695.  
  2696. and verify that IP preceeds UUCP in /etc/mail/mailflgs.  
  2697.  
  2698. Subject: M50) How can I set mailalias in the form : user@site  maps to 
  2699.     local user?
  2700.  
  2701. I run multiple domains in my server and I want to map
  2702.  
  2703.         "sales@abc.com" to a user "andy"
  2704.         "editor@def.com" to a user "ron".     
  2705.  
  2706. How should I do this?
  2707. Set up the mailsurr file in the following way...
  2708.  
  2709. '.+'    '(sales)@([^@]+)(abc.com)'       'Translate T=1; R=andy'
  2710. '.+'    '(editor)@([^@]+)(def.com)'    'Translate T=1; R=ron'
  2711.             
  2712. The above matches sales@abc.com and sales@www.abc.com and any
  2713. other subdomains within abc.com.
  2714.  
  2715. To match editor and editors you can use a regexp as follows:
  2716.  
  2717. '.+'    'editor(s*)'    'Translate T=1;  R=andrew' 
  2718.  
  2719. Subject: M51) What is the /etc/mail/smtpcnfg file in tf2100/UW2.1?
  2720.  
  2721. This file is read when smtp is started.
  2722.  
  2723. It contains fields of the format 
  2724.         field=value
  2725.  
  2726. The default file with ptf2100 looks like
  2727.  
  2728. MX_FIRST=yes
  2729. USE_LOG_FILES=yes
  2730. USE_WRAPPERS=no
  2731. USE_OSM=yes
  2732. TIMEOUT=3 days
  2733. LOG_MASK=incoming, outgoing, errors
  2734.  
  2735. MX_FIRST=yes : means smtp attempts delivery to a hosts
  2736. specified Mail Exchanger record (MX DNS record) rather than the
  2737. delivering directly to the host IP address. If set to no,
  2738. then it attempts delivery directly to the host IP address and
  2739. then any MX hosts if specified.
  2740.  
  2741. USE_LOG_FILES=yes : whether to log to /var/spool/mailq/Logs. If no
  2742. value is given this defaults to yes.
  2743.  
  2744. USE_WRAPPERS=no : whether to check to access using the /etc/hosts.allow
  2745. file (as in the tcp wrappers package). I've not been able to convince
  2746. myself that this works at the moment.
  2747.  
  2748. USE_OSM=yes : whether to direct log messages to syslog (osmlog). If
  2749. yes these can be viewed using the Message_monitor GUI tool, or syslogd
  2750. can direct them to log files.
  2751.  
  2752. TIMEOUT=3 days : the time from original delivery attempt before the
  2753. mail is returned to the sender as being undeliverable. If a value of
  2754. "-1" is given the attempts continue indefinitely. An example of
  2755. 7 days timeout can also be specified as "TIMEOUT=1 week".
  2756.  
  2757. LOG_MASK=incoming, outgoing, errors : what events to be logged.
  2758. Other classes to be logged are:  "queued" - log info on msgs
  2759. placed on queues; "debug" - log debug info; "connection" - log
  2760. info on connections; "recipients" - log info about recipients.
  2761. Its possible to switch all this off with the value "nothing"
  2762. or to switch all logging on with "everything".
  2763.  
  2764. Subject: M52) How should I setup Mail via PPP?
  2765.  
  2766. Let's assume firstly that you have a PPP link up and working
  2767. and that tcp/ip services between your host and your ISP have
  2768. been established.
  2769.  
  2770. Lets also assume that you can obtain the Email FAQ  from
  2771. ftp.abs.net:/unixware/freebird/hints/FAQ/comp.unix.unixware.FAQ.m
  2772. since that explains the email subsystem in greater depth than here.
  2773.  
  2774. There are various scenarios:
  2775.  
  2776.         (1) You have your own domain name, for example
  2777.         tamarix.demon.co.uk and your ISP initiates an smtp
  2778.         transfer to your host when you start a ppp session
  2779.         (this is how demon work in the UK)
  2780.  
  2781. You need to establish your DOMAIN name for email. This can be
  2782. done by using the Mail_setup GUI tool or by editing(or creating)
  2783. the file: /etc/mail/mailcnfg
  2784.  
  2785. The mailcnfg file I use at home is
  2786.  
  2787. DOMAIN=demon.co.uk
  2788. FORCE_7BIT_HEADERS=1
  2789. FORCE_7BIT_MIME=1
  2790. ADD_TO=1
  2791. ADD_MESSAGE_ID=1
  2792. SMARTERHOST=post.demon.co.uk  
  2793.  
  2794. By setting DOMAIN=demon.co.uk outbound mail from my home machine tamarix
  2795. has the From: line set to tamarix.demon.co.uk.
  2796.  
  2797. Since you are at home you  want to try and do all mail processing
  2798. while offline - hence the use of a SMARTERHOST, whose IP address
  2799. should be added to your /etc/hosts file so as not to require
  2800. an MX lookup when sending mail (see smtpqer line later)
  2801.  
  2802. You also want to edit the file /usr/lib/mail/lookupLibs.proto
  2803. and comment out some lines in there so as to reduce DNS lookups.
  2804.  
  2805. /usr/lib/mail/libalias/home.so
  2806. /usr/lib/mail/libalias/file.so
  2807. /usr/lib/mail/libalias/passwd.so
  2808. <DNS>   #/usr/lib/mail/libalias/dns.so
  2809. <NIS>   #/usr/lib/mail/libalias/nis.so
  2810. <MHS>   #/usr/lib/mail/libalias/extract.so
  2811.  
  2812. This proto file ends up creating the file /etc/mail/lookupLibs ,
  2813. (after running the /usr/lib/mail/surrcmd/createSurr command - ran
  2814. out of /etc/rc2.d/S81smtp).
  2815.  
  2816. The /etc/mail/mailsurr file is the key file for determining how
  2817. mail gets delivered, I customize this file and then make it permanent -
  2818. after all once you've set it up why let createSurr keep rewriting it!
  2819.  
  2820. A fixed mailsurr file appropriate for PPP can be
  2821. obtained from:
  2822.         ftp.abs.net:/unixware/freebird/hints/Mail/mailsurr.ppp
  2823.  
  2824.         (2) You have a POP mailbox on the ISP server, and your
  2825.         mail account is username@your_isp_address.dom. You'll need
  2826.         to use a POP client or equivalent to get the mail onto
  2827.         your local machine. You'll then need to reply using mail on
  2828.         the local machine and want to ensure that the mail headers
  2829.         look like mail is being sent from the ISP machine.
  2830.  
  2831. In this case your mailbox is held on the ISP's machine and they
  2832. have a POP server.  You need a popclient to retrieve the mail from
  2833. the server onto your local machine. A version of the Mail Users Shell
  2834. (Mush) is available on ftp.abs.net:/unixware/freebird/mailtools/popclient
  2835. that can be used. There has also been a tool posted in this group
  2836. that will retrieve the mailbox from your ISP into the local machine,
  2837. in which case you can then use your favourite mail user agent to read it
  2838. (i don't have a copy off-hand).
  2839.  
  2840. POP allows you to retrieve mail but most servers don't allow you
  2841. to send mail. You can use smtp to send mail from your local machine
  2842. using the above configuration with one exception, you need to
  2843. rewrite the From: line for outbound mail to hide your nodename
  2844. (so in my case, mail would appear to come from demon.co.uk and
  2845. not tamarix.demon.co.uk).
  2846.  
  2847. This can be done by editing the file /etc/mail/rewrite
  2848. and adding the routine (this will need editing for your
  2849. configuration)
  2850.  
  2851. function check_headers()
  2852. {
  2853. var hdr;
  2854. # loop through ALL headers
  2855. for (hdr from headers_pattern("From:"))
  2856.    # if we match a header that has something like foo.xyz.com in it
  2857.    if (hdr ~ "[a-zA-Z]\\.demon\\.co\\.uk")
  2858.      # then substitute the shorter version in its place
  2859.      hdr=gsubstitute(hdr, "[a-zA-Z0-9.]+\\.demon\\.co\\.\\uk", "demon.co.uk");
  2860. }    
  2861.  
  2862. Add a call to this in the function main() in /etc/mail/rewrite, so this
  2863. looks like:
  2864.  
  2865. function main()
  2866. {
  2867.     add_missing_headers();
  2868.     check_headers();
  2869. }   
  2870.  
  2871.         (3) When sending mail you'll want to consider whether you
  2872.         want to relay mail via a SMARTERHOST (recommended), usually
  2873.         your ISP or whether you want to send the mail directly 
  2874.         across the internet to the remote recipient
  2875.  
  2876. In the mailsurr example above, I've assumed that this is what you'd
  2877. want to do. And in most cases this makes sense, since that way
  2878. you can let your ISP handle the routing and delivery issues.
  2879. For those odd occasions when you want to get mail somewhere quickly
  2880. or directly i use an i: prefix to say internet directly which you
  2881. may or may not find particularly useful. 
  2882.  
  2883.         (4) Perhaps you have two PPP links in different domains (like
  2884.         my home box), and can switch between them. You want to receive mail
  2885.         to both domain addresses - this requires some level of customization
  2886.  
  2887. I have some scripts (written by Mike Convey) to swap between my ISP
  2888. and my work PPP links.  At home my machine is known as tamarix, at work
  2889. its known as voyager (now if i'd kept the names the same i would
  2890. not need this!).
  2891.  
  2892. When I send email i keep the tamarix.demon.co.uk
  2893. domain in there, but occasionally i want to forward mail over the work
  2894. link to my machine. In this case I have to add a line to the mailsurr
  2895. file so that it recognises the mail as local, otherwise it sends
  2896. it off to the SMARTERHOST
  2897.  
  2898. The trick is to add another delivery line to translate the mail
  2899. for local delivery, and add your alternate nodename in there
  2900.  
  2901. '.+'    '([^@]+)@(voyager)%D'           'Translate R=\\1'
  2902.  
  2903. The %D is needed since the inbound smtp adds the Domain info.
  2904.  
  2905.         (5) Perhaps your ISP relays mail to you over uucp over TCP/IP,
  2906.         perhaps by a mail forward? What then?
  2907.  
  2908. For incoming mail this is not a problem, and you can still send
  2909. mail outwards using smtp.
  2910.  
  2911. I'm sure there are other configurations not covered here, hopefully
  2912. this will be useful to some folks!
  2913.  
  2914. Subject: M53) How can I setup mail to handle virtual hosts's mail?
  2915.  
  2916. How do I handle virtual hosts' mail with mailsurr ?
  2917.  
  2918. Example: have machine           mydomain.net
  2919. have virtual machines           virtual1.ca
  2920.                                 virtual2.ca
  2921.                                 virtual3.ca
  2922. I want to have server handle mail for
  2923.  
  2924. sales@mydomain.net
  2925. sales@virtual1.ca
  2926. sales@virtual2.ca
  2927. sales@virtual3.ca   
  2928.  
  2929. One way to handle this is to add explicit rules on the mailsurr.proto
  2930. file as follows:
  2931.  
  2932. Add this in just before the area where it deals with supposedly local names.
  2933.  
  2934. # Map all names addressed to alias@domain.com to appropriate users.
  2935. '.+'    '(sales)@(mydomain.net)'                  'Translate T=1; R=ron'
  2936. '.+'    '(sales)@(virtual1.ca)'    'Translate T=1; R=andy'
  2937. '.+'    '(sales)@(virtual2.ca)'       'Translate T=1; R=linda'
  2938. '.+'    '(sales)@(virtual3.ca)'                    'Translate T=1; R=bob'
  2939.  
  2940. In the above, all the R=names are local users or aliases (if they
  2941. are not local you can alias them to the real addresses).   
  2942.  
  2943. Subject: M54) I need to print all incoming mail as well as send it to 
  2944.    local users.
  2945.  
  2946. # Add this before any address translations to mailsurr.proto
  2947. #    Send all incomming mail to printer and to user. 
  2948. #    Do a C=* so mail is sent to the user also.
  2949. '.+'    '([^@]+)@(mydomain.com)'                '< C=*; lp      -dtest'
  2950.                   
  2951. Subject: M55) Mail loops - its forwarded by my provider but then goes into a loop - any ideas?
  2952.  
  2953. This usually occurs when the /etc/mail/mailsurr file is not
  2954. pattern matching a delivery line, specifically a line to translate the
  2955. address to a local address for delivery.
  2956.  
  2957. Examine the log file  in /var/mail/:log , look at the To
  2958. address of the bounced message. If its of the form
  2959.  
  2960.         @site.com:user@foo.domain
  2961.  
  2962. See M48.
  2963. Else check that your DOMAIN is defined in /etc/mail/mailcnfg and that
  2964. any customisations  to /etc/mail/mailsurr have been done.
  2965.  
  2966. Subject: M56) Mail delivery does not seem to be case insensitive - any ideas?
  2967.  
  2968. Problem: Any mail that is received with a capitol letter in the
  2969. recipient field is returned to the originator.  Meaning, if you compose
  2970. mail to AUser@mydom,net, it will not get to me. Instead an
  2971. ambiguous/invalid recipient error is generated. 
  2972.  
  2973. The problem occurs since the mailalias call with the mailsurr sees the
  2974. address with a domain still attached.  Translation to lower case is 
  2975. handled by the mailalias line within /etc/mail/mailsurr, in this case 
  2976. the mailalias call laves this alone as its not local, and a later line
  2977. attempts local delivery. The fix is to add another mailalias call
  2978. by duplicating the existing line.
  2979.  
  2980. Acknowledgements:
  2981.  
  2982.  
  2983. Many thanks to the following for feedback and comments on various
  2984. drafts of this FAQ: Steve Wootton, Pete Holsberg, Michael Tiernan,
  2985. Bob Stewart, Dan Daggett.
  2986.  
  2987. --
  2988. Andrew Josey,  Disclaimer: Any views expressed are not those of
  2989. my employer, either past, present or future.
  2990.