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

ЦЕЛЬ РАБОТЫ
Ознакомиться с технологией работы SMTP клиента и реализовать его с базовым набором команд.
ПОСТАНОВКА ЗАДАЧИ
Необходимо разработать приложение, позволяющее отправлять электронные письма с вложенными файлами, используя протокол SMTP.
ХОД РАБОТЫ
Организация исходных файлов:
Папка «smtp_lib».
o Файл SMTP-библиотеки «smtp_lib/smtp_lib.h». o Файл SMTP-библиотеки «smtp_lib/smtp_lib.c».
oСборочный файл SMTP-библиотеки «smtp_lib/WinMakefile» /
«smtp_lib/LinuxMakefile».
Файл SMTP-клиента «smtp_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 почта. Настройки доступа
Для того, чтобы отправлять письма с Mail-ru почты через внешнее приложение, необходимо сгенерировать пароль для внешнего приложения,
который затем использовать при аутентификации (рис. 3-8).
Рисунок 3. Попытка войти через внешнее приложение не удалась
3

Рисунок 4. В письме Mail-ru есть инструкция
Рисунок 5. Следуем инструкции, добавляем пароль для внешнего приложения
Рисунок 6. Любое название для пароля
4

Рисунок 7. Ввод пароля от аккаунта и капча
Рисунок 8. Пароль создан
После описанных выше действий вход в аккаунт через внешнее приложение необходимо производить по паролю для внешнего приложения.
5

Работа приложения
Используемые настройки в приложении приведены в таблице 1.
Таблица 1. Настройки в приложении Настройки в приложении
Yandex почта
Server: smtp.yandex.ru | Port: 465
Name: Robert Wayne ALX | Email: robert.wayne.alx@yandex.ru | Password: Robw12345 Connection security: TLS | Authentication method: PLAIN
Flag: DEBUG and NO_CERT_VERIFY
Mail-ru почта
Server: smtp.mail.ru | Port: 465
Name: Robert Wayne ALX | Email: robert.wayne.alx@mail.ru | Password: 7HRd5FRdXdGARUw0tgeN Connection security: TLS | Authentication method: PLAIN
Flag: DEBUG and NO_CERT_VERIFY
Gmail почта
Server: smtp.gmail.com | Port: 465
Name: Robert Wayne ALX | Email: robert.wayne.alx@gmail.com | Password: Robw12345 Connection security: TLS | Authentication method: PLAIN
Flag: DEBUG and NO_CERT_VERIFY
Работа с Yandex почтой
Процесс работы с Yandex почтой приведен на рис. 9-14.
Рисунок 9. Запуск приложения из терминала, ввод пользователем команды start, приложение-клиент посылает серверу сообщение «EHLO smtp» (расширенное приветствие), сервер отправляет клиенту поддерживаемые настройки, приложение-клиент в ответ отправляет данные для аутентификации, сервер оповещает клиента о том, что аутентификация прошла успешно
6

Рисунок 10. Клиент вводит email-адрес получателя (например, свой), пропускает ввод следующего адреса и BCC адресов, вводит тему письма, вводит названия файлов для прикрепления к письму, вводит тело письма, после ввода 3-х пустых строк, письмо отправляется
Рисунок 11. Письмо в Yandex почте
7

Рисунок 12. Файл «gmail.png» в письме Yandex почты
Рисунок 13. Файл «gmail.txt» в письме Yandex почты (не умеет читать txt файлы)
8

Рисунок 14. Конец передачи данных, приложение спрашивает, нужно ли отправить ещё одно письмо (y значит «да», n значит «нет»)
В приложении выводятся все сообщения клиента и сервера, это можно
отключить убрав флаг DEBUG (рис. 15).
Рисунок 15. Пользователь вводит change flag, отключает флаг DEBUG
9

Работа с Mail-ru почтой
Настройки меняются при помощи команды change <настройка> (рис. 16).
Рисунок 16. Изменение адреса сервера с smtp.yandex.ru на smtp.mail.ru, а
также изменение пароля с Robw12345 на 7HRd5FRdXdGARUw0tgeN
(аналогично изменен email)
Процесс работы с Mail-ru почтой приведен на рис. 17-22.
Рисунок 17. Приветствие и аутентификация (Mail-ru)
10