- Sun Microsystems SunOS/Solaris 1.x/2.x
- How can I solve "line 273: replacement $3 out of bounds" errors?
- How can I solve "line 445: bad ruleset 96 (50 max)" errors?
- Why does version 8 sendmail (< 8.7.5) sometimes hang under Solaris 2.5?
- Why can't I use SunOS/Solaris to get email to certain large sites?
- Why do I have trouble compiling on Solaris?
- How does 8.X compare to 8.X+Sun?
- IBM AIX
- The system resource controller always reports sendmail as "inoperative". What's wrong?
- Why can't I use AIX to get email to some sites?
- Why can't I get sendmail 8.7.1 to use MX records with AIX 3.2.5?
- Linux
- Red Hat
- Why do I have so many sendmail problems configuring sendmail with linuxconf?
- I built sendmail.cf from sendmail.mc and it works until the next reboot of the machine. What is going on?
- Why can't I receive mail with Red Hat 7.1 and later?
- SusE
- Where is the sendmail.mc file on SuSE Linux?
Sun Microsystems SunOS/Solaris 1.x/2.x
How can I solve "line 273: replacement $3 out of bounds" errors?
When I use sendmail V8 with a Sun config file I get lines
like:
/etc/sendmail.cf: line 273: replacement $3 out of bounds
the line in question reads:
R$*<@$%y>$* $1<@$2.LOCAL>$3 user@ether
what does this mean? How do I fix it?
V8 doesn't recognize the Sun "$%y" syntax, so as far as it is
concerned, there is only a $1 and a $2 (but no $3) in this line.
Read Rick McCarty's paper on "Converting Standard Sun Config Files
to Sendmail Version 8", in the contrib directory (file
"converting.sun.configs") in the latest version 8 sendmail
distribution for a full discussion of how to do this.
How can I solve "line 445: bad ruleset 96 (50 max)"
errors?
When I use sendmail V8 on a Sun, I sometimes get lines like:
/etc/sendmail.cf: line 445: bad ruleset 96 (50 max)
what does this mean? How do I fix it?
You're somehow trying to start up the old Sun sendmail (or
sendmail.mx) with a version 8 sendmail config file, which Sun's
sendmail doesn't like. Check your /etc/rc.local, any procedures
that have been created to stop and re-start the sendmail processes,
etc.... Make sure that you've switched everything over to using the
new sendmail. To keep this problem from ever happening again, try
the following (make sure you're logged in as root):
mv /usr/lib/sendmail /usr/lib/sendmail.old
ln -s /usr/local/lib/sendmail.v8 /usr/lib/sendmail
mv /usr/lib/sendmail.mx /usr/lib/sendmail.mx.old
ln -s /usr/local/lib/sendmail.v8 /usr/lib/sendmail.mx
chmod 0000 /usr/lib/sendmail.old
chmod 0000 /usr/lib/sendmail.mx.old
Assuming, of course, that you have installed sendmail V8 in
/usr/local/lib/sendmail.v8.
Why does version 8 sendmail (< 8.7.5) sometimes
hang under Solaris 2.5?
In moving from Solaris 2.4 to Solaris 2.5, the kernel changed
its name and is now in /kernel/genunix instead of /kernel/unix, so
_PATH_UNIX in conf.h is pointing to the wrong place.
If you can't upgrade to the latest release of sendmail 8.8.z,
the next best thing to do is change _PATH_UNIX in conf.h (in the
solaris2 part) to point to the generic interface /dev/ksyms, like
so:
# define _PATH_UNIX "/dev/ksyms"
Why can't I use SunOS/Solaris to get email to certain large sites?
This is most likely a problem in your resolver libraries (DNS,
/etc/hosts, NIS, etc...). Older Sun (and Solaris?) resolver
libraries allocated enough room for only five IP addresses for each
host name, and if any program ever ran across a name with more than
five IP addresses for it, the program would crash.
For example, this would keep you from getting mail to
CompuServe, since (at the time of this writing) they list eleven IP
addresses for mx1.compuserve.com (one of the named MXes for
compuserve.com).
This will affect you even if you use version 8 sendmail, since
it's a problem in the resolver libraries, and not in sendmail
itself.
You should either get patches to the resolver libraries from
Sun, or the latest version of BIND (see Q2.12) and install their
resolver library routines. Between the two, installing BIND is a
bit more work, but it typically gives you much more up-to-date code
to help you resist attacks to your systems, more capable programs
to be used for serving the DNS (including support for IPv6 and
several other features), and some very useful utility programs.
Why do I have trouble compiling on Solaris?
Many people have experienced compilation problems on Solaris,
with the compiler typically complaining about tm_zone
or TopFrame. The Solaris section of our
Compiling Sendmail page explains these.
How does 8.X compare to 8.X+Sun?
With a Vn/Berkeley config file, they're
identical. There are a few minor differences between 8.X
with a Vn/Berkeley config file and
8.X+Sun with the same config file, but the V
line changed to Vn/Sun. But most differences
are the backwards compatibility hacks needed for 8.X+Sun
to support old V1/Sun config files.
There are three web pages which discuss these in detail:
Berkeley migration (from
SMI-8.6 to 8.X), Sun migration (from SMI-8.6
to 8.X+Sun), and Differences (5 sections
comparing and contrasting config files and binaries).
IBM AIX
The system resource controller always reports
sendmail as "inoperative". What's wrong?
When I use version 8 sendmail on an IBM RS/6000 running AIX, the
system resource controller always reports sendmail as
"inoperative", even though it's actually running. What's wrong?
When running as a daemon, sendmail detaches from its parent
process, fooling the SRC into thinking that sendmail has exited. To
fix this, issue the commands:
kill `head -1 /etc/sendmail.pid`
chssys -s sendmail -f 9 -n 15 -S -a "-bD"
startsrc -s sendmail -a "-bd -q30m"
# your sendmail args may vary
Now the SRC should report the correct status of sendmail.
For more information, read up on the System Resource Controller,
the lssrc command and the chssys command in the online AIX
documentation.
Why can't I use AIX to get email to some sites?
When I use IBM's sendmail on an IBM RS/6000 running AIX trying
to get to certain sites, it seems that I can get to some of them
and not others. What's wrong?
There are two possible problems here:
1) Your version of sendmail is not configured to recognize MX
records in the DNS. Search through your sendmail.cf looking for "OK
MX" or "OK ALL". Older configurations had this line commented out,
and this will cause mail from you to some sites to fail (because
those sites have MX records, but no A records in their DNS for the
specific Fully Qualified Domain Name you're trying to mail to).
For more information, see the comp.unix.aix FAQ ftp://rtfm.mit.edu/pub/usenet/news.answers/aix-faq/.
2) There is a negative caching bug in AIX 3.2.5 with
/usr/sbin/named executables that are less than 103000 bytes long.
Ask your IBM representative to give you PMP 3251, or the most
recent patch that fixes this problem for your particular
configuration and version of the OS.
Why can't I get sendmail 8.7.1 to use MX records with AIX 3.2.5?
IBM, in their infinite wisdom, provided a header file that would
easily mis-compile. This resulted in the struct{} for the DNS query
to be mis-allocated, and MX processing would barf.
Fix 1) upgrade to 8.7.5 - this has a code fix for this
problem.
Fix 2) Install the BIND 4.9.4 libraries and include files and
tweak the Makefile.AIX to use them - I *think* these Get It Right
(if not, at least it'll die during compile rather than failing
weirdly at runtime).
Fix 3) Hack Makefile.AIX to pass a -DBIT_ZERO_ON_LEFT to cause
the headers to use the right #ifdefs.
Linux
Red Hat
Why do I have so many sendmail problems configuring sendmail with linuxconf?
Do not edit sendmail.cf with
linuxconf. This tool and its module "mailconf" are broken and based
on very old rulesets from 8.8.7 . You will have many troubles if
you do this. First make sure that the sendmail-cf RPM is installed.
Then create your own myhost.mc file in
/usr/lib/sendmail-cf/cf:
% cd /usr/lib/sendmail-cf/cf
% cp redhat.mc myhost.mc
(Edit myhost.mc)
% m4 ../m4/cf.m4 myhost.mc > myhost.cf
(Test this new myhost.cf; once it's known good, install it:)
(If 8.9.x or earlier:)
% cp myhost.cf /etc/sendmail.cf
% chown root /etc/sendmail.cf
(If 8.10.x or later:)
% cp myhost.cf /etc/mail/sendmail.cf
% chown root /etc/mail/sendmail.cf
See /usr/doc/sendmail/README.cf (or just README) for features and
detailed instructions how to do this.
I built sendmail.cf from sendmail.mc and it works
until the next reboot of the machine. What is going on?
If you have used linuxconf's module "mailconf" just once, it
will rewrite your sendmail.cf on every reboot if it sees that
sendmail.cf is changed from linuxconf. The solution is to remove
the mailconf module from linuxconf. Turn on linuxconf and go to
item
Control files and systems > Configure Linuxconf modules
Scroll down to "Module path -> mailconf" and turn
off the button "this module is active", then click
"Accept" and "quit" to quit linuxconf.
This will disable linuxconf's control of sendmail. Build
sendmail.cf again from sendmail.mc (see 5.3.1), and restart sendmail.
Why can't I receive mail with Red Hat 7.1 and later?
Red Hat, like some other vendors, changed the way that sendmail
is run. (See 4.22 for a more
general discussion of this problem.) They decided that most people
need a client-only version of sendmail. So it is listening only on
the localhost interface. Check the RH documentation on how to
change that:
Make sure that you have installed the "sendmail-cf" package on
your system -- it should be on your install media.
Then check the file "sendmail.mc" (probably in "/etc/mail").
Look for the string "DAEMON_OPTIONS" and for the
comment lines near that string.
Also note that Red Hat 7.1 and later build sendmail with
tcpwrapper support, and provide a hosts.deny file that
rejects all external mail. The sendmail:ALL addition
to hosts.allow fixes this.
SusE
Where is the sendmail.mc file on SuSE Linux?
On SuSE Linux systems there is no real sendmail.mc file. This
file is generated 'on the fly' by SuSEconfig using several
variables in /etc/rc.config and /etc/rc.config.d/sendmail.rc.config
(SuSE <= 7.3) or /etc/sysconfig/sendmail (SuSE >= 8.0).
SuSEconfig executes the script /sbin/conf.d/SuSEconfig.sendmail
to a) build a temorary .mc file b) execute m4 to generate
/etc/sendmail.cf and c) delete the temporary .mc file
afterwards.
To make customisations you cannot achieve by modifying the
variables in the configuration files mentioned above (using YaST or
YaST2), you have two options:
- Use /etc/mail/linux.mc (or /etc/mail/linux.nullclient.mc) as a
starting point. Both files contain several helpful comments.
- To get a .mc file based on your current configuration, modify
/sbin/conf.d/SuSEconfig.sendmail to keep the temporary .mc file and
execute SuSEconfig afterwards. Then use that copy as starting
point.
In both cases you have to build your /etc/sendmail.cf (note: SuSE
still uses /etc not /etc/mail as suggested in the manual) using the
m4 macroprocessor:
m4 your.mc.file > /etc/sendmail.cf
Then reload sendmail with "rcsendmail reload".
To prevent SuSEconfig from overiding your new sendmail.cf in
future runs, set the variable "SENDMAIL_TYPE" in
/etc/rc.config.d/sendmail.rc.config to "no" (SuSE Linux <= 7.3).
On systems >= 8.0 you probably will have to set an "exit"
command atop of the file /sbin/conf.d/SuSEconfig.sendmail to do the
same. SuSE 8.0 does not know the SENDMAIL_TYPE
variable.