Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364139
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62791)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21319)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21692)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8692)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3462)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20644)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Курсовая работа: Разработка приложения клиента электронной почты

Название: Разработка приложения клиента электронной почты
Раздел: Рефераты по информатике
Тип: курсовая работа Добавлен 18:58:30 13 декабря 2010 Похожие работы
Просмотров: 377 Комментариев: 21 Оценило: 2 человек Средний балл: 5 Оценка: неизвестно     Скачать

AСТРAХAНСКИЙ ГОСУДAРСТВEННЫЙ УНИВEРСИТEТ

Кaфeдрa

информaционных систeм

и тeхнологий

Курсовaя рaботa по дисциплинe

«Объeктно-ориeнтировaнноe прогрaммировaниe»

нa тeму:

“Разработка приложения – клиента электронной почты”

Выполнили: студeнты группы ЗИ-31

Егоров Д.С.

Арушанов С.С.

Курсовaя рaботa допущeнa к зaщитe

Руководитeль: aсс. Пaвлов A.A.

Курсовaя рaботa выполнeнa с оцeнкой ___________

Пaвлов A.A.___________

Aстрaхaнь – 2009 г.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

2. РАБОЧИЙ ПРОЕКТ

2.1. Общие сведения о работе программы

2.2. Функциональное назначение

2.3. Инсталляция и выполнение программы

2.4. Общий алгоритм программного обеспечения

2.5. Разработанные меню и интерфейсы

2.6. Описание основных классов и методов приложения

3. ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ 1

ВВЕДЕНИЕ

Язык С++, разработанный Microsoft имеет массу преимуществ перед другими языками типа С, С++, Java: простота, объектная ориентированность, типовая защищенность, «сборка мусора», поддержка совместимости версий и многое другое. Данные возможности позволяют быстро и легко разрабатывать приложения. При создании С++ его авторы учитывали достижения многих других языков программирования: C++, С, Java, Visual Basic и т.д. Надо заметить, что поскольку С++ разрабатывался что называется «с нуля», у его авторов была возможность не переносить в него все неудачные особенности любого из предшествующих языков. Особенно это касается проблемы совместимости с предыдущими версиями. В результате получился действительно простой, удобный и современный язык, который по мощности не уступает C++, но существенно повышает продуктивность разработок. Ввиду высокой объектной ориентированности, язык С++ великолепно подходит для быстрого конструирования различных компонентов — от высокоуровневой бизнес-логики до системных приложений, использующих низкоуровневый код. Также следует отметить, что С++ является и Web-ориентированным — с помощью простых встроенных конструкций языка ваши компоненты легко превратятся в Web-сервисы, к которым можно будет обращаться из Интернета, используя любой язык на любой операционной системе. Дополнительные возможности и преимущества С++ перед другими языками приносит использование современных Web-технологий, таких как: XML (Extensible Markup Language) и SOAP (Simple Object Access Protocol). Удобные методы для разработки Web-приложений позволяют программистам, владеющим навыками объектно-ориентированного программирования, легко освоиться в разработке Web-сервисов.

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

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

Разработка приложения-клиента электронной почты.

В ходе разработки клиентского приложения электронной почты, необходимо разработать и реализовать с использование двух основных протоколов передачи электронной почты POP3 и SMTP:

· методы приема и отправки сообщений;

· интуитивно понятный интерфейс, обеспечивающий удобную работу с приложением;

· сохранение почтовых сообщений на локальном диске компьютера;

· реализовать алгоритмы построения списка сообщений;

· при выборе сообщения обеспечить отображение темы сообщения, отправителя и адресата письма, а также текст самого сообщения;

· дополнительно необходимо реализовать возможность сворачивания приложения в трей панели задач Windows;

· проверку наличия новых сообщений по времени и смену иконки в трее при получении новых сообщений.

2. РАБОЧИЙ ПРОЕКТ

2.1. Общие сведения о работе программы

Программа разработaнa в среде программирования Microsoft Visual Studio 2008, на языке программирования C++.

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

При отправке сообщений используется протокол SMTP. В начале происходит авторизация на сервере SMTP, а после этого непосредственная передача сообщения почтовому демону.

2.2. Функциональное назначение

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

2.3. Инсталляция и выполнение программы

