How to design a (SMTP, POP3) Mail server C++ Guided project
What you'll learn
- The student will learn the difference between SMTP, POP3, and IMAP mail servers
- The student will learn how to design a command line client and also GUI to display response from server
- The student will understand the POP3 protocols and also the POP3 Commands
- The student will design a POP3 mail server that processes commands between the client.
- The student will learn the basics of socket programming and how to design a server socket and a client
Requirements
- Basic Understanding of C++ syntax and class is required
Description
This Course guides the learner through the design of a Mail Server in C++. The course opens with discussions on the difference between different Mail server protocols including SMTP, IMAP and POP3. It progresses towards the different types of servers including Mail server, database server, dns server, HTTP server etc and finally the POP version 3 protocol and twelve of its commands are discussed.
Then the coding project guided by the instructor who first designs a simple server protocol to open connection for a client. All necessary code required to setup a server, generate threads for clients, listen for connect and setup the mail server is programmed. Once a client is connected and on a separate thread the server listens for commands from the client . The list of POP3 commands programmed in this course includes:
RPOP
RETR
STAT
LIST
USER
NOOP
LAST
TOP
QUIT
DELE
RSET
LAST
There are two client designs one client design runs on the command line and the second design displays on GUI( Graphical User Interface) using QT. The GUI design is discussed at length and It consists of a simple design that touches the depth of client socket design. Messages are displayed on text browser and Client messages appear on a line edit.
This course is intended for C++ developers and is a full hands on with a guide from the instructor, from start to the finish , So enroll !!!
Who this course is for:
- All levels of C++ developers
Instructor
With over 7years designing vhdl, verilog projects on fpga.
Emmanuel is an embedded c++ system developer. He has strong knowledge in FPGA (Field Programmable Gate Array) development, Digital Electronics, Circuit Board design, and VHDL design and modeling of hardware systems using Logism. His focus of study in school was embedded systems with specialization in soc system on chip, processor core, serial communication protocols and encryption.