Материал: Почтовая программа с архитектурой клиент-сервер

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Почтовая программа с архитектурой клиент-сервер

Введение

В настоящее время компьютеры прочно обосновались практически во всех сферах деятельности человека. Этот факт вынуждает человека с все большей интенсивностью использовать в своей повседневной жизни компьютер. В настоящее время информатика и информационные технологии достигли достаточно высокого уровня развития. Без них уже немыслима современная человеческая культура и профессиональная деятельность человека. C развитием компьютерных технологий все больше информации распространяется по компьютерным сетям с использованием различных компьютерных систем. Основным способом передачи информации по сети Internet, является электронная почта. Онлайн сервисы электронной почты зачастую очень сложны и громоздки, а программные клиенты дороги.

Цель: Написать почтовую программу с архитектурой клиент-сервер, которая позволяла бы пользователю принимать и отсылать письма с указанного почтового адреса, который может быть расположен на любом почтовом сервере.

Задачи:

Определить предметную область, входную и выходную информацию программного продукта, а также составить задачу написания программного продукта.

Выбрать инструменты разработки, определить системные требования, а также обосновать свой выбор.

Спроектировать задачу, описать логическую структуру, спроектировать графический интерфейс программного продукта.

Описать программу, используемые компоненты, процедуры и функции.

Протестировать программный продукт.

Описать применение, способ установки и руководство пользователя программного продукта.

Сделать выводы по решении всех задач.

Объект: программный продукт с архитектурой клиент-сервер, работающий в локальной сети или в сети Internet.

Предмет: программный продукт, осуществляющий работу с почтовыми ящиками электронной почты (E-mail клиент).

Методы исследования: В курсовой работе применялись общетеоретические и эмпирические (практические) методы.

1. Постановка задачи

.1 Описание предметной области

В процессе курсового проектирования необходимо разработать сетевую почтовую программу, далее «E-mail клиент», которая позволит получать и отправлять письма с указанного e-mail-а.

Проведя небольшое исследование рынка подобного программного обеспечения, было найдено несколько подобных продуктов, таких как Bat, Outlook Express. Все они имели ряд недостатков, таких как:

высокая цена;

недостаточный функционал;

сложность работы.

1.2 Входная и выходная информация

Входная информация определяется как данные, поступающие на код задачи и используемые для ее решения или величины, которые задаются до начала работы алгоритма или определяются динамически во время его работы. Входной информацией служат первичные данные документов ручного заполнения, информация, хранимая в файлах базы данных (результаты решения других задач, нормативно-справочная информация - классификаторы, справочники), входные сигналы отдатчиков.

Входными данными программы являются:

адрес почтового сервера;

e-mail пользователя;

пароль почтового ящика;

текст письма, получаемый от почтового сервера.

Выходная информация - информация, образующаяся в результате обработки входной информации на выходе системы. Является результатом принятого управленческого решения. Может быть представлена в виде документов, письменных и устных сообщений и т.д.

Выходной информацией программы является текст письма, выведенный на экран, а также текст отосланного на почтовый сервер письма.

1.3 Формулировка задачи

Должен быть разработан программный продукт, обеспечивающий комфортную работу с почтой пользователя. В программном продукте должны быть реализованы возможности приема и передачи писем на указанные почтовые адреса. Программный продукт должен работать с серверами различных типов. Так же программный продукт должен иметь простой пользовательский интерфейс.

2. Выбор и основание инструментов разработки

.1 Выбор средств разработки

Исследовав требования к разрабатываемой программе, можно остановиться на выборе среды программирования - Embarcadero Delphi XE. Embarcadero Delphi XE - дает возможность быстро создавать полнофункциональные высокопроизводительные приложения для Windows.

Язык Delphi используется миллионами разработчиков. Он сочетает современные возможности объектно-ориентированного языка, быструю компиляцию, подключение к разнородным базам данных и мощную визуальную платформу разработки, поддерживаемую тысячами компонентов и надстроек сторонних разработчиков. Полностью визуальная двусторонняя интегрированная среда разработки Embarcadero Delphi XE позволяет упростить и ускорить создание визуальных пользовательских приложений и приложений, активно работающих с базами данных, включая приложения для настольных систем Windows, интерактивные приложения с сенсорным вводом, приложения для электронных терминалов, а также приложения для баз данных, многозвенные, облачные и веб-приложения. Разработка приложений реализуется максимально быстрым способом, требует участия меньшего числа разработчиков и осуществляется для разных платформ Windows и баз данных.

