Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I understand SMTP, and to a lesser degree POP3, but I feel like I'm missing a large chunk inbetween.

I see this image on a Microsoft page:

image

and I feel like what I'm missing is the "Internet" part. Basically: does the SMTP server directly contact the end POP3 server and transmit the message directly to the target server as you send it? As far as I know, the message will actually "bounce around" a lot and travel through many different servers before reaching its final destination. Or am I wrong, and it's really just a single transmission from one server to another? How does delivery work? Is it a part of SMTP or POP3, or is it a different protocol altogether?

Does sending mail to user@example.com just translate to "find the server at example.com, and send a message through its POP3 port"?

share|improve this question
    
Part of the problem is that the image is just plain misleading. I suggest you forget you ever saw it. –  Michael Hampton Aug 12 at 3:56

1 Answer 1

up vote 5 down vote accepted

As shown in your graphic, no protocol that exists "between" SMTP and POP3. SMTP is responsible for moving the message from the sending computer to the recipient's mail server. If there are multiple servers involved in moving the message from the sender's server to the recipient's server, each one moves the message via the SMTP protocol. These in-between servers (if any) are "relay" servers.

Here's a step-by-step (mail server software independent!) overview of how mail moves from sender to recipient:

  1. John sends an e-mail to Dave@MyMail.com
  2. John's computer uses SMTP to transmit to the message to his ISP's server, ISP-SERVER
  3. ISP-SERVER knows it isn't "authoritative" for the MyMail.com e-mail domain, so it performs a DNS lookup for one that is (specifically ISP-SERVER looks for an MX record in the mymail.com domain)
  4. A DNS MX record reports that the server MAIL-SERVER accepts messages for the MyMail.com e-mail domain, so ISP-SERVER sends John's message via the SMTP protocol to MAIL-SERVER
  5. MAIL-SERVER has a mailbox for Dave, so it puts John's e-mail in it
  6. When Dave checks his e-mail, his computer uses the POP3 protocol to connect to MAIL-SERVER and download the message from his friend Dave.

Most often messages are delivered like this, from the sender's mail server directly to the recipient's. However, it's perfectly possible that there could be multiple servers between the sender's and the recipient's, in which case each one acts as a "relay server" (reasons for this include having a server perform spam/virus filtering before sending the message to the destination server, or the destination company having many internal servers involved in moving the e-mail from one Internet-connected mail server to a server in the exact office where Dave works).

In any case, each relay server will look up a server that it should send the e-mail to (based on the domain name in the To: address of the e-mail) and use the SMTP protocol to pass the message on. Only once the message arrives at the destination server (where the recipient's mailbox exists) will the POP3 protocol be used by the recipient's computer to retrieve the message out of the user's mailbox.

share|improve this answer
    
Thanks. Some questions: what "kind of" server is ISP-SERVER? SMTP? When POP3 is used to download the message, how did the message get into the mailbox initially? SMTP again? When you say "MAIL-SERVER has a mailbox for Dave", is the mailbox a part of SMTP, POP3, or something else? The DNS MX record seems like a key part of what I was missing. Again, many thanks. –  Sahuagin Aug 12 at 4:28
    
When the e-mail message arrives at the destination SMTP server, it is recognised as being for local delivery (and not to be transmitted via SMTP to a next hop) and the the message either gets written directly to disk in the user's mailbox, without any special protocol. Or alternatively, using inter-process communication (sockets, pipes etc) the SMTP server transfers the message to a "Local Delivery Agent" (LDA) such as procmail. The optional LDA may do Spam filtering, run other mail filter rules etc before writing the e-mail message to disk. –  HBruijn Aug 12 at 8:01
    
In my example, ISP-SERVER would be any computer running mail server software, such as hMailServer or Microsoft Exchange. Same would be true for any of the intervening relay servers and as well as the destination server. As HBruijn stated, when the message arrives at the destination server a Local Delivery Agent takes the message from SMTP and puts it into the user's mailbox. There is no standard "protocol" for this process, rather it's up to the specific mail software how this is done. –  Twisty Aug 12 at 12:38

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.