Разработка E-mail агента с помощью языка программирования С++

Автор работы: Пользователь скрыл имя, 20 Декабря 2014 в 21:04, курсовая работа

Краткое описание

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

Содержание

Введение
5
1 1 Постановка задачи
6
1.1 Описание предметной области
6
1.2 Входная и выходная информация
6
1.3 Формулировка задачи
6
2 Выбор и основание инструментов разработки
7
2.1 Выбор средств разработки
7
2.2 Программно-аппаратные ресурсы
8
3. Проектирование программы
8
3.1 Описание логической структуры.
8-10
3.2 Проектирование системы меню
10-11
3.3 Листинг программы
12-14
4 Описание программы
15
4.1 Описание компонентов
15
4.2 Описание процедур и функций
15
5 Тестирование
15-17
6 Описание применения
17
6.1 Способ установки программы
17
6.2 Руководство пользователя
17-19
Заключение
19
Список использованной литературы

Прикрепленные файлы: 1 файл

Отчет.docx

— 111.95 Кб (Скачать документ)

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

– MAIL адрес отправителя

– RCPT адрес получателя может быть несколько (на каждого получателя отдельно приходит квитанция).

– DATA передача данных (письма). Производится в ASCII. Данные формируются как сегменты ТСР. Конец письма – точка в пустой строке.

– QUIT разрыв соединения.

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

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

2ХХ — команда успешно  выполнена

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

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

5ХХ — неустранимая  ошибка

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

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

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

 

 

     При загрузке  программы на экран выводится основное окно программы (рисунок 1.1) которое содержит две вкладки: GetE-mail  и SendE-mail.

Рисунок 1.1 – главное окно программы

Вкладка GetE-mail содержит форму для получения писем с указанного сервера и почтового ящика (рисунок 1.2).

Рисунок  1.2 – вкладка GetE-mail

 

 

3.3 Листинг программы

Листинг программы

 

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

 

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

        : TForm(Owner)

{

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Memo1->Lines->Clear();

IdSMTP1->Host=Edit1->Text;

IdSMTP1->UserId=Edit2->Text;

IdSMTP1->Password=Edit3->Text;

IdSMTP1->Connect();

NMPOP31->Host=Edit1->Text; 

NMPOP31->UserID=Edit2->Text;

NMPOP31->Password=Edit3->Text;

NMPOP31->Connect();

}

//---------------------------------------------------------------------------

 

void __fastcall TForm1::NMPOP31Connect(TObject *Sender)