Программирование в Delphi XE значительно эффективнее, чем в других средах и платформах Delphi, таких как Borland Delphi. Библиотека визуальных компонентов (VCL) Delphi XE инкапсулирует сложные, трудоемкие интерфейсы Windows API в удобные, расширяемые компоненты многократного применения. Она полностью интегрирована в среду разработки и двусторонние визуальные конструкторы. Это облегчает управление свойствами и методами компонентов через программный код и в визуальном режиме. В результате при разработке приложений с помощью библиотеки VCL приходится писать, отлаживать и тестировать до 5 раз меньше программных строк без ухудшения производительности и функциональных возможностей. Приложения, созданные с использованием компонентов, отличаются более высоким качеством, они удобнее в обслуживании и легче поддаются изменению.

2.2 Программно-аппаратные ресурсы

Основные требования к персональному компьютеру:

микропроцессор Intel или AMD с тактовой частотой 200МГц и выше;

объем оперативной памяти 32Мб и выше;

объем дискового пространства не менее 30Мб;

клавиатура и манипулятор мышь;

операционная система Microsoft Windows 98/NT/2000/XP.

Разрабатываемая рабочая программа будет использоваться в операционной системе Windows. Операционная система обеспечивает пользователю и прикладным программам удобный способ обращения с устройствами компьютера.

Основные достоинства вышеперечисленной операционной среды:

полностью переработанный интерфейс пользователя. Благодаря новому интерфейсу в Windows гораздо проще запускать программы, открывать и сохранять документы, работать с дисками и сетевыми серверами;and рlay. B Windows реализована поддержка стандарта PlugAndPlay, который представляет собой попытку максимально упростить установку и настройку периферийных устройств;

совместимость (Compatibility). Поддержка файловых систем NTFS5, NTFS4, FAT16 и FAT32.

3. Проектирование задачи

.1 Описание логической структуры

Для реализации работы e-mail клиенты были использованы протоколы POP3 и SMPT.- протокол который используется почтовым клиентом для получения сообщений электронной почты с сервера. POP3 - перед работой через протокол POP3 сервер прослушивает порт 110. Когда клиент хочет использовать этот протокол, он должен создать TCP соединение с сервером. Когда соединение установлено, сервер отправляет приглашение. Затем клиент и POP3 сервер обмениваются информацией пока соединение не будет закрыто или прервано. Команды POP3 состоят из ключевых слов, за некоторыми следует один или более аргументов. Все команды заканчиваются парой CRLF (в Visual Basic константа vbCrLf). Ключевые слова и аргументы состоят из печатаемых ASCII символов. Ключевое слово и аргументы разделены одиночным пробелом. Ключевое слово состоит от 3-х до 4-х символов, а аргумент может быть длиной до 40-ка символов.

Ответы в POP3 состоят из индикатора состояния и ключевого слова, за которым может следовать дополнительная информация. Ответ заканчивается парой CRLF. Существует только два индикатора состояния: "+OK" - положительный и "-ERR" - отрицательный.

Ответы на некоторые команды могут состоять из нескольких строк. В этих случаях каждая строка разделена парой CRLF, а конец ответа заканчивается ASCII символом 46 (".") и парой CRLF. сессия состоит из нескольких режимов. Как только соединение с сервером было установлено и сервер отправил приглашение, то сессия переходит в режим AUTHORIZATION (Авторизация). В этом режиме клиент должен идентифицировать себя на сервере. После успешной идентификации сессия переходит в режим TRANSACTION (Передача). В этом режиме клиент запрашивает сервер выполнить определённые команды. Когда клиент отправляет команду QUIT, сессия переходит в режим UPDATE. В этом режиме POP3 сервер освобождает все занятые ресурсы и завершает работу. После этого TCP соединение закрывается.

У POP3 сервера может быть INACTIVITY AUTOLOGOUT таймер. Этот таймер должен быт, по крайней мере, с интервалом 10 минут. Это значит, что если клиент и сервер не взаимодействуют друг с другом, сервер автоматически прерывает соединение и при этом не переходит в режим UPDATE.- SMTP используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю. Для приёма почты, почтовый клиент должен использовать протоколы POP3 или IMAP. Работа с SMTP происходит непосредственно на сервере получателя. Поддерживает функции: установление соединения, аутентификация, передача данных.

Чтобы доставить сообщение до адресата, необходимо переслать его почтовому серверу домена, в котором находится адресат. Для этого обычно используется запись типа MX (англ. Mail eXchange - обмен почтой) системы DNS. Если MX запись отсутствует, то для тех же целей может быть использована запись типа A. Некоторые современные реализации SMTP-серверов (например, Exim[1]) для определения сервера, обслуживающего почту в домене адресата, также могут задействовать SRV-запись (RFC 2782).

