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

ЦЕЛЬ РАБОТЫ
Ознакомиться с технологией работы POP3 клиента и реализовать его с базовым набором команд.
ПОСТАНОВКА ЗАДАЧИ
Необходимо разработать приложение, позволяющее принимать электронные письма с вложенными файлами, используя протокол POP3.
ХОД РАБОТЫ
Организация исходных файлов:
Папка «pop3_lib».
o Файл POP3-библиотеки «pop3_lib/pop3_lib.h». o Файл POP3-библиотеки «pop3_lib/pop3_lib.c».
oСборочный файл POP3-библиотеки «pop3_lib/WinMakefile» /
«pop3_lib/LinuxMakefile».
Файл POP3-клиента «pop3_client.c» → исполняемый файл.
Общий сборочный файл «WinMakefile» / «LinuxMakefile».
Содержимое всех файлов приведено в приложениях.
Используется библиотека OpenSSL v3.0.01.
Предварительные настройки
Для того, чтобы принимать письма с Gmail почты через внешнее приложение, необходимо включить соответствующую настройку2 (рис. 1).
Рисунок 1. Gmail почта. Настройка доступа
1URL (для Windows): https://slproweb.com/products/Win32OpenSSL.html
2URL: https://myaccount.google.com/lesssecureapps
2

Для того, чтобы принимать письма с Yandex почты через внешнее приложение, необходимо включить соответствующие настройки (рис. 2).
Рисунок 2. Yandex почта. Настройки доступа
3

Работа приложения
Используемые настройки в приложении приведены в таблице 1.
Таблица 1. Настройки в приложении Настройки в приложении
Yandex почта
Server: pop.yandex.ru | Port: 995
Name: Robert Wayne ALX | Email: robert.wayne.alx@yandex.ru | Password: Robw12345 Connection security: TLS
Flag: NO_CERT_VERIFY
Gmail почта
Server: pop.gmail.com | Port: 995
Name: Robert Wayne ALX | Email: robert.wayne.alx@gmail.com | Password: Robw12345 Connection security: TLS
Flag: NO_CERT_VERIFY
Работа с Yandex почтой
Процесс работы с Yandex почтой приведен на рис. 3-8.
Рисунок 3. Запуск приложения из терминала, ввод пользователем команды start, приложение-клиент отправляет данные для аутентификации, сервер оповещает клиента о том, что аутентификация прошла успешно, клиент запрашивает сообщения, которые затем сервер отправляет в ответ
4

Рисунок 4. Все сообщения представлены в кратком виде
Рисунок 5. Посмотреть тело сообщения и его вложения можно, введя номер сообщения
5

Рисунок 6. Вложения можно сохранить в текущую директорию с тем же именем (если файл с таким именем существует, программа выдаст запрос на замену файла), сообщение можно удалить командой remove
Рисунок 7. Удаленные сообщения можно восстановить в пределах одного сеанса («Undo removal...» → y)
6

Рисунок 8. Сообщение №4 было удалено и не восстановлено, осталось 3 сообщения
В приложении по умолчанию не выводятся сообщения клиента и сервера, это можно исправить, включив флаг DEBUG (рис. 9).
Рисунок 9. Флаг DEBUG включен, сообщения клиента и сервера видны
7

Работа с Gmail почтой
Настройки меняются при помощи команды change <настройка> (рис. 10).
Процесс работы с Gmail почтой приведен на рис. 11.
Рисунок 10. Изменение адреса сервера с pop.yandex.ru на pop.gmail.com, а также изменение email
Рисунок 11. Получение списка сообщений и просмотр
8

Автодокументация
Код исходных файлов снабжен документирующими комментариями.
Генерация документации с помощью Doxygen приведена на рис. 12-13.
Рисунок 12. Генерация документации
Рисунок 13. Генерация документации завершена
9

«Некоторые изменения в doc.cfg» описаны далее:
PROJECT_NAME = "POP3 Library & Example"
OUTPUT_LANGUAGE = Russian
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = YES
EXTRACT_STATIC = YES
RECURSIVE = YES
INLINE_SOURCES = YES
PREDEFINED = POP3_OPENSSL
В результате чего имеем документацию (рис. 14-18).
Рисунок 14. Файлы в документации
Рисунок 15. Файл «pop3_client.c» в документации
10