This includes command line programs such as mutt, pine, elm, and mail, and GUI programs such as balsa, xfmail to name a few, and something more ``sophisticated'' like a WWW browser. These programs simply pass off the email transactions to the local ``mailhost'', either by calling one of the server daemons available or delivering it over TCP.
This is usually sendmail (by default with FreeBSD) or one of the other mail server daemons such as qmail, postfix, or exim. There are others, but those are the most widely used.
The server daemon usually has two functions---it looks after receiving incoming mail and delivers outgoing mail. It does not allow you to connect to it via POP or IMAP to read your mail. You need an additional daemon for that.
Be aware that some older versions of sendmail have some serious security problems, however as long you run a current version of it you should not have any problems. As always, it is a good idea to stay up-to-date with any software you run.
The Domain Name System (DNS) and its daemon named play a large role in the delivery of email. In order to deliver mail from your site to another, the server daemon will look up the site in the DNS to determine the host that will receive mail for the destination.
It works the same way when you have mail sent to you. The DNS contains the database mapping hostname to an IP address, and a hostname to mailhost. The IP address is specified in an A record. The MX (Mail eXchanger) record specifies the mailhost that will receive mail for you. If you do not have an MX record for your hostname, the mail will be delivered directly to your host.
Receiving mail for your domain is done by the mail host. It will collect mail sent to you and store it for reading or pickup. In order to pick the stored mail up, you will need to connect to the mail host. This is done by either using POP or IMAP. If you want to read mail directly on the mail host, then a POP or IMAP server is not needed.
If you want to run a POP or IMAP server, there are two things you need to do:
Get a POP or IMAP daemon from the Ports Collection and install it on your system.
Modify /etc/inetd.conf to load the POP or IMAP server.
The mail host is the name given to a server that is responsible for delivering and receiving mail for your host, and possibly your network.