{

Memo1->Lines->Add("Соединение!");

int MC=NMPOP31->MailCount;

Memo1->Lines->Add("Писем: "+IntToStr(MC));

AnsiStringfr;

if (MC)

{

for (int t=1; t<=MC; t++)

  {

   Application->ProcessMessages();

   NMPOP31->GetSummary(t);

fr = NMPOP31->Summary->From;

   ComboBox1->Items->Add(fr);

}

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::ComboBox1Change(TObject *Sender)

{

AnsiStringsubj;

 

inttt=ComboBox1->ItemIndex+1;

Application->ProcessMessages();

NMPOP31->GetSummary(tt);

subj = NMPOP31->Summary->Subject;

Memo1->Lines->Clear();

Memo1->Lines->Add(subj);

NMPOP31->GetMailMessage(tt);

TMailMessage *mess=NMPOP31->MailMessage;

TStringList *s=mess->Body;

Memo1->Lines->AddStrings(s);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

IdSMTP1->Disconnect();

NMPOP31->Disconnect();

Memo1->Lines->Clear();

Memo1->Lines->Add("Соединение завершено!");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

IdMessage1->Subject=Edit5->Text;

IdMessage1->From->Address=Edit2->Text;

IdMessage1->Body->Text=Memo2->Text;

IdMessage1->Recipients->EMailAddresses=Edit4->Text; //Получатель

IdSMTP1->Send(IdMessage1);

}

//---------------------------------------------------------------------------

 

 

 

 

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

При создании данного программного средства была создана 1 форма:

- Form1. Главное меню.

Для создания этой формы были использованы компоненты:

- TButton позволяет выполнять какие-либо действия при нажатии кнопки;

- TImage используется для помещения на форму изображения;

- TEditиспользуется для ввода числовых значений;

- TMemo  отображает информацию;

- NMPOP3 используется  для приема и менеджмента сообщений;

- idSMPT–необходим для применения в приложениях протокола SMTP (SimpleMailTransferProtocol), обеспечения поддержки аутентификации, MIME-кодирования и декодирования, а также для поддержки многобайтных символов;

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

4.2 Описание процедур и функций

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

- void __fastcallTForm1::Button1Click(TObject *Sender) – подтверждение связи с почтовым сервером;

- void __fastcall TForm1::NMPOP31Connect(TObject *Sender) – соединение с почтовым сервером;

- void __fastcall TForm1::ComboBox1Change(TObject *Sender) – вывод списка писем;

- void __fastcall TForm1::Button2Click(TObject *Sender) – разрыв соединения с почтовым сервером;

- void __fastcall TForm1::Button3Click(TObject *Sender) – отправка письма на указанный адрес.

  1. Тестирование

Тестирование программы – это испытание, проверка правильности работы программы в целом, либо её составной части. Тестирование устанавливает факт наличия ошибок, а отладка выясняет её причину. Как бы ни была тщательно отлажена программа, она, скорее всего все равно содержит неявные ошибки, и решающим этапом, устанавливающим ее пригодность для работы, является контроль программы по результатам ее выполнения на системе тестов.

Основные принципы организации тестирования:

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

2. Программе не должна  тестироваться её автором;

3. Организация - разработчик  программного обеспечения не  должна "единолично " его тестировать;

4. Необходимо подбирать  тесты не только для правильных (предусмотренных) входных данных, но  и для неправильных (непредусмотренных);

5. При анализе результатов  каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;

6. "Принцип скопления  ошибок" - вероятность наличия  не обнаруженных ошибок в некоторой  части программы прямо пропорциональна  числу ошибок, уже обнаруженных  в этой части.

Процесс тестирования состоит из трёх этапов:

1. Проектирование тестов.

2. Исполнение тестов.

3. Анализ полученных результатов.

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

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

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

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

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

При возникновении ситуации, в которой невозможно дальнейшее использование программы, следует ее перезапустить и начать заново вычисление. 

В ходе тестирования программы ошибок выявлено не было.

6 Описание  применения

 

 6.1 Способ установки программы

 

Для установки программного средства «Решение систем линейных уравнений» достаточно скопировать файлы с расширением .exe в любую папку на компьютере. Для полноценного функционирования программного средства желательно его применение на компьютерах с операционной системой Windows.

6.2 Руководство пользователя

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

 

 

 

 

 

 

 

 

     При загрузке программы на экран выводится основное окно программы (рисунок 1.1) которое содержит две вкладки: GetE-mail  и SendE-mail.

Рисунок 1.1 – главное окно программы

Вкладка GetE-mail содержит форму для получения писем с указанного сервера и почтового ящика (рисунок 1.2).

Рисунок  1.2 – вкладка GetE-mail

 

Вкладка SendE-mail содержит форму для отправки писем на указанный почтовый адрес (рисунок 1.3).

Рисунок 1.3 – Отправка сообщения

Заключение

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

Данное программное средство было написано с использованием компонентов для работы с почтовыми протоколам и среды разработки программных продуктов С++Builder 6, имеющей  широкий ряд возможностей для работы с сетью интернет.

Обработка данных производилась при помощи компонентов NMPOP3, idSMPT, idMessage обеспечивающих работу с почтовыми протоколами.

В результате было создано программное средство  «E-mail клиент», которое может быть использовано практически любым пользователем ПК.

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

 

 

Список используемой литературы:

1. Методические указания по выполнению курсовой работы по дисциплине «Программные средства информационных систем» для студентов, обучающихся по специальности  220201.65 «Управление и информатика в технических системах» /Поповкин А.В. под руководством Харитонова В.И. Москва 2013.

2. Савитч, У. Язык С++. Курс объектно-ориентированного программирования / У. Савитч. – М. Вильямс, 2001.

3. Архангельский, А. Я. Программирование в С++ Builder 6 / А. Я. Архангельский. – М.: Бином, 2003.

4. Бобровский, С. Самоучитель программирования на С++ в системеBorlandC++ 5.0/ С.Бобровский. – М:Десс Ком 2000.

5. Дейтел, Х. М. Как программировать на С++ / Х. М. Дейтел, П. Дж. Дейтел. – М.: Бином, 2003.

 

 

 


Информация о работе Разработка E-mail агента с помощью языка программирования С++