Разработка почтовой программы на основе протоколов 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.