Sendmail is the de facto standard mail transfer agent, or MTA, in use on the internet today. While there are now several worthy contenders for the title of most popular MTA, including QMail and Postfix (both of which have Webmin modules), more mail probably passes through Sendmail than all other MTAs combined. In fact, it was estimated in 2000 that Sendmail moves more than 75% of the world's email.
An MTA is the software that provides mail services for a network. A client mail user agent, or MUA sends email, usually via the Simple Mail Transport Protocol, or SMTP, to the MTA. The MTA uses one of several transport protocols, most often via SMTP, to deliver it either directly to the recipient (if the address is served by the same server) or to the mail server for the user. Clients then access the mail on the server using either POP3 or IMAP. So, Sendmail will operate on your server and provide those intermediary services, both sending and receiving mail, for clients and other MTAs on the internet.
Sendmail has a reputation, not entirely unearned or undeserved, for being extremely obtuse and confusing to configure. The famously terse sendmail.cf file was designed to be easy and quick for the computer to parse, not for humans to be able to read and edit it. Relatively recently, attempts have been made to remedy this problem, and the solution now provided with Sendmail is an m4 macro based configuration file, called sendmail.mc by default, that allows you to use much more human comprehensible configuration constructs. Unfortunately for us using Webmin, we can't use this configuration file, as Webmin edits the sendmail.cf file directly. Luckily for us using Webmin, though, is the fact that Webmin allows us to do nearly everything we will ever need to do with Sendmail without ever directly touching either the m4 or the cf file. Unluckily for me, since my goal is a complete reference guide, I will briefly discuss adding a feature to the sendmail.mc and using m4 to convert it to a .cf file.
Sendmail also uses a few other configuration files to dictate certain other behaviors. These include aliases, mailertable, access, and domaintable. These files are quite readable by mere mortal humans, usually containing a few (or more than a few in large networks) names, hosts, or domains, and an option or permission that applies to the name, host, or domain. Webmin provides a nice interface for these files as well, so we won't have to deal with them directly either, but it is good to know about them, and what they're for. We'll cover them in more detail as the relevant Webmin sections are discussed.