РефератыИнформатикаРаРазработка приложения клиента электронной почты

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

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+"messagesprofileporfile.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+@"messagesprofileFolder1.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 + @"messagesprofileNotePad.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 + @"messagesprofileFolder1.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 + "rn";


Write(sMessages);


sResult = Response();


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


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


throw
new
POPException
(sResult);


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


sMessages = "PASS " + sPassword + "rn";


Write(sMessages);


sResult = Response();


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


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


throw
new
POPException
(sResult);


}


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


{


string
sMessage;


string
sResult;


sMessage = "QUITrn";


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 = "LISTrn";


Write(sMessage);


sResult = Response();


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


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


throw
new
POPException
(sResult);


while
(true
)


{


sResult = Response();


if
(sResult == ".rn")


{


// 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 + "rn";


Write(sMessage);


sResult = Response();


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


throw
new
POPException
(sResult);


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


oMailMessage.msgReceived = true
;


while
(true
)


{


sResult = Response();


if
(sResult == ".rn")


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 + "rn";


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+ "messagesprofileporfile.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+ "messagesprofileporfile.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:messagesprofileporfile.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();


}


}


}

Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

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

Слов:4031
Символов:44737
Размер:87.38 Кб.