This project is an implementation of an e-mail server that uses SMTP/IMAP protocols and allow registered users to send and receive emails.
Get a more in depth understanding of the inner working of application layer protocols, and play around with sockets.
A mail server (or email server) is a computer system that sends and receives email.
Mail servers send and receive email using standard email protocols. For example, the SMTP protocol sends messages and handles outgoing mail requests. The IMAP and POP3 protocols receive messages and are used to process incoming mail. When you log on to a mail server using a webmail interface or email client, these protocols handle all the connections behind the scenes.
The Simple Mail Transfer Protocol is a communication protocol for electronic mail transmission. As an Internet standard, SMTP was first defined in 1982 by RFC 821, and updated in 2008 by RFC 5321 to Extended SMTP additions, which is the protocol variety in widespread use today.
Figure: SMTP AgentsIn computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection.[1] IMAP is defined by RFC 3501.
IMAP was designed with the goal of permitting complete management of an email box by multiple email clients, therefore clients generally leave messages on the server until the user explicitly deletes them. An IMAP server typically listens on port number 143. IMAP over SSL (IMAPS) is assigned the port number 993.
- Multiple clients support.
- Clients GUI.
- Sign up mencanism.
- more use cases handling (emails flags...).
- Add Exchange Agent (the agent responsible for forwarding emails to outer mail servers)
[1] Mail Server Definition - https://techterms.com/definition/mail_server
[2] Simple Mail Transfer Protocol - Wikipedia - https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
[3] Internet Message Access Protocol - Wikipedia - https://en.wikipedia.org/wiki/Internet_Message_Access_Protocol