8 семестр / Готовая курсовая работа / ММиВА. Курсовая работа
.pdfМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Санкт-Петербургский государственный университет телекоммуникаций им. проф. М. А. Бонч-Бруевича»
(СПбГУТ)
Факультет инфокоммуникационных сетей и систем Кафедра программной инженерии и вычислительной техники
КУРСОВАЯ РАБОТА
по дисциплине «Математические методы и вычислительные алгоритмы современных систем связи»
на тему «Разработка почтового клиента»
студент гр. ИКПИ-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