[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / C - C++ /

Работаем с POP-сервером

Здраствуй, в этой статье я расскажу про способы получения e-mail писем и их прочтения.
Для начала давайте составим интерфейс будущей программы Вот, что у меня вышло:


Нам необходимы компоненты - NMPOP (со вкладки FastNET, у меня носит name - NMPOP31); Три Edit (c name - UserEdit; PasswordEdit; HostEdit); Button (хотя в моем примере вместо Button используется - BitBtn1); и для отображения самих писем нам пригодиться компонент ListView (c именим ListView1), сделайте в нем две штуки Columns; первый "ОТ", второй "ТЕМА";

Первое событие, которое мы напишем будет событие, вызываемое кнопкой конэкт (у меня она просто имеет caption-OK):

if(UserEdit->Text==""){
ShowMessage("Вы не указали логин !");
}
if(PasswordEdit->Text==""){
ShowMessage("Вы не указали пароль!");
}
ListView1->Clear();
bConnected = false;

//Получаем сведения для конэкта:
NMPOP31->UserID = UserEdit->Text;
NMPOP31->Password = PasswordEdit->Text;
NMPOP31->Host = HostEdit->Text;
NMPOP31->Connect();

if(NMPOP31->Connected) //Конэкт удался, смотрим письма:
{

if(NMPOP31->MailCount > 0)
{
bSummary = true;
for(int i = 0; i < NMPOP31->MailCount; i++)
{
myId = i + 1;
NMPOP31->GetSummary(myId);
}
}
else
ShowMessage("Писем нет.");

NMPOP31->Disconnect();

}

Но, пока это лишь установка связи и проверка писем. Теперь мы получим и прочтем эти письма.
Нам необходимо создать вторую форму (Form2), где будет выводиться письмо для прочтения. Внешне форма должна выглядет примерно так:

Внимание на форме должны быть еще пару Label с именами: FromLabel (здесь отобразиться имя отправителя); SubjectLabel (здесь отобразиться тема письма). Кроме этого Memo в котором будет отбражаться само письмо, у меня носит имя - MailMemo. Еще размести кнопку Закрыть.
Но вернемся на основную форму (да, кстати незадь подклучить новую форму через include)и теперь рассписываем событие для NMPOP31->OnConnect:

bConnected = true;

И событие NMPOP31->OnRetrieveEnd:

if(bSummary)
{
TListItem *Temp = ListView1->Items->Add();

Temp->Caption = NMPOP31->Summary->From;
Temp->SubItems->Add(NMPOP31->Summary->Subject);
Temp->SubItems->Add(myId);
}
else
{
TForm2 *Temp = new TForm2(NULL);
Temp->MailMemo->Lines->Assign(NMPOP31->MailMessage->Body);
Temp->FromLabel->Caption = NMPOP31->MailMessage->From;
Temp->SubjectLabel->Caption = NMPOP31->MailMessage->Subject;
Temp->Show();
}

Здесь нет ничего архи-сложного. Написание программы подходит к завершающему этапу, теперь мы наконец разработаем событие сомого прочтения писем. Для прочтения письма пользователю придется два раза кликнуть по теме в ListView1. Итак, ListView1->OnDblClick :

NMPOP31->Connect();
if(ListView1->SelCount > 0)
{
bSummary = false;
NMPOP31->GetMailMessage(ListView1->Selected ->SubItems->Strings[1].ToIntDef(0));
}
NMPOP31->Disconnect();

И последнее, что мы сделаем - это опишим ошибку ауторизации, событие NMPOP31->OnAuthenticationFailed:

AnsiString NewPassword;

NewPassword = PasswordEdit->Text;
if(InputQuery("Неправильный пароль ", "Введите новый пароль :", NewPassword))
{
PasswordEdit->Text = NewPassword;
NMPOP31->Password = NewPassword;
Handled = true;
}
else
Handled = false;

И самое последнее - добавьте в начало кода следующие:

#pragma link "CGAUGES"
#pragma link "PERFGRAP"
#pragma link "CSPIN"
#pragma link "CCALENDR"

Вот и все, поздравляю с написанием своего почтовика, правда он только получает письма, но как устранить этот недостаток читайте в следующих статьях. Доделанный почтовик можно скачать с нашего сайта из раздела офис: pcnext.ru/soft/office.php. Если понадобится рабочий исходник - обращайтесь (lezh_victor@pcnext.ru) .




Комментарии

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / C - C++ /

Пишем CD проигрыватель 2
28-05-2010   

Сейчас я покажу как можно написать простой проигрыватель CD дисков. Для начала разместим все нужные компоненты на форме (см. рисунок)... подробнее

Кол. просмотров: общее - 4165 сегодня - 0

Пишем браузер
28-05-2010   

Продолжаю тему клонирования программ darkamstera на Delphi в С++Builder. В этой статье я покажу, как с помощью стандартных компонентов, можно создать свой браузер. Браузер будет на движке всеми-любимого InternetExplorer. Наш зверь сможет ходить по URL... подробнее

Кол. просмотров: общее - 2937 сегодня - 1

Информация о системе
28-05-2010   

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

Кол. просмотров: общее - 2957 сегодня - 1

FTP клиент своими руками
28-05-2010   

Здраствуй, сечас я покажу, как в CBuilder можно создать свой простой FTP-клиент, похожий пример можно найти в документации C++Builder Developnets Guilde... подробнее

Кол. просмотров: общее - 3417 сегодня - 0

Работаем с POP-сервером
28-05-2010   

Здраствуй, в этой статье я расскажу про способы получения e-mail писем и их прочтения. Для начала давайте составим интерфейс будущей программы Вот, что у меня вышло... подробнее

Кол. просмотров: общее - 3007 сегодня - 0



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects