kenghtt :
I'm very new to this stuff. What is the difference? and would I need both to get a mail server working?
Hi there,
SMTP is a mail transmission protocol. It is used to send mail to a destination, either lazily (sending it directly to the mail exchanger for the destination domain) or through an outbound mail relay server. The latter is the preferred method as lazily sent messages are often flagged as spam.
SMTP is not a mailbox protocol. It is implied from above that SMTP is for delivery only, and this is indeed the case. There are several other protocols that are used for mail retrieval, the process of retrieving email stored on a mail server. The most common ones are Post Office Protocol Version 3 (POP3) and Internet Message Access Protocol (IMAP).
Where as SMTP is suitable for only delivery, POP/IMAP are suitable for only retrieval. An SMTP client and SMTP server can stand alone on an outbound-only mail server or as part of a lazy transmission program (included in some web frameworks) but POP and IMAP servers are useless on their own, they need to be paired with a mail server that pulls the SMTP and POP/IMAP protocols together.
There are a number of different mail server suites around, some are free but most are not. Mail servers combine implementations of all the various mail protocols together (a protocol on its own is abstract) into one big functional package and sprinkle a large number of goodies on top. At a minimum a mail server includes an SMTP implementation which allows the server to relay SMTP messages from authorized clients. More often the mail server also includes a mailbox program that allows the server to receive email (as opposed to simply relaying it), and implementations of the POP/IMAP protocols that allow clients to retrieve that email. Email servers also often include message filtering, spam filtering, quota control, shared calendars, shared address books, shared storage space, and many more features.
If you're interested in setting up your own mail server I would recommend SmarterMail as a good place to get started. It's best in class next to Microsoft Exchange and it does have a fully functioning free version that is limited only by the number of domains and mailboxes (1 domain, 10 mailboxes; enough for a family). I've been using it for many years for my family's email accounts, it's quite easy to get started with and has a purely web-based administrative interface.