Широкое распространение SMTP получил в начале 1980-х годов. До него использовался протокол UUCP, который требовал от отправителя знания полного маршрута до получателя и явного указания этого маршрута в адресе получателя, либо наличия прямого коммутируемого или постоянного соединения между компьютерами отправителя и получателя.был одним из первых (если не первым) агентом отправки сообщений, который начал работать с SMTP. В настоящее время протокол SMTP является стандартным для электронной почты и его используют все клиенты и серверы.

Протокол был разработан для передачи только текста в кодировке ASCII, кроме того, первые спецификации требовали обнуления старшего бита каждого передаваемого байта. Это не даёт возможности отсылать текст на национальных языках (например, кириллице), а также отправлять двоичные файлы (такие как изображения, видеофайлы, программы или архивы). Для снятия этого ограничения был разработан стандарт MIME, который описывает способ преобразования двоичных файлов в текстовые. В настоящее время большинство серверов поддерживают 8BITMIME, позволяющий отправлять двоичные файлы так же просто, как текст. Основные команды:адрес отправителяадрес получателя (может быть несколько. На каждого получателя отдельно приходит квитанция)передача данных (письма). Производится в ASCII. Данные формируются как сегменты ТСР. Конец письма - точка в пустой строке.разрыв соединения.

Установление и закрытие соединения непосредственно с сервером производится по ТСР. Контроль за пользовательскими данными возложен на ТСР.

Сервер SMTP - это конечный автомат с внутренним состоянием. Клиент передает на сервер строку команда<пробел>параметры<перевод строки>. Сервер отвечает на каждую команду строкой, содержащей код ответа и текстовое сообщение, отделенное пробелом. Код ответа - число от 100 до 999, представленное в виде строки, трактующийся следующим образом:

ХХ - команда успешно выполнена.

XX - ожидаются дополнительные данные от клиента.

ХХ - временная ошибка, клиент должен произвести следующую попытку через некоторое время.

ХХ - неустранимая ошибка.

Текстовая часть ответа носит справочный характер и предназначена для человека, а не программы.

3.2 Проектирование системы меню

программа меню тестирование

Для простоты работы с программным средством необходимо обеспечить максимально понятный интерфейс.

При загрузке программы на экран выводится основное окно программы (рисунок 3.1) содержащее основное меню, иконки для быстрого доступа к функциям программы, поле показывающее список сообщений, а так же информацию о выбранном сообщении.

Рисунок 3.1 - Главное окно программы


Рисунок 3.2 - Окно настройки программы и вкладка POP3 settings

Рисунок 3.3 - Вкладка SMTP settings

Находясь в основном окне программы при нажатии на пиктограмму с изображением конверта, либо выбрав «Написать сообщение» в подменю «Функции», на экран выводится окно создания и отправки нового сообщения (рисунок 3.4). На нем находится формы для заполнения адресата, заголовка, выбора файла прикрепления, поле ввода сообщения.

При нажатии на кнопку Прочее на экран выводится окно прочих настроек отправления (рисунок 3.5), на котором расположена форма для добавления дополнительных заголовков.

Рисунок 3.4 - Окно создания и отправки сообщений

Рисунок 3.5 - Окно дополнительных настроек отправления

4. Описание программы

.1 Описание компонентов

При создании данного программного средства было создано 4 формы:основная форма.окно настройки программы.окно создания и отправки сообщений.окно дополнительных настроек отправления.

Для создания основной формы были использованы следующие компоненты:, MainMenu позволяет создавать верхнее меню.выносит синхронные операции в рабочий фоновый поток, позволяя в это время главному потоку обрабатывать сообщения.это набор изображений одинаковых размеров, на которые есть возможность ссылаться по индексам, начиная с 0.используется в комбинации с другими компонентами, чтобы должным образом расшифровать или кодировать сообщения.панель для размещения различных видимых элементовнеобходим для применения в приложениях протокола POP3(Post Office Protocol Version 3), т.е. для приема и менеджмента сообщений.вызывает окно сохранения файла.необходим для отображения какой-либо онформации о работе программы.панель с пиктограммами

Для создания формы настроек были использованы следующие компоненты:позволяет выполнять какие-либо действия при нажатии кнопки;используется для ввода значений;используется для создания вкладок;используется для создания выпадающего списка.

Для создания формы создания и отправки новых сообщений были использованы следующие компоненты:- используется в комбинации с другими компонентами, чтобы должным образом расшифровать или кодировать сообщения.вызывает окно открытия файла.- необходим для применения в приложениях протокола SMTP (Simple Mail Transfer Protocol), обеспечения поддержки аутентификации, MIME-кодирования и декодирования, а также для поддержки многобайтных символов;позволяет выполнять какие-либо действия при нажатии кнопки;используется для ввода значений;используется для создания выпадающего списка.

Для создания формы дополнительных настроек отправления были использованы следующие компоненты:позволяет выполнять какие-либо действия при нажатии кнопки;используется для ввода значений.