Debian mail system technical guidelines --------------------------------------- (This is based on "Attn maintainers of mail processing packages", posted to debian-devel some time ago. It has been somewhat updated. It describes what decisions I have taken in my build of Smail3 for Debian.) Debian packages which process electronic mail (whether user agents or alternative MTAs) MUST make sure that they are compatible with the configuration decisions below. Failure to do this may result in lost mail, broken From: lines, and other serious brain damage ! * The mail spool is /var/spool/mail and the interface to send a mail message is /usr/sbin/sendmail (as per the FSSTND). The mail spool is part of the base and not part of the MTA package. * mailboxes are locked using the `.lock' lockfile convention, rather than fcntl, flock or lockf. * Mailboxes are generally 660 .mail unless the user has chosen otherwise. A MUA may remove a mailbox (unless it has nonstandard permissions) in which case the MTA or another MUA must recreate it if needed. Mailboxes must be writeable by group mail. * The mail spool is 2775 mail.mail, and MUA's need to be setgid mail to do the locking mentioned above (and obviously need to prevent access to other users' mailboxes). * /etc/aliases is the source file for the system mail aliases (eg postmaster, usenet, etc.) - it is the one which the sysadmin and postinst scripts may edit. * The convention of writing `forward to
' in the mailbox itself is not supported. Use a .forward file instead. * The location for the `rmail' program used by UUCP for incoming mail is /usr/sbin/rmail, as per the FSSTND. Likewise, `rsmtp', for receiving batch-SMTP-over-UUCP, is in /usr/sbin/rsmtp if it is supported. * I have told Smail that we are not using HoneyDanBer UUCP, whose uux apparently accepts -a and -g options. * If you need to know what name to use (for example) on outgoing news and mail messages which are generated locally, you should use the file /etc/mailname. It will contain the portion after the username and @ sign for email addresses of users on the machine (followed by a newline). A package should check for the existence of this file. If it exists it should use it without comment[+]. If it does not exist it should prompt the user for the value and store it in /etc/mailname as well as using it in the package's configuration. The prompt should make it clear that the name will not just be used by that package. E.g., in the same situation the INN package says: ] Please enter the `mail name' of your system. This is the hostname ] portion of the address to be shown on outgoing news and mail messages. ] The default is `$syshostname', your system's host name. ] ] Mail name [`$syshostname']: ($syshostname is the output of `hostname --fqdn'). [+]: An MTA's prompting configuration script may wish to prompt the user even if it finds this file exists.