Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

8 семестр / Готовая курсовая работа / ММиВА. Курсовая работа

.pdf
Скачиваний:
29
Добавлен:
09.03.2022
Размер:
2.04 Mб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича»

(СПбГУТ)

Факультет инфокоммуникационных сетей и систем Кафедра программной инженерии и вычислительной техники

КУРСОВАЯ РАБОТА

по дисциплине «Математические методы и вычислительные алгоритмы современных систем связи»

на тему «Разработка почтового клиента»

студент гр. ИКПИ-84

_______________

Коваленко Л. А.

преподаватель каф. ПИиВТ

_______________

к.п.н., доцент Коробов С. А.

Санкт-Петербург

2022

Оглавление

1. ПОСТАНОВКА ЗАДАЧИ ..............................................................................

3

2.ВЫБОР И НАСТРОЙКА ИНСТРУМЕНТОВ ПРОГРАММИРОВАНИЯ 4

 

2.1.

Выбор инструментов программирования .............................................

4

 

2.2. Установка и настройка инструментов программирования .................

5

3.

РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ....................................

7

 

3.1. Форма главного окна для отображения папок и сообщений ..............

7

 

3.2. Форма модального окна настроек параметров для авторизации .......

9

 

3.3. Форма модального окна отправки сообщения с вложениями ..........

10

 

3.4.

Дополнительные формы .......................................................................

10

4.

РАЗРАБОТКА КОДА ...................................................................................

15

 

4.1.

Разработка модульной структуры........................................................

15

 

4.2.

Разработка кода......................................................................................

16

 

4.2.1.

Класс «ImapSettings».......................................................................

16

 

4.2.2.

Класс «SmtpSettings» ......................................................................

17

 

4.2.3. Файлы «tools.h» и «main.cpp» ........................................................

17

 

4.2.4.

Класс «SendMessageDialog»...........................................................

18

 

4.2.5.

Класс «SettingsDialog» ....................................................................

18

 

4.2.6.

Класс «MainWindow» .....................................................................

19

5.

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ ..........................................................

22

 

5.1.

Настройка учетной записи....................................................................

22

 

5.2. Обновление списка папок с сообщениями .........................................

23

 

5.3.

Отправка сообщения .............................................................................

27

 

5.4.

Работа с папками ...................................................................................

29

 

5.5.

Работа с сообщениями ..........................................................................

32

ЗАКЛЮЧЕНИЕ .....................................................................................................

36

СПИСОК ЛИТЕРАТУРЫ.....................................................................................

36

ПРИЛОЖЕНИЕ .....................................................................................................

37

2

1. ПОСТАНОВКА ЗАДАЧИ

Разработать клиентское приложение для получения и отправки

электронных почтовых сообщений.

Приложение должно реализовывать следующие функции:

Настройка параметров для авторизации на сервере (IMAP и SMTP).

Отображение электронных папок с сообщениями (IMAP).

Загрузка и сохранение вложений на диск.

Отправка сообщений с вложенными файлами (SMTP).

Добавление, переименование/перемещение, удаление папок электронной почты (IMAP).

Копирование и удаление сообщений (IMAP).

Интерфейс программы должен включать:

Главное окно для отображения папок и писем.

Модальное окно настроек параметров для авторизации.

Модальное окно для отправки сообщения с вложенными файлами.

Модальные окна для добавления, переименования/перемещения,

удаления папок.

Модальные окна для копирования и удаления сообщений.

Диалоговое окно «Загрузка вложения».

Диалоговое окно «Статистика».

Диалоговое окно «О программе».

Дополнительные вспомогательные окна.

Приложение должно использовать только зашифрованные соединения,

а также иметь графический интерфейс, достаточный для выполнения всех задач.

3

2.ВЫБОР И НАСТРОЙКА ИНСТРУМЕНТОВ ПРОГРАММИРОВАНИЯ

2.1. Выбор инструментов программирования

Выбранный язык программирования: C++.

Выбранные инструменты программирования:

1.Qt вместе с «Developer and Designer Tools».

2.Библиотека OpenSSL-Win64 1.1.1m (14 Dec 2021).

3.Библиотека Boost 1.78.0. Требует поддержку C++17.

4.Библиотека Mailio 0.21.1-hotfix. Требует поддержку C++17, Boost, OpenSSL.

Обоснование выбора:

C++ поддерживает парадигму ООП, а Qt полностью следует ей,

начиная с классов элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML.

Это позволяет писать код проще (абстракция, наследование и инкапсуляция лучше направляют мысли) и надежнее (благодаря механизму исключений и их обработке try-catch оператором).

OpenSSL позволяет шифровать данные и устанавливать SSL/TLS

соединения.

Boost предоставляет высокоуровневый интерфейс для лаконичного кодирования различных подзадач программирования

(работа с данными, алгоритмами, файлами, потоками и т. п.).

Mailio позволяет работать с форматом MIME и протоколами

SMTP, POP3 и IMAP. Использует OpenSSL и Boost.

