на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка приложения – клиента электронной почты
i> 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();

}

}

}

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.