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

7 семестр / Готовые отчеты / ММиВА. Лабораторная работа 5

.pdf
Скачиваний:
28
Добавлен:
23.12.2021
Размер:
2.2 Mб
Скачать

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

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

(СПбГУТ)

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

ЛАБОРАТОРНАЯ РАБОТА №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