Разработка осуществляется для MS Windows. Кроссплатформенность зависит от кроссплатформенности Qt, Boost и OpenSSL.

4

2.2. Установка и настройка инструментов программирования

Порядок установки и настройки:

1.Qt.

Загрузить по кнопке «Download the Qt Online Installer» на сайте: https://www.qt.io/download-open-source

При установке выбрать:

Qt 6.2.3 Prebuilt Components for MinGW 11.2.0 64-bit («Qt 6.2.3» «MinGW 11.2.0 64-bit»);

CDB Debugger support for Qt Creator («Developer and Designer Tools» «Qt Creator 6.0.2 CDB Debugger Support»);

MinGW-builds 11.2.0 64-bit toolchain with gcc 11.2.0 («Developer and Designer Tools» «MinGW 11.2.0 64-bit»);

CMake Tools 3.21.1 («Developer and Designer Tools» «CMake 3.21.1 64-bit»);

Ninja 1.10.2.

Добавить в переменную среды PATH (и в пользовательскую, и в системную): «C:\Qt\Tools\mingw900_64\bin».

Добавить в переменную среды PATH (и в пользовательскую, и в системную): «C:\Qt\Tools\CMake_64\bin».

Итоговый размер «C:\Qt»: 2.19 ГиБ.

2.OpenSSL.

Загрузить на сайте: https://slproweb.com/products/Win32OpenSSL.html

Установить в папку «C:\Program Files\OpenSSL-Win64».

OpenSSL DLLs устанавливать в системную директорию Windows.

Итоговый размер «C:\Program Files\OpenSSL-Win64»: 278.07 МиБ.

3.Boost.

Загрузить на сайте: https://www.boost.org/users/download/

Распаковать в папку «C:\boost_1_78_0».

5

Открыть файл bootstrap.bat в этой папке с помощью блокнота и заменить строку "call .\build.bat" на строку "call .\build.bat %1",

изменения сохранить.

Открыть командную строку.

Выполнить в командной строке: cd C:\boost_1_78_0\

Выполнить в командной строке: .\bootstrap.bat gcc

В выводе должно появиться "Bootstrapping is done. To build, run:".

Выполнить в командной строке:

.\b2 --build-type=minimal toolset=gcc link=static threading=multi stage

Выполнить в командной строке: .\b2 install

В результате в корне диска C будет создана папка Boost с подпапками lib и include.

Добавить в переменную среды PATH (и в пользовательскую, и в системную): «C:\Boost».

Итоговый размер «C:\Boost»: 840.29 МиБ.

4.Mailio.

Загрузить на сайте: https://github.com/karastojko/mailio

Распаковать в папку «C:\mailio».

Открыть командную строку.

Выполнить в командной строке: cd C:\mailio\

Выполнить в командной строке: mkdir build

Выполнить в командной строке: cd .\build

Выполнить в командной строке: cmake.exe .. -G "MinGW Makefiles"

Выполнить в командной строке: make install

Make for Windows: http://gnuwin32.sourceforge.net/packages/make.htm

В результате в папке «C:\Program Files (x86)» будет создана папка mailio с подпапками include, lib и share.

Итоговый размер «C:\Program Files (x86)\mailio»: 88.15 МиБ.

Суммарный размер: 3.38 ГиБ.

6

3.РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА

3.1.Форма главного окна для отображения папок и сообщений

Форма главного окна для отображения папок и сообщений приведена на рис. 3.1.

Рисунок 3.1. Форма главного окна для отображения папок и сообщений

Меню состоит из следующих пунктов (рис. 3.2):

«Главное».

o «Обновить папки с сообщениями». o «Настроить учетную запись».

o Разделитель.

o«Выйти из программы».

«Папки».

o«Добавить папку».

o «Переименовать выбранную папку». o «Удалить выбранную папку».

7

«Сообщения».

o «Отправить сообщение».

o «Скачать вложение выбранного сообщения». o Разделитель.

o «Скопировать выбранные сообщения в папку…».

o«Удалить выбранные сообщения безвозвратно».

«Дополнительно».

o«Очистить все и отключить автообновление».

o «Статистика». o «О программе».

Рисунок 3.2. Меню

8

3.2. Форма модального окна настроек параметров для

авторизации

Форма модального окна настроек параметров для авторизации приведена на рис. 3.3-3.4.

Рисунок 3.3. Форма модального окна настроек параметров для авторизации

Рисунок 3.4. Форма модального окна настроек параметров для авторизации с раскрытыми полями выбора

9

3.3. Форма модального окна отправки сообщения с

вложениями

Форма модального окна отправки сообщения с вложениями приведена на рис. 3.5.

Рисунок 3.5. Форма модального окна отправки сообщения с вложениями

3.4. Дополнительные формы

Форма диалогового окна загрузки вложения приведена на рис. 3.6-3.7.

Рисунок 3.6. Форма диалогового окна загрузки вложения

10

Соседние файлы в папке Готовая курсовая работа