Skip to content

School project for Network Applications and Network Administration.

Notifications You must be signed in to change notification settings

auchytil/isa-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project: ISA - SMTP client

Authors: Albert Uchytil (xuchyt03)

Description

School project for Network Applications and Network Administration. Simple SMTP client. The connection to the server is not encrypted.

Implementation details

SMTP client application written using C++. This implementation uses OOP approach. Application consist of six classes.

Envelope and Message are used as data models. ArgParser focuses on argument parsing and validation. It fills the data models. After filling the models with valid data, the Client class instance is created. All communication with the SMTP server happens within the Client.

Usage

$ ./smtpclient [ -a IP ] [ -p port] [ -i file ] [ -w seconds ]

Options

  • -a IP
    • Address of the SMTP server
    • Optional
    • Default value is 127.0.0.1
  • -p port
    • Port on which the SMTP server is running
    • Optional
    • Default value is 25
  • -i file
    • Path to client's configuration file, that contains E-Mails
    • Required
  • -w seconds
    • Number of seconds to delay the closing of the connection with the server
    • Must be number from 0 to 3600
    • Optional
    • Default value is 0

Examples

$ ./smtpclient -i test/file01.txt
$ ./smtpclient -a 192.168.2.145 -p 1337 -i test/file02.txt
$ ./smtpclient -i test/file03.txt -w 60

Notes

  • Uses isa.local as hard-coded hostname, because it is the hostname of the testing server
  • Uses xuchyt03@isa.local as a sender
  • client.hpp contains DEBUG macro which enables logging if set to 1

Make options

  • make
    • Builds the project
  • make clean
    • Removes compiled files
  • make pack
    • Creates archive containing source files
  • make run
    • Runs project

Files required for submission

  • src/args.cpp
  • src/args.hpp
  • src/client.cpp
  • src/client.hpp
  • src/env.cpp
  • src/env.hpp
  • src/main.cpp
  • src/msg.cpp
  • src/msg.hpp
  • src/signal.cpp
  • src/signal.hpp
  • src/status.cpp
  • src/status.hpp
  • test/file01.txt
  • test/file02.txt
  • test/file03.txt
  • Makefile
  • README

About

School project for Network Applications and Network Administration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published