Skip Navigation Links | |
Exit Print View | |
Managing sendmail Services in Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library |
Local Mail and a Remote Connection
Setting Up Mail Services (Task Map)
Changing the sendmail Configuration (Task Map)
Changing the sendmail Configuration
How to Build a New sendmail.cf File
How to Automatically Rebuild a Configuration File
How to Use sendmail in the Open Mode
How to Manage Mail Delivery by Using an Alternate Configuration of sendmail.cf
Administering Mail Alias Files (Task Map)
Administering Mail Alias Files
How to Set Up an NIS mail.aliases Map
How to Set Up a Local Mail Alias File
How to Create a Keyed Map File
How to Create a postmaster Alias in Each Local /etc/mail/aliases File
How to Create a Separate Mailbox for postmaster
How to Add the postmaster Mailbox to the Aliases in the /etc/mail/aliases File
Administering the Queue Directories (Task Map)
Administering the Queue Directories
How to Display the Contents of the Mail Queue, /var/spool/mqueue
How to Force Mail Queue Processing in the Mail Queue, /var/spool/mqueue
How to Run a Subset of the Mail Queue, /var/spool/mqueue
How to Move the Mail Queue, /var/spool/mqueue
How to Run the Old Mail Queue, /var/spool/omqueue
Administering .forward Files (Task Map)
How to Change the .forward-File Search Path
How to Create and Populate /etc/shells
Troubleshooting Procedures and Tips for Mail Services (Task Map)
This section provides some procedures and tips that you can use for troubleshooting problems with mail services.
To test the changes that you make to your configuration file, follow these instructions.
# svcadm refresh network/smtp:sendmail
# /usr/lib/sendmail -v names </dev/null
Specify a recipient's email address.
This command sends a null message to the specified recipient and displays the message activity on your monitor.
From the main system to a client system
From a client system to the main system
From a client system to another client system
The sendmail program cannot detect whether the message is delivered because the program passes the message to UUCP for delivery.
The following example shows you how to verify an alias.
% mconnect connecting to host localhost (127.0.0.1), port 25 connection open 220 your.domain.com ESMTP Sendmail 8.13.6+Sun/8.13.6; Tue, 12 Sep 2004 13:34:13 -0800 (PST) expn sandy 250 2.1.5 <sandy@phoenix.example.com> quit 221 2.0.0 your.domain.com closing connection %
In this example, the mconnect program opened a connection to a mail server on a local host and enabled you to test that connection. The program runs interactively, so you can issue various diagnostic commands. For a complete description, see the mconnect(1) man page. The entry, expn sandy, provided the expanded address, sandy@phoenix.example.com. Thus, you have verified that mail can be delivered when using the alias sandy.
Remember to avoid loops and inconsistent databases when both local and domain-wide aliases are used. Be especially careful to avoid the creation of alias loops when you move a user from one system to another system.
To check the input and returns of the sendmail rule sets, follow these instructions.
# /usr/lib/sendmail -bt
Provide the following numbers and address at the last prompt (>).
> 3,0 mail-sraddress
Use the mail address that you are testing.
Press Control-d.
Example 2-3 Address Test Mode Output
The following is an example of the output from the address test mode.
% /usr/lib/sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > 3,0 sandy@phoenix canonify input: sandy @ phoenix Canonify2 input: sandy < @ phoenix > Canonify2 returns: sandy < @ phoenix . example . com . > canonify returns: sandy < @ phoenix . example . com . > parse input: sandy < @ phoenix . example . com . > Parse0 input: sandy < @ phoenix . example . com . > Parse0 returns: sandy < @ phoenix . example . com . > ParseLocal input: sandy < @ phoenix . example . com . > ParseLocal returns: sandy < @ phoenix . example . com . > Parse1 input: sandy < @ phoenix . example . com . > MailerToTriple input: < mailhost . phoenix . example . com > sandy < @ phoenix . example . com . > MailerToTriple returns: $# relay $@ mailhost . phoenix . example . com $: sandy < @ phoenix . example . com . > Parse1 returns: $# relay $@ mailhost . phoenix . example . com $: sandy < @ phoenix . example . com . > parse returns: $# relay $@ mailhost . phoenix . example . com $: sandy < @ phoenix . example . com . >
The mconnect program opens a connection to a mail server on a host that you specify and enables you to test that connection. The program runs interactively, so you can issue various diagnostic commands. See the mconnect(1) man page for a complete description. The following example verifies that mail to the user name sandy is deliverable.
% mconnect phoenix connecting to host phoenix (172.31.255.255), port 25 connection open 220 phoenix.example.com ESMTP Sendmail 8.13.1+Sun/8.13.1; Sat, 4 Sep 2004 3:52:56 -0700 expn sandy 250 2.1.5 <sandy@phoenix.example.com> quit
If you cannot use mconnect to connect to an SMTP port, check these conditions.
Is the system load too high?
Is the sendmail daemon running?
Does the system have the appropriate /etc/mail/sendmail.cf file?
Is port 25, the port that sendmail uses, active?
Your mail service logs most error messages by using the syslogd program. By default, the syslogd program sends these messages to a system that is called loghost, which is specified in the /etc/hosts file. You can define loghost to hold all logs for an entire NIS domain. If no loghost is specified, error messages from syslogd are not reported.
The /etc/syslog.conf file controls where the syslogd program forwards messages. You can change the default configuration by editing the /etc/syslog.conf file. You must restart the syslog daemon for any changes to become active. To gather information about mail, you can add the following selections to the file.
mail.alert – Messages about conditions that should be fixed now
mail.crit – Critical messages
mail.warning – Warning messages
mail.notice – Messages that are not errors, but might need attention
mail.info – Informational messages
mail.debug – Debugging messages
The following entry in the /etc/syslog.conf file sends a copy of all critical, informational, and debug messages to /var/log/syslog.
mail.crit;mail.info;mail.debug /var/log/syslog
Each line in the system log contains a timestamp, the name of the system that generated the line, and a message. The syslog file can log a large amount of information.
The log is arranged in a succession of levels. At the lowest level, only unusual occurrences are logged. At the highest level, even the most mundane and uninteresting events are recorded. As a convention, log levels under 10 are considered “useful.” Log levels that are higher than 10 are usually used for debugging. See Customizing System Message Logging in Troubleshooting Typical Issues in Oracle Solaris 11.1 for information about loghost and the syslogd program.
For other diagnostic information, check the following sources.
Look at the Received lines in the header of the message. These lines trace the route that the message took as the message was relayed. Remember to consider time–zone differences.
Look at the messages from MAILER-DAEMON. These messages typically report delivery problems.
Check the system log that records delivery problems for your group of systems. The sendmail program always records its activities in the system log. You might want to modify the crontab file to run a shell script nightly. The script searches the log for SYSERR messages and mails any messages that it finds to the postmaster.
Use the mailstats program to test mail types and determine the number of incoming messages and outgoing messages.