Skip navigation.
Home

Working of E-mail system

Whenever e-mail is sent the client interacts with the SMTP server to handle the sending. The SMTP server on sender's host will have conversations with other SMTP servers to deliver the e-mail.
 
Let's assume one is sending e-mail from e-mail-ID deepak@mts.com to e-mail-ID pradeep@cmc.com. The sender is using e-mail client Outlook Express. Here while setting up the account using Outlook Express one need to specify the mail server as mail.mts.com. 
 
After the e-mail is composed, when the sender presses the [send] button, the following happens:
 
 
Outlook Express will connect to the SMTP server at mail.mts.com. 
 
Outlook Express will interact with the SMTP server and will update the SMTP server the address of the sender and the address of the recipient, as well as the body of the message.
 
The SMTP server will then break the "to" address it into the recipient name and the domain name. 
 
If the "to" address is for another user at the same domain, the SMTP server would simply hand the message to the POP3 server for delivery using a small program called the delivery agent. 
 
If the recipient is at another domain, SMTP server will have to communicate with that domain, and will go to Step (f).
 
The SMTP server will then look into Domain Name Server, or DNS to pick up the IP address of the SMTP server of the recipient's domain. It can so happen that the there are more than one SMTP servers operating for that domain. The DNS will return all IPs of the SMTP servers.
 
The SMTP server of sender will than connect with the SMTP server of the recipient and passes the message to the recipient's SMTP server.
 
The SMTP server of the recipient will then pass the message to the POP3 server, which in turn will put the message into the recipient's mailbox.
 
If for some reason the sender's SMTP server fails to connect to the SMTP server of the recipient's SMTP server, then the message goes into a queue. Generally each SMTP server uses a program call 'sendmail' to do actual sending, and in case the 'sendmail' is unable to send a message, it keeps the message in 'sendmail' queue. The 'sendmail' program can be set to do periodic sending attempt and to abort the process after a pre-fixed time. Normally the aborted mails are sent back to sender as 'undelivered' mails.