Для запуска программы из среды «Microsoft Visual Studio 2008» необходимо, зайдя в «Microsoft Visual Studio 2008» запустить файл Mail client.sln.


2.4. Общий алгоритм программного обеспечения

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

При нажатии на меню «Получить почту», происходит подключение к серверу через протокол, и получение списка входящих писем.

Рис. 1.1. «Диаграмма работы протокола POP3»

При нажатии на кнопку написать письмо в меню «Файл», загружается окно нового письма, в котором содержатся поля: кому адресовано письмо, поле темы, поле для текста письма и кнопка для отправки письма.

При нажатии на кнопку «SendMail», происходит отправка письма, используя протокол SMTP.

При нажатии кнопки выход в меню «Файл», происходит завершение работы программы.


Рис. 1.2. «Диаграмма работы протокола SMTP»

2.5. Разработанные меню и интерфейсы

При запуске программы на экране появляется главное окно программы с элементами управления (Рис. 2.1).

Рис. 2.1. «Главное окно»

Для настройки почтового клиента необходимо нажать на меню «Настройки». В результате, загружается окно настроек (рис. 2.2.).


Рис. 2.2. «Настройки»

Для отправки письма необходимо запустить окно «Написать письмо» (рис 2.3.), нажатием на кнопку «Написать письмо» в меню «Файл».

Рис. 2.3. окно «Написать сообщение»

2.6. Описание основных классов и методов приложения

Рис. 3.1. «Диаграмма классов»

Класс POP3

Класс POP3, также как и одноименный протокол используется для извлечения сообщений с почтового сервера. Данный класс наследуется от System.Net.Sockets.TcpClient реализованного в VS 2008.

Класс содержит несколько методов:

· ConnectPOP – используется для установки соединения с сервером;

· DisconnectPOP – закрывает соединение с сервером;

· ListMessages – получаем список сообщений с сервера;

· RetriveMessage – получение сообщения с сервера;

· DeleteMessage – удаление сообщения на сервере;

· Write – принимает сообщение на входе и записывает его в сетевой поток TCP;

· Response – метод обратный от Write.

Класс SMTP

Класс SMTP как и одноименный протокол обеспечивает отправку сообщений.

Содержит метод SendMail , который обеспечивает отправку сообщения по протоколу SMTP.

Класс Form1

Класс Form1 обеспечивает интерфейс главного окна программы, а также обеспечивает функциональность сохранения и отображения принятых сообщений.

Основные методы:

· LoadProfile – загрузка файла профиля почтового ящика;

· ReadMess – чтение сообщения из файла;

· FileCreate – сохранение почтового сообщения;

· ListMess – загрузка сообщений в элемент ListView;

· ItemsAdd – добавление новых сообщений в элемент ListView;

Класс FormSettings

Класс FormSettings обеспечивает интерфейс окна настроек почтового ящика, а также обеспечивает сохранение этих настроек в файл профиля.

Основные методы:

· LoadProfile – загрузка файла профиля почтового ящика;

· EditProfile – сохранение изменений профиля почтового ящика;

3. ПРОГРАММА И МЕТОДИКА ИСПЫТАНИЙ

Запуск программы осуществляется с помощью запуска файла Mail client.sln из среды разработки «MVS-2008».

Вверху окна расположены кнопки главного меню (рис. 3.5.1). Ниже расположено поле, в которое загружается список полученных писем. В самое нижнее поле загружается текст письма.

Результатом нажатия на меню «Получить почту», будет загрузка входящих писем в верхнее поле. Результатом нажатия на любое письмо, будет загрузка текста письма в нижнее поле. Для отправки письма нужно загрузить окно «Написать письмо» (рис 3.5.3) в меню файл. Результатом нажатия кнопки «SendMail» в окне «Написать письмо» будет отправка Эл. письма адресату. Результатом нажатия кнопки «выход» в меню «файл», будет выход из программы.

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Герберт Шилдт «Полный справочник по C++», 2004 г.

2. Лабор В.В «Создание приложений для Windows», 2003 г.

3. Агуров П.В «Разработка компонентов в MS Visual Studio», 2008 г.

