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

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