Привіт усім новачкам ХакЗони. У цій статті я збираюся розповісти про протокол POP3 в Delphi-додатках. Як це відноситься до хаку? - Запитаєте ви. Да по-різному. Можливо, кому-то захочеться написати брутфорс, а кому-то свій власний поштовий клієнт, кто-то просто захоче зрозуміти як працювати з POP3 в Delphi, а кто-то хоче видалити всі повідомлення зі свого вконец разбомбленного скриньки ... Взагалі, застосувань куча.
Отже, почнемо. Користуватися ми будемо компонентом зі сторінки FastNet під назвою TNMPOP3. Як ви вже зрозуміли, цей компонент застосовується для отримання листів від POP3-сервера. Ніяких складностей у поводженні з ним немає, всю роботу Delphi, як зазвичай, виконує за нас. Почнемо.
Підготовка.
Перед прийомом повідомлень потрібно задати значення властивості Host (ім'я поштового сервера або його IP-адреса), а також значення властивостей UserID і Password (ім'я користувача і пароль). Потім потрібно викликати метод Connect, який встановить з'єднання. При невідповідності UserID / Password відбувається генерація подій:
OnAuthenticationFailed (якщо введено неправильний пароль або невідоме серверу ім'я)
OnAuthenticationNeeded (якщо пароль не вказано або в UserID не вказано ім'я користувача)
Якщо ви успішно пріконнектілісь до сервера, то автоматично встановлюється властивість MailCount, що показує кількість повідомлень у вашому (або не вашем) скриньці.
Одержання пошти.
Далі потрібно отримати пошту. Це робиться методом GetMailMessage (N: Integer), де
N - комер повідомлення. Але перед його викликом потрібно встановити властивість DeleteOnRead, що відповідає за видалення прочитаних повідомлень (якщо його значення True, тоді після прочитання листа, повідомлення з сервера видаляється з сервера, якщо FALSE - то немає), а також каталог для вивантаження приєднаних файлів у властивість AttachFilePath ( якщо значення не задано, то файли будуть
розвантажуватися в каталог, з якого виконується програма).
Отже, викликав GetMailMessage. Після цього автоматично встановлюється значення
властивості MailMessage. Воно включає свої власні властивості:
Attachments - імена вкладених файлів
Body - текст листа
From - адреса відправника
Head - заголовок листа
MesageID - унікальний ідентифікатор листа
Subject - тема листа
Практика.
Вот, в принципе и вся теоритическую частина, тому далі я наведу фрагменти програми. Отже, створюємо форму, кладемо на неї NMPOP3, три TEdit (для сервера, ім'я користувача і пароль) і кнопку для початку
з'єднання, до якої пишемо такий обробник OnClick:
NMPOP31.Host: = Edit1.Text;
NMPOP31.UserID: = Edit2.Text;
NMPOP31.Password: = Edit3.Text;
NMPOP31.DeleteOnRead: = FALSE;
NMPOP31.Connect;
Тепер додаємо ще чотири TEdit (для введення номера потрібного листа, для виведення адреси відправника, теми листа і идентификатора листа) і два TMemo (для заголовка і тексту листа). Додамо кнопку, при натисканні якої ми будемо отримувати потрібний лист. До неї пишемо такий обробник:
VAR
N: Integer;
if NMPOP31.MailCount> 0 Then
BEGIN
N: = StrToIntDef (Edit4.Text, -1);
If (NNMPOP31.MailCount) then ShowMessage ( 'Wrong number')
Else
BEGIN
NMPOP31.GetMailMessage (N);
Edit5.Text: = NMPOP31.MailMessage.From;
Edit6.Text: = NMPOP31.MailMessage.Subject;
Edit7.Text: = NMPOP31.MailMessage.MessageID;
Memo1.Lines.Assign (NMPOP31.MailMessage.Head);
Memo1.Lines.Assign (NMPOP31.MailMessage.Body);
End;
End;
Після закінчення роботи потрібно відключитися від сервера, що робиться за допомогою методу Disconnect.
Ну ось, в принципі, і все. Тепер ви можете з успіхом користуватися POP3 в
Delphi.
P.S. Так, я ще про чистку забомбленних скриньок говорив, так вот, лист видаляють
за допомогою методу DeleteMailMessage (N: Integer), яке прибирає повідомлення з номером N з поштового сервера.
Хакерство, книги хакерства, як стать хакером, взлом почтового ящика.
понеділок, 2 лютого 2009 р.
Підписатися на:
Дописати коментарі (Atom)



Немає коментарів:
Дописати коментар