Разработка почтовой программы на основе протоколов SMTP и POP3
Написание программы, принимающей электронную почту и позволяющей работать с письмами, содержащими текст и прикрепленные файлы. Пути совершенствования продукта и механизмы криптографической защиты данных, передаваемых в процессе работы программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.04.2014 |
Размер файла | 254,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
· Если в заголовке письма или части письма нет поля Content-Type, то
§ Если это главный заголовок письма, устанавливаем для письма тип text и подтип plain.
§ Если же это заголовок части письма, то
· Если эта часть относится к digest, то устанавливаем для письма тип message и подтип rfc822.
· Иначе устанавливаем для части письма тип text и подтип plain.
· Если тип письма или части письма - text и у не задан параметр charset, то в charset записывается us-ascii.
· Если не задано поле Content-Transfer-Encoding, то в него записывается записывается 7bit.
Алгоритм анализа тела письма
· Если тип письма или его части - text, то
§ раскодируем его в соответствии со значением Content-Transfer-Encoding.
§ перекодируем текст из кодировки CharSet в кодировку, которую есть возможность отобразить.
· Если тип письма или его части - application, image, audio или video, то
§ раскодируем его в соответствии со значением Content-Transfer-Encoding.
· Если тип письма или его части - multipart, то
§ Читаем построчно и выявляем части письма лежащие между «--» + boundary, либо между «--» + boundary + «--».
§ Для каждой части запускаем рекурсивно алгоритм разбора письма.
· Если тип письма или его части - message, а подтип rfc822, то
§ Запускаем рекурсивно алгоритм разбора для тела письма или для части письма.
3. Технологический раздел
3.1 Выбор языка и средств программирования
Программный продукт был разработан в среде разработки Borland C++ Builder, поскольку эта среда программирования предоставляет широкие возможности по созданию пользовательского интерфейса и ускоряет процесс разработки программных продуктов. Данная среда программирования содержит множество стандартных элементов оконного пользовательского интерфейса, использование которых позволило сделать управляющее приложение простым и понятным для пользователя. Кроме того в составе среды разработки Borland C++ Builder поставляются заголовочные файлы, предоставляющие возможность использование структур SOCKET, что делает разработку весьма производительной и значительно ускоряет ее.
Для рассматриваемого приложения объем исполняемого файла не является критичным фактором, поэтому выбор среды Borland C++ Builder можно считать вполне обоснованным.
Модульная структура программного продукта
Разработанный программный продукт состоит из 4 модулей:
· авторизации пользователей
· приема и просмотра почты
· отправки, формирования и редактирования писем
· модуля работы с адресной книгой.
Перечислим функции, обеспечиваемые перечисленными модулями:
· модуль авторизации пользователей:
§ проверка подлинности пользователей путем сравнения введенного пароля с хранящимся в локальном почтовом ящике
· модуль приема и просмотра почты:
§ считывание заголовков писем с почтового сервера;
§ считывание тел писем с почтового сервера с последующим их сохранением на диске;
§ удаление писем с почтового сервера и диска компьютера пользователя.
· модуль отправки, формирования и редактирования писем:
§ формирование и отправка писем;
§ редактирование и отправка писем, ранее загруженных с почтового сервера;
· модуль работы с адресной книгой:
§ добавление, редактирование и удаление информации о адресатах пользователя.
3.2 Программная реализация проекта
Отправка почты
Для реализации всех необходимых действий по отправке почты были реализованы следующие функции по работе с протоколом SMTP:
· ConnectSMTP - устанавливает соединение с SMTP-сервером;
· AuthSMTP - производит авторизацию на сервере согласно мехнизму LOGIN;
· SetFromTo - отправляет на SMTP-сервер информацию об отправителе и получателе (получателях) почты;
· MakeLetter - формирует тело письма, причем оно хранится в строке AnsiString;
· DisconnectSMTP - производит отсоеднение от SMTP-сервера.
Кроме перечисленных основных был реализован целый ряд вспомогательных функций, в частности, обеспечивающих кодирование в Base64 и QuotedPrintable.
3.3 Прием почты
Для извлечения информации о полях письма, его тексте и прикрепленных файлах используется компонент POP3_Mail, разработанный в рамках данного проекта. Поскольку письмо в общем случае может иметь древовидную структуру, то компонент осуществляет построение дерева в памяти. В листьях дерева хранятся указатели на буферы, содержащие текст письма или прикрепленные файлы. Каждый узел дерева хранит значение полей письма. В корне дерева хранятся главные поля письма, такие как Subject, Date и т.д. Построение дерева осуществляется вызовом метода Translate. В зависимости от значения передаваемого параметра, происходит анализ либо всего письма, либо только заголовка.
Для уничтожения дерева используется метод Clear. У компонента есть свойство FirstNode, оно содержит указатель на вершину дерева.
Каждый узел дерева содержит массив указателей на потомков данного узла и переменную с количеством потомков. Вызвав функцию узла GetDataNode можно получить указатель на буфер содержащий либо прикрепленный файл или текст письма. Функция узла GetParentNode возвращает указатель на вершину предка данного узла. А функция GetChildNode возвращает указатель на потомка, номер которого указывается в параметре функции.
Поскольку для осуществления этих действий по работе с почтой необходимо обмениваться данными с POP3-сервером, был создан специальный компонент POP3_Client. Обмениваться данными можно путем вызова его функций. Компонент содержит следующие функции:
· SetLogin, SetPassword - служат для отправки логина и пароля на сервер;
· CmdRETR, GetNextBuffer - служат для считывания письма с сервера. Функция GetNextBuffer считывает очередную часть письма. В случае если письмо полностью считано, то переменная eof компонента приобретает значение 1;
· СmdSTAT - запрашивает у сервера информацию о количестве писем и их общем объеме;
· CmdQuit - завершает соединение с сервером;
· CmdDele - удаляет письмо с сервера;
· CmdTop - служит для считывания заголовка письма. Эта функция очень важна, она позволяет не тратить трафик при просмотре содержимого почтового ящика.
3.4 Пользовательский интерфейс
Форма аутентификации
Позволяет пользователям заходить в программу под собственным логином, используя пароль. Кроме того, используя данную форму, возможно редактирование профилей существующих пользователей, а также их добавление и удаление.
Форма приема и просмотра почты
Позволяет пользователю просматривать содержимое своего почтового ящика, а также загружать и удалять письма с почтового сервера и диска собственного компьютера.
Используя данную форму возможно редактирование профиля пользователя, его смена, а также передача выбранного письма на форму редактирования и отправки почты.
Форма формирования и редактирования почты
Позволяет пользователю формировать и редактировать письма, а также сохранять из на диске локального компьютера.
Форма редактирования профиля пользователя
Позволяет редактировать профиль пользователя.
Форма адресной книги
Позволяет редактировать адресную книгу пользователя.
Заключение
В рамках данной работы рассмотрены основные вопросы обработки электронной почты и создан программный продукт, удовлетворяющий всем поставленным требованиям.
Следует отметить, что существует множество путей совершенствования разработанного программного продукта, в частности возможно введение механизмов криптографической защиты данных, передаваемых в процессе Работы программы.
Размещено на Allbest.ru
...Подобные документы
Осуществление работы разрабатываемой программы на основе алгоритма, использующего Z-буфер. Аналитическое описание программной реализации. Алгоритмы основных функций программы. Содержание руководства пользователя. Файлы программы, пункты главного меню.
курсовая работа [1,7 M], добавлен 15.04.2015Разработка эскизного и технического проектов программы, моделирующей игру "Кости". Постановка задачи, описание алгоритма; написание программы, организация входных и выходных данных; выбор программных средств; спецификация, текст, условия выполнения.
курсовая работа [93,8 K], добавлен 11.02.2012Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.
лабораторная работа [43,1 K], добавлен 21.07.2012Разработка программы "Калькулятор" для работы с вещественными числами. Алгоритм работы программы. Набор тестов и варианты исполнения программы. Порядок ввода текста, стандартные ошибки в работе программы. Программная документация, текст программы.
курсовая работа [225,9 K], добавлен 13.10.2013Протокол для поддержания системы передачи сообщений, обеспечение непрерывной работы SMTP-сервера. Примеры использования команды LIST, работа через протокол POP3, особенности авторизации. Условия работы режима "обновление". Пример сеанса с POP3 сервером.
реферат [16,1 K], добавлен 03.05.2010Описание возможностей языка программирования Turbo Pascal. Написание программы создания файлов с прямым доступом, которая также будет обрабатывать наборы данных с определенными полями и ограничениями. Контрольный пример работы поисковой программы.
курсовая работа [563,6 K], добавлен 22.01.2016Формальная постановка задачи и спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров и текст программы на языке C++. Тестирование программы с целью определения корректности ее работы.
контрольная работа [27,5 K], добавлен 07.07.2012Особенности работы и создания компьютерного вируса - вредоносной программы, которая самостоятельно может создавать свои копии и внедрять их в программы, файлы, документы, загрузочные сектора носителей данных. Признаки заражения ПК вирусом, способы защиты.
реферат [24,9 K], добавлен 26.03.2010Разработка программы, реализующей процедуры шифрования и расшифрования текста по стандарту DES (Data Encryption Standard). Структура алгоритма шифрования, схема выработки ключевых элементов. Использование криптографического программного средства.
курсовая работа [1,7 M], добавлен 15.06.2013Разработка программы обработки изображений, позволяющей прорисовывать типовые геометрические фигуры. Выбор аппаратных и технических средств для реализации программного продукта. Организация входных и выходных данных. Блок-схема и листинг программы.
курсовая работа [2,4 M], добавлен 18.06.2014Проектирование программы "Будильник" с использованием программной среды, позволяющей осуществлять получение и обработку значений времени и воспроизведение звукового файла. Разработка технического и эскизного проектов программы. Спецификация программы.
курсовая работа [84,2 K], добавлен 15.04.2013Разработка и написание программы по моделированию движения снаряда при заданных параметрах пути, максимальной высоты, времени полета и траектории. Анализ методов построения модели, разработка алгоритма, написание и отладка программы в среде Delphi.
курсовая работа [214,5 K], добавлен 11.02.2011Файлы IO.SYS и MSDOS.SYS; командный процессор DOS. Базовая система ввода-вывода, загрузчик, диалог пользователя с DOS, команды. Недостатки языка програмирования с++. Создание и описание программы, позволяющей работать с файлами в среде DOS, ее алгоритм.
курсовая работа [24,4 K], добавлен 02.12.2009Выбор алгоритма решения задачи. Разработка программы, обеспечивающую эффективную обработку и хранение информации с использованием линейных списков. Написание программы на псевдокоде и на языке программирования высокого уровня. Результаты работы программы.
курсовая работа [2,1 M], добавлен 21.04.2012Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.
курсовая работа [352,8 K], добавлен 14.04.2011Требования к функциональным характеристикам программы, составу и параметрам технических средств, программной совместимости. Особенности программирования в среде Access. Описание интерфейса программы, ввод и редактирование данных, добавление новых книг.
курсовая работа [1,5 M], добавлен 17.11.2010Размещение элементов графического интерфейса, обработка событий в нем. Написание программы "Домино", результатом работы которой будет графический интерфейс, реализующий одноименную настольную игру. Объектная декомпозиция классов. Текст программы.
курсовая работа [404,3 K], добавлен 13.10.2014Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование.
курсовая работа [1,3 M], добавлен 15.11.2009Написание программы для работы со списком документов, разработка функционала. Требования к аппаратному и программному обеспечению. Описание интерфейса пользователя. Структура программы и описание данных. Процедура тестирования и его результаты.
курсовая работа [1,5 M], добавлен 26.08.2012Изучение основ программирования и создание полноценного приложения в среде программирования Delphi. Разработка эскизного и технического проектов программы. Внедрение выполнения программы. Разработка рабочего проекта, спецификация и текст программы.
курсовая работа [560,1 K], добавлен 18.07.2012