Sendmail/iX for HP 3000 MPE
The mail transport agent that comes bundled with HPUX is now available for MPE
Last updated March 29, 2001 @ 2230 UTC
- What's New
- Welcome
- What is Sendmail?
- System Requirements
- How to Obtain Sendmail/iX
- Distribution Contents
- How to Compile
- How to Configure
- How to Run
- MPE/iX Implementation Considerations
- Known Issues Under Investigation
- To-Do List
- Change History
- February 21, 2001
- Documentation for Sendmail/iX MPE patch 1 updated to talk about a tar bug
that may prevent successful patch installation.
This is the official home page for the HP 3000 MPE port of the
Sendmail mail
transport agent from //sendmail.org/ (a commercial version
of sendmail is available from //sendmail.com/).
This distribution also contains a port of the Majordomo
mailing list system from //greatcircle.com/majordomo/. Check
here for the latest news, implemented functionality, known bugs, to-do
list, etc. Status reports about major milestones will also be posted to
the HP3000-L mailing list
and its associated gatewayed newsgroup comp.sys.hp.mpe.
I did this port because I wanted to be able to send reliable e-mail
from batch jobs and Apache web server CGI applications.
I chose Sendmail because it's free, and also because it's what I run on
Unix machines.
Please send your comments, questions, and bug reports directly to me,
Mark Bixby, by e-mailing to mark@bixby.org.
Or just post them to HP3000-L.
The platform I used to do this port is an HP 3000 957RX running MPE/iX
6.0 and using the GNU
gcc C compiler.
The combined porting wisdom from all of my ports can be found in my
MPE/iX Porting Guide.
Sendmail is a mail transport agent (MTA) that does two things:
- It accepts fully formatted e-mail messages from local host system users,
queues the messages, and then delivers the messages to either local users
or remote users.
- It listens on TCP port 25 for incoming SMTP messages from remote systems,
and delivers these messages to local host system users by appending the
message text to the user's mailbox file.
Sendmail IS NOT a mail user agent (MUA) and does not have the ability to
compose or read e-mail. The only MUA that comes bundled with MPE
at the current time is /bin/mailx (aka MAILX.HPBIN.SYS). Mailx is
not fancy, but offers enough functionality to be useful in many situations
such as sending e-mail from batch jobs.
Sendmail IS NOT a POP3 server that will enable network clients such
as Netscape Communicator or Microsoft Internet Explorer to access your
Sendmail/iX mailboxes. However, a port of Qualcomm's
QPopper is available from ftp://ftp.nha.co.za/hp3000/pop3/
if you want to provide this type of access.
- Requires MPE/iX 5.5 or later.
- Requires Syslog/iX.
Or you could also use the version of Syslog/iX that HP bundles with MPE/iX
6.0 or later.
- If you only want to run the pre-compiled Sendmail/iX binaries, you must
have one or more Domain Name Servers configured in /etc/resolv.conf:
- One or more nameserver lines must exist which point to the IP
addresses of valid DNS servers.
- One domain line must exist containing the DNS domain name that
your HP3000 belongs to. Note that this is NOT the fully qualified
domain name (FQDN)! Sendmail considers your FQDN to be the :NMMGR
node name concatenated with the /etc/resolv.conf domain value,
i.e. what you get when you do:
echo `/bin/uname -n`.`/bin/awk '/^domain/ { print $2 }' /etc/resolv.conf`
- The DNS server(s) listed on the nameserver lines MUST contain
BOTH a valid "A" record and "PTR" record for your HP3000's FQDN listed
by the echo command above.
- If you want to compile the Sendmail/iX sources, you must obtain and install
BIND/iX
(but note that running NAMED is not required -- Sendmail/iX just needs
libbind.a and the related include files). Or you could also use the
version of BIND/iX that HP bundles with MPE/iX 6.0 or later.
- If you want to run Majordomo/iX, you must obtain and install
Perl/iX.
- Any corporate firewalls in your environment must allow your HP3000 access
to ports 25 (SMTP, inbound and outbound) and 53 (DNS, outbound).
- Download the main Sendmail distribution and any patches using either FTP.ARPA.SYS
or some other client
- Extract the installation script
- Edit the installation script
- Run the installation script
- Install the patch
Download Sendmail using FTP.ARPA.SYS from your HP 3000 (the preferred method).....
:HELLO MANAGER.SYS
:XEQ FTP.ARPA.SYS
open ftp.bixby.org
anonymous
your@email.address
bytestream
cd /pub/mpe
get sendmail-8.9.1-mpe.tar.Z /tmp/sendmail.tar.Z
get sendmail-8.9.1-mpe-patch1.tar.Z /tmp/sendmail-patch.tar.Z
exit
.....Or download using some other generic web or ftp client (the alternate method)
Download the following files (make sure that you use "binary mode" or whatever
client feature that is 8-bit clean):
Upload those files to your HP 3000 in an 8-bit clean bytestream manner
to:
- /tmp/sendmail.tar.Z
- /tmp/sendmail-patch.tar.Z
Then extract the installation script (after both download methods)
:CHDIR /tmp
:XEQ TAR.HPBIN.SYS 'xvfopz /tmp/sendmail.tar.Z INSTALL'
Edit the installation script
Examine the accounting structure creation commands and modify if necessary
(adding additional capabilities, choosing a non-system volume set, etc).
:XEQ VI.HPBIN.SYS /tmp/INSTALL
Run the installation script
The accounting structure will be created and then all files will be extracted
from the archive.
:XEQ SH.HPBIN.SYS /tmp/INSTALL
Install the patch
These instructions assume that you have installed the tar patch MPELX37A
on 6.0 or MPELX37B on 6.5 to fix a number of bugs, one of which will result
in /SENDMAIL/PUB/SENDMAIL being corrupted. These tar fixes are included
in 7.0 mainline.
If you DO NOT have these tar fixes, please :PURGE /SENDMAIL/PUB/SENDMAIL
before following the instructions below.
:HELLO MANAGER.SYS
:CHDIR /SENDMAIL/PUB
:XEQ TAR.HPBIN.SYS 'xvfopz /tmp/sendmail-patch.tar.Z'
:XEQ CHOWN.HPBIN.SYS 'MGR.SENDMAIL:SENDMAIL SENDMAIL'
:XEQ CHMOD.HPBIN.SYS '755 SENDMAIL'
- README
- this file
- DAEMON
- POSIX shell script used to invoke the sendmail daemon
- INSTALL
- POSIX shell script used to create the accounting structure and extract
all files from the archive
- JDAEMON
- :STREAM this job to run the sendmail daemon
- SENDMAIL
- The main sendmail NMPRG
- WRAPPER
- The majordomo wrapper NMPRG
- bin/
- Miscellaneous NMPRGs as well as symbolic links to the main sendmail NMPRG
- db.1.85-mpe/
- The Berkeley DB 1.85 database routines source tree used by sendmail alias
files
- etc/
- Various run-time files including the sendmail.cf configuration file
- lib/
- Libraries required to compile sendmail
- m4-1.4-mpe/
- The GNU m4 macro processor source tree used to generate sendmail.cf
- majordo-1.94.4-m/
- The majordomo mailing list server source tree
- majordomo/
- The majordomo run-time tree
- man/
- Miscellaneous documentation
- mqueue/
- The sendmail run-time mail queue
- sendmail-8.9.1-m/
- The sendmail source tree
Berkeley DB 1.85 database routines
- cd db.1.85-mpe/PORT/mpe
- make
- make install
GNU m4 macro processor
- cd m4-1.4-mpe
- ./configure.MPE
- make
- cd src; make install
Majordomo mailing list server
- Obtain and install Perl/iX
- cd majordo-1.94.4-m
- make wrapper
- make install
- make install-wrapper
Sendmail
- Obtain and install Syslog/iX (or use the version
that comes bundled with MPE/iX 6.0 or later)
- Obtain and install BIND/iX (or use the version
that comes bundled with MPE/iX 6.0 or later)
- cd sendmail-8.9.1-m/src
- makesendmail
- makesendmail install
Modify various HP files
- :HELLO MANAGER.SYS
- Add a smtp 25/tcp entry to the file SERVICES.NET.SYS if such an
entry doesn't already exist. Verify that /etc/services exists as
a symbolic link which points to /SYS/NET/SERVICES.
- Edit /etc/mailx.rc to say set sendmail=/SENDMAIL/PUB/SENDMAIL.
Majordomo
- :HELLO MGR.SENDMAIL
- Edit majordomo/majordomo.cf to specify the value of $whereami.
- Read the documentation in majordo-1.94.4-m/ before attempting to create
a new mailing list
- Edit etc/majordomo.aliases to add the many aliases required if you want
to create your own mailing list.
- Run /SENDMAIL/PUB/bin/newaliases from SH.HPBIN.SYS to rebuild the alias
databases
Sendmail 8.9.1
- :HELLO MGR.SENDMAIL
- :XEQ SH.HPBIN.SYS -L
- cd sendmail-8.9.1-m/cf
- Edit ostype/mpeix.m4 if you wish to change the operating system default
macros, and domain/mpeix.m4 if you wish to change the domain default macros,
and cf/generic-mpeix.mc if you wish to change the machine default macros.
Note that these macros will be expanded to generate the actual runtime
configuration file /etc/sendmail.cf; direct editing of /etc/sendmail.cf
is STRONGLY DISCOURAGED if you wish to remain upward compatible with future
versions of sendmail.
- cd cf
- Expand the macros to generate a temporary copy of the runtime configuration
file:
/SENDMAIL/PUB/bin/m4 ../m4/cf.m4 generic-mpeix.mc >mpeix.cf
- :HELLO MANAGER.SYS
- :XEQ SH.HPBIN.SYS -L
- Copy the configuration file to the actual runtime location:
cp /SENDMAIL/PUB/sendmail-8.9.1-m/cf/cf/mpeix.cf /etc/sendmail.cf
- chown SERVER.SENDMAIL /etc/sendmail.cf
- :HELLO MGR.SENDMAIL
- Edit etc/aliases if you wish to create additional aliases besides the default
aliases of postmaster and MAILER-DAEMON which map to MGR.SENDMAIL
- Run /SENDMAIL/PUB/bin/newaliases from SH.HPBIN.SYS to rebuild the alias
databases
Majordomo
Majordomo is automatically run by Sendmail whenever e-mail is sent to the
special addresses contained in etc/majordomo.aliases.
Sendmail
- :STREAM JDAEMON.PUB.SENDMAIL to start the daemon
- :ABORTJOB to stop the daemon
- Run /SENDMAIL/PUB/bin/newaliases from SH.HPBIN.SYS to rebuild the alias
databases
- Run /SENDMAIL/PUB/bin/mailq from SH.HPBIN.SYS to display the mail queue
Sending E-mail
- echo message body without headers | /bin/mailx -s "message subject"
recipient@some.host
- echo fully-formatted message headers AND body | /SENDMAIL/PUB/SENDMAIL
recipient@some.host
Reading E-mail
A Programmatic Example
See mailspf.ci for a CI command file
that uses sendmail to e-mail spoolfiles as MIME attachments.
There some minor functionality issues to be aware of when comparing Sendmail
for Unix (Sendmail/UX) to Sendmail/iX:
- Sendmail/UX must be run as root to bind to TCP port 25. Sendmail/iX must
call GETPRIVMODE() to bind to TCP port 25.
- Sendmail/UX must be run as root to be able to setuid() to different run-time
user identities. Sendmail/iX must call GETPRIVMODE() in order to
setuid().
- Sendmail/iX does not support DeliveryMode=background at the present time.
Use DeliveryMode=interactive (the user client attempts immediate delivery,
so there may be a long timeout wait for non-responding hosts) or DeliveryMode=queue
instead (the user client just queues the mail and lets the daemon attempt
delivery during the next queue run). DeliveryMode=interactive is
the default configuration supplied with this distribution.
- Sendmail/iX does not support "super safe" mode when mailing to programs
because MPE lacks chroot().
- Sendmail/iX does not echo any program errors back in the bounce message
generated if an external mail program (i.e. majordomo) dies. This
is a limitation of not being able to dup() sockets on MPE.
- Executing any of the symbolic links in /SENDMAIL/PUB/bin directly from
CI.PUB.SYS won't work properly because CI doesn't pass the symbolic link
name in argv[0] like SH does. As a workaround you can write CI command
files to run SENDMAIL.PUB.SENDMAIL with the INFO= parameters implied by
the symbolic links. See /SENDMAIL/PUB/bin/MAILQ for an example.
- Sendmail/iX 8.9.0 is super-strict about file security and complains that
MPE accounts and groups have group-writable permissions. Thus the
DontBlameSendmail configuration option is used to disable some of these
security checks so that most configuration files can continue to reside
in the SENDMAIL account.
- Figure out a way to support DeliveryMode=background which requires that
a parent process be able to fork() and then exit(), while the child process
continues to live on in the background somewhere (maybe adopted under PIN
1 progen?).
- Squash all known issues listed above.
- Encourage HP to deal with some of the "Modify various HP files" items above.
- Submit MPE porting patches back to the official sendmail developers.
- Finish porting the DB 2.x database routines from www.sleepycat.com.
- February 20, 2001
- Sendmail/iX MPE patch 1 is now available. It is strongly recommended
that all Sendmail/iX users install this patch. If you already have
Sendmail/iX installed, you only need to install the patch; you do not need
to reinstall all of Sendmail/iX. This patch fixes:
- System aborts on MPE 6.5 due to setsockopt(SO_KEEPALIVE). The underlying
MPE problem (SR 8606-151861) is fixed by patch NSTFDX5A. The Sendmail/iX
patch works around this MPE problem just in case you do not have NSTFDX5A
installed.
- Inbound messages causing process aborts in buildfname due to fields in
the getpwnam() passwd structure that are uninitialized by MPE.
- Outbound messages that bounce would result in double bounces being returned
to the local MPE user.
- September 17, 1999
- Migrated from cccd.edu to bixby.org.
- March 31, 1999
- Added a link in the How To Run section that points to my mailspf CI command
file that uses sendmail to e-mail spoolfiles as MIME attachments.
- January 6, 1999
- Improved web page documentation. For clarity, I've tried to be consistent
and use a fixed width font for all computer input examples.
Detailed explanations about why you want to edit various files have been
added. The System Requirements section has been expanded to cover
some common things overlooked by people installing Sendmail/iX for the
first time.
- July 21, 1998
- Updated to 8.9.1.
- Eliminated compile/link dependency on /SENDMAIL/PUB/lib/libpwent.a.
- Fixed unresolved external problem in makemap unknowingly released by me
in my 8.9.0 binary release.
- INSTALL script now symlinks /usr/lib/sendmail to /SENDMAIL/PUB/SENDMAIL.
- June 19, 1998
- Updated to 8.9.0, a production release containing many new exciting anti-spam
features.
- POSIX environment variables are now passed properly from parent to child.
- Submitted my MPE porting diffs to the official sendmail developers for
preliminary review.
- April 4, 1998
- Because my public release of 8.9.0Beta5 violated the beta copyright agreement,
I have withdrawn that version. Until I release the production version
of 8.9.0, please download sendmail-8.8.8-mpe.tar.Z instead.
- April 1, 1998
- Updated to 8.9.0Beta5. Note that Beta5 is a production release candidate;
I'm running the Unix version of Beta5 as the mail server for @bixby.org
without any problems. Significant new features:
- Makefiles are now derived from m4 macros.
- Sendmail is much more paranoid about filesystem security, and performs
very rigorous security checking before any file is opened. This checking
is SO rigorous that your existing configuration may break; if so, use the
DontBlameSendmail configuration option to disable some of these security
checks if you cannot modify your existing file/directory layout.
Note that MPE requires certain DontBlameSendmail parameters so that almost
all files can reside in the SENDMAIL account.
- Exciting new anti-spam functionality that includes (partial list):
- Relaying disabled by default.
- Unresolvable From: domains rejected by default.
- Unqualified senders (i.e. a user but no hostname) rejected by default.
- Optional use of the Realtime Blackhole List to reject mail from known spam
networks (see //maps.vix.com/
for details)
- Because of the new rigorous security checking, the sendmail configuration
file /SENDMAIL/PUB/etc/sendmail.cf had to be moved to /etc/sendmail.cf.
- March 17, 1998
- Minor web page documentation changes.
- Sendmail goes commercial! See www.sendmail.com
for details. Note that I haven't yet had time to build the 8.9 freeware
version referred to at that site.
- March 9, 1998
- While compiling with a pre-release copy of gcc 2.8, I discovered and fixed
compile-time problems in db and m4 where -D_POSIX_SOURCE was missing.
- Minor web page documentation error corrected regarding how to generate
the sendmail.cf configuration file.
- February 15, 1998
- Fixed a problem where sendmail would encounter an MPE/iX bug that results
in an infinite CPU loop within the fprintf() code in /lib/libc.a (see SR
5003406538). The workaround is to use an unbuffered output stream,
which should result in a slight loss of performance, though I haven't measured
the difference. I believe that I was the only person to encounter
this problem with sendmail; nobody else has reported any trouble to me.
- New and improved and simplified installation process. I plan to re-work
all of my other ports to use the same basic script, so please give me your
feedback about the new process.
- January 16, 1998
- Initial public release. Enjoy.
- December 20, 1997
Top
Bixby
Hosted by 3kRanger.com
email 3kRanger
Updated