4. Э.Кровчик, В.Кумар, Н.Логари, А.Мунгале, К.Нагел, Т.Паркер, Ш.Шивакумар «NET сетевое программирование для профессионалов»,2005г.

ПРИЛОЖЕНИЕ 1

Form1.cs

namespace Mail_client

{

public partial class Form1 : Form

{

private string dir;

public static int countMesStart;

public static int countMes=0;

public static string sServerName ;

public static string sUserName;

public static string sPassword;

public static string SMTPserver;

private FormSettings fset= new FormSettings ();

private FormNewMess fnewmess = new FormNewMess ();

public Form1()

{

InitializeComponent();

this .ShowInTaskbar = false ;

dir = Directory .GetCurrentDirectory();

ItemsAdd();

LoadProfile();

}

public string LoadProfile() //загрузка файла профиля

{

FileStream fs = new FileStream (dir+"\\messages\\profile\\porfile.txt",

FileMode .Open, FileAccess .Read);

StreamReader sr = new StreamReader (fs);

string CurLine;

int i = 0;

while

( (CurLine = sr.ReadLine()) != null )

{

i++;

if (i==1)

countMes = Convert .ToInt32(CurLine);

if (i == 2)

{

sServerName = CurLine;

}

if (i == 3)

sUserName = CurLine;

if (i == 4)

sPassword = CurLine;

if (i == 4)

SMTPserver = CurLine;

}

countMesStart = countMes;

fs.Close();

sr.Close();

return CurLine;

}

public string ReadMess(string num, int c) //чтение сообщения

{

String fil="";

if (c==2 )

fil = "";

if (c == 1)

fil = ".txt";

FileStream fs = new FileStream (dir+"\\messages\\" + num + fil,

FileMode .Open, FileAccess .Read);

StreamReader sr = new StreamReader (fs);

string CurLine="";

CurLine = sr.ReadToEnd();

fs.Close();

sr.Close();

return CurLine;

}

public void Get() //получение сообщений с сервера

{ string content;

POPException.POP3 oPOP = new POPException.POP3 ();

oPOP.ConnectPOP(sServerName, sUserName, sPassword);

ArrayList MessageList= oPOP.ListMessages();

foreach (POPException.POP3EmailMessage POPMsg in MessageList)

{

POPException.POP3EmailMessage POPMsgContent= oPOP.RetriveMessage(POPMsg);

content= POPMsgContent.msgContent;

string filename = Theme(content);

FileCreate(filename,content);

// richTextBox2.Text += content;

ItemsAdd();

}

oPOP.DisconnectPOP();

}

public string Theme(string content) //процедура получения темы сообщения

{

string resultValue="";

char m='\r' ;

int i = content.LastIndexOf("Subject:");

i += 9;

for ( char c=content[i];content[i]!=m; i++)

{

c = content[i];

resultValue +=c;

}

return resultValue;

}

public string FromMess(string content) //получение поля ОТ

{

string resultValue = "";

char m ='\r';

int i = content.IndexOf("From:");

i+=6;

for (char c = content[i]; content[i] != m; i++)

{

c = content[i];

resultValue += c;

}

return resultValue;

}

public string ToMess(string content) //получения поля кому

{

string resultValue = "";

char m ='\r';

int i = content.IndexOf("\nTo:");

i += 4;

for (char c = content[i]; content[i] != m; i++)

{

c = content[i];

resultValue += c;

}

return resultValue;

}

public void FileCreate(string filename,string content) //процедура создания файла

{

countMes++;

FileStream myStream=File .Create(dir+"\\messages\\"+countMes+".txt");

int z = content.Length;

for ( int i=0; i < z; i++)

{

char c = content[i];

myStream.WriteByte((byte )c);

}

myStream.Close();

}

public void ListMess(string num,string theme, string from) // добавление сообщений в листвью

{

ListViewItem lvi = new ListViewItem ((listView1.Items.Count + 1).ToString());

lvi.SubItems.Add(theme);

lvi.SubItems.Add(from);

listView1.Items.Add(lvi);

}

public void ItemsAdd()// Добавление новых сообщений

{string strin="";

// listBox1.Items.Clear();

listView1.Items.Clear();

//char c;

string [] contents = System.IO.Directory .GetFileSystemEntries(dir + @"\messages\");

foreach (string s in contents)

{

if ((s.IndexOf("profile") == -1))

{

for (int z = s.LastIndexOf("\\")+1; z < s.Length; z++)

{

char c = s[z];

strin += c;

}

string content=ReadMess(strin, 2);

string from = FromMess(content);

ListMess(strin,Theme(content), from);

// listBox1.Items.Add(strin);

strin = "";

}

}

}

public string ShowMes() //процедура показа выделенного сообщения

{

string resultValue = "";

if (listView1.SelectedItems.Count == 0)

return resultValue ;

string x = listView1.SelectedItems[0].Text;

string content = ReadMess(listView1.SelectedItems[0].Text, 1);

// ListMess(x,Theme(content), FromMess(content));

Them.Text = Theme(content);

From.Text = FromMess(content);

To.Text = ToMess(content);

char m ='\n';

char z ='0';

int i = content.LastIndexOf("Content-Transfer-Encoding:");

i += 9;

while (content[i] != m)

i++;

for (char c = content[i+1]; i < (content.Length); i++)

{

c = content[i];

resultValue += c;

}

return resultValue ;

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

string content = ShowMes();

richTextBox3.Text = content;

}

private void настройкиЯщикаToolStripMenuItem_Click(object sender, EventArgs e) //показ формы настройки ящмка

{

fset.ShowDialog(this );

}

private void mnuShow_Click(object sender, EventArgs e) //отображение главной формы

{

//Включаем отображения приложения на панели задач при запуске

this .ShowInTaskbar = true ;

//Показываем форму

this .Show();

timer1.Enabled = false ;

notifyIcon1.Icon =new Icon (dir+@"\messages\profile\Folder1.ico");

//Отключаем доступность пункта меню mnuShow

mnuShow.Enabled = false ;

//Включаем доступность пункта меню mnuHide

mnuHide.Enabled = true ;

//Переменной Hidden устанавливаем значение false

}

private void mnuHideToolStripMenuItem_Click(object sender, EventArgs e)//сворачивание главной формы в трей

{

this .ShowInTaskbar = false ;

this .Hide();

mnuShow.Enabled = true ;

mnuHide.Enabled = false ;

timer1.Enabled = true ;

}

private void notifyIcon1_DoubleClick(object sender, EventArgs e) //открытие формы по щелчку на иконке в трее

{

mnuShow_Click(this , new EventArgs ());

}

private void Form1_FormClosing(object sender, FormClosingEventArgs e) //закрытие главной формы

{

if (e.CloseReason == CloseReason .UserClosing)

{

e.Cancel = true ;

this .Hide();

mnuShow.Enabled = true ;

mnuHide.Enabled = false ;

timer1.Enabled = true ;

}

}

private void выходToolStripMenuItem_Click(object sender, EventArgs e) // процедура выхода из программы

{

notifyIcon1.Visible = false ;

this .ShowInTaskbar = false ;

this .Hide();

listView1.Items.Clear();

Application .Exit();

}

private void написатьПисьмоToolStripMenuItem_Click(object sender, EventArgs e)//показ формы Нового сообщения

{

fnewmess.ShowDialog(this );

private void timer1_Tick(object sender, EventArgs e) //таймер отвечает за проверку сообщений по времени

{

Get();

if (countMesStart < countMes)

{

notifyIcon1.Icon = new Icon (dir + @"\messages\profile\NotePad.ico");

}

}

private void listView1_ItemActivate(object sender, EventArgs e)//изменение выброного сообщения

{

string content = ShowMes();

richTextBox3.Text = content;

}

private void получитьПочтуToolStripMenuItem_Click(object sender, EventArgs e)

{

Get();

}

private void Form1_Deactivate(object sender, EventArgs e)

{

if (WindowState == FormWindowState .Minimized)

{

this .ShowInTaskbar = false ;

this .Hide();

mnuShow.Enabled = true ;

mnuHide.Enabled = false ;

timer1.Enabled = true ;

}

}

private void Form1_Activated(object sender, EventArgs e)

{

if (WindowState == FormWindowState .Normal)

{

this .ShowInTaskbar = true ;

//Показываем форму

this .Show();

timer1.Enabled = false ;

mnuShow.Enabled = false ;

mnuHide.Enabled = true ;

notifyIcon1.Icon = new Icon (dir + @"\messages\profile\Folder1.ico");

}

}

}

}

Program.cs

namespace Mail_client

{

namespace POPException

{

public class POPException : System.ApplicationException

{

public POPException(string str)

: base (str)

{

}

}

static class Program

{

static Form1 frm = null ;

public static Form1 MainForm { get { return frm; } }

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread ]

static void Main()

{

Application .EnableVisualStyles();

Application .SetCompatibleTextRenderingDefault(false );

Application .Run(frm = new Form1 ());

}

}

public class POP3EmailMessage //класс описывающий emailMessage

{

public long msgNumber;

public long msgSize;

public bool msgReceived;

public string msgContent;

}

public class SMTP

{

public void SendMail(string sSMTPServer, string sFrom, string sTo, string sSubject, string sBody)//класс SMTP отвечающий за отправку сообщений

{

SmtpClient client = new SmtpClient (sSMTPServer, 25);

client.Credentials = new NetworkCredential (Form1 .sUserName, Form1 .sPassword);

MailMessage message = new MailMessage (Form1 .sUserName, sTo, sSubject, sBody);

client.Send(message);

}

}

public class POP3 : System.Net.Sockets.TcpClient // Класс POP3 отвечающий за доставку смс сообщений

{

public void ConnectPOP(string sServerName, string sUserName, string sPassword) // соединение с POP сервером

{

string sMessages;

string sResult;

//вызываем метод connect класса TcpClient

Connect(sServerName, 110);

sResult = Response();

//проверка ответа

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

//отправляем имя пользователя

sMessages = "USER " + sUserName + "\r\n";

Write(sMessages);

sResult = Response();

//проверка ответа

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

//отправляем пароль

sMessages = "PASS " + sPassword + "\r\n";

Write(sMessages);

sResult = Response();

//проверка ответа

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

}

public void DisconnectPOP() //отсоединение от POP сервера

{

string sMessage;

string sResult;

sMessage = "QUIT\r\n";

Write(sMessage);

sResult = Response();

//проверка ответа

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

}

public ArrayList ListMessages() //получение списка сообщений с сервера

{

string sMessage;

string sResult;

ArrayList returnValue = new ArrayList ();

sMessage = "LIST\r\n";

Write(sMessage);

sResult = Response();

//проверка ответа

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

while (true )

{

sResult = Response();

if (sResult == ".\r\n")

{

// Program.MainForm.Add(returnValue);

return returnValue;

}

else

{

POP3EmailMessage oMailMessage = new POP3EmailMessage ();

//Определяем разделитель

char [] sep = { ' ' };

//используем метод Split, чтобы разбить массив

string [] values = sResult.Split(sep);

//Помещаем данные в объект OMailMessage

long count=Int32 .Parse(values[0]);

// ToString(count);

// Program.MainForm.Add(rv);

oMailMessage.msgNumber = Int32 .Parse(values[0]);

oMailMessage.msgSize = Int32 .Parse(values[1]);

oMailMessage.msgReceived = false ;

returnValue.Add(oMailMessage);

continue ;

}

}

}

public POP3EmailMessage RetriveMessage(POP3EmailMessage msgRETR) //доставка сообщений с POP сервера

{

string sMessage;

string sResult;

POP3EmailMessage oMailMessage = new POP3EmailMessage ();

oMailMessage.msgNumber = msgRETR.msgNumber;

oMailMessage.msgSize = msgRETR.msgSize;

//для получения соответсвующего сообщения посылаем RETR

sMessage = "RETR " + msgRETR.msgNumber + "\r\n";

Write(sMessage);

sResult = Response();

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

//поскольку сообщение получено устанавливаем во флаге true

oMailMessage.msgReceived = true ;

while (true )

{

sResult = Response();

if (sResult == ".\r\n")

break ;

else

oMailMessage.msgContent += sResult;

}

string content = oMailMessage.msgContent;

return oMailMessage;

}

public void DeleteMessage(POP3EmailMessage msgDELE) //удаление сообщений с POP сервера

{

string sMessage;

string sResult;

sMessage = "DELE" + msgDELE.msgNumber + "\r\n";

Write(sMessage);

sResult = Response();

if (sResult.Substring(0, 3) != "+OK")

throw new POPException (sResult);

}

private void Write(string sMessage)

{//используется для перекодирования данных

System.Text.ASCIIEncoding oEncodeData = new System.Text.ASCIIEncoding ();

//теперь пересылаем сообщение в буфер для отправки в сетевой поток TCP

byte [] WriteBuffer = new byte [1024];

WriteBuffer = oEncodeData.GetBytes(sMessage);

//выводим содержимое буффера в поток TCP

NetworkStream NetStream = GetStream();

NetStream.Write(WriteBuffer, 0, WriteBuffer.Length);

}

private string Response() //перекодировка сообщений

{

System.Text.ASCIIEncoding oEncodedData = new System.Text.ASCIIEncoding ();

byte [] ServerBuffer = new Byte [1024];

NetworkStream NetStream = GetStream();

int count = 0;

while (true )

{

byte [] buff = new Byte [2];

int bytes = NetStream.Read(buff, 0, 1);

if (bytes == 1)

{

ServerBuffer[count] = buff[0];

count++;

if (buff[0] =='\n')

break ;

}

else break ;

}

string ReturnValue = oEncodedData.GetString(ServerBuffer, 0, count);

return ReturnValue;

}

}

}

}

FormSettings.cs

namespace Mail_client

{

public partial class FormSettings : Form

{

private string dir1;

public FormSettings()

{

InitializeComponent();

dir1=Directory .GetCurrentDirectory();

LoadProfile();

}

public string LoadProfile() //считывание файла профиля

{

FileStream fs = new FileStream (dir1+ "\\messages\\profile\\porfile.txt",

FileMode .Open, FileAccess .Read);

StreamReader sr = new StreamReader (fs);

string CurLine;

int i = 0;

while

((CurLine = sr.ReadLine()) != null )

{

i++;

if (i == 1)

{

Form1 .countMes = Convert .ToInt32(CurLine);

}

if (i == 2)

{

POP3.Text = CurLine;

Form1 .sServerName = CurLine;

}

if (i == 3)

{

UserName.Text = CurLine;

Form1 .sUserName = CurLine;

}

if (i == 4)

{

Pass.Text = CurLine;

Form1 .sPassword = CurLine;

}

if (i == 5)

{

SMTP.Text = CurLine;

Form1 .SMTPserver = CurLine;

}

}

fs.Close();

sr.Close();

return CurLine;

}

public void EditProfile() // изменение профиля почтового ящика

{

StreamWriter sw = new StreamWriter (dir1+ "\\messages\\profile\\porfile.txt"); //сохраняем данные почтового ящика

{

sw.WriteLine(Form1 .countMes.ToString());

sw.WriteLine(POP3.Text);

sw.WriteLine(UserName.Text);

sw.WriteLine(Pass.Text);

sw.WriteLine(SMTP.Text);

}

// FileStream myStream = File.Create("F:\\messages\\profile\\porfile.txt");

string str = Form1 .countMes.ToString();

sw.Close();

}

private void Cancel_Click(object sender, EventArgs e) //отмена

{

this .Hide();

}

private void FormSettings_FormClosing(object sender, FormClosingEventArgs e) //при закрытии формы

{ //отменятся все изменения и форма скрывается

e.Cancel = true ;

this .Hide();

}

private void Save_Click_1(object sender, EventArgs e) //сохранение профиля

{

EditProfile();

}

private void Ok_Click(object sender, EventArgs e) //при нажатии клавиши Ок сохраняется профиль

{//и форма сворачивается

EditProfile();

this .Hide();

}

}

}

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Хватит париться. На сайте FAST-REFERAT.RU вам сделают любой реферат, курсовую или дипломную. Сам пользуюсь, и вам советую!
Никита03:20:09 04 ноября 2021
.
.03:20:07 04 ноября 2021
.
.03:20:06 04 ноября 2021
.
.03:20:04 04 ноября 2021
.
.03:20:02 04 ноября 2021

Смотреть все комментарии (21)
Работы, похожие на Курсовая работа: Разработка приложения клиента электронной почты

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(290496)
Комментарии (4189)
Copyright © 2005-2021 HEKIMA.RU [email protected] реклама на сайте