NMPOP3

Андрій Гончаров

Хочу поділитися своїми шедеврами з цього компоненту з лінійки FastNet Delphi. Багато читав і
чув про нього доброго, ще більше поганого. Сперечатися не буду, хотілося б бачити
даний ресурс більш відкритим для програміста, але …


Тим не менш, з ним можна працювати, і навіть дуже ефективно. Ось що мені
вдалося зібрати на свою досить малу час перебування програмістом
POP3-протоколу.


Спочатку необхідно зробити відступ. Він належить до типу
TPowerSock, нащадком якого
і є TNPOP3.

Спочатку розглянемо методи і властивості
TPowerSock, а в купі з ним,
відповідно, і сваойства T.

Адреса сервера, з яким буде встановлюватися з'єднання, задається
властивістю


property Host: string;


(Так, наприклад, адресу сервера
“chat.ru”).


Тут припустимі як символьне (доменне) опис імені сервера (див. вище),
так і IP-адреса
(192.12.166.13). Протол при цьому вказувати не треба (тобто префікси типу
http: \ \ або
ftp: \ \ не
потрібні).


Для установки з'єднання використовується метод


procedure Connect;


Якщо всі параметри, зазначені вище встановлені, то відбувається з'єднання з
заданим адресою. Якщо з'єднання пройшло успішно, то викликається подія
OnConnect.


Основні помилки, можливі при установці з'єднання:


не вказаний логін або пароль користувача – подія
OnAuthenticationNeed;


не заданий невірно логін або пароль
користувача – подія
OnAuthenticationFailed.


У цих випадках необхідно задати правильні значення необхідних параметрів і
встановити значення Handled
соотвествующих обробників в
TRUE, інакше відбудеться
виняткова ситуація.


Для розриву з'єднання використовується метод


procedure Disconnect;


який при вдалому завершенні викликає подія
OnDisconnect.


 


Тепер можна безпосередньо перейти до компоненту
і його властивостей.


Адреса порту вказується у властивості


property Port: integer.


Для кожного протоколу значення порту унікально, зокрема для
POP3 це значення 110.


Далі слідують такі, необхідні для з'єднання, властивості:


property UserID: string;
ім'я (логін) користувача,


property Password: string;
пароль.


Так як у складі повідомлення нерідко передаються вкладені файли, то на те,
щоб їх було зручно розмістити використовується властивість


property AttachFilePath: string;
шлях для зберігання вкладених файлів.


Тут необхідно зауважити, що під час оголошення, в будь-якому випадку
створюються тимчасові файли з розширенням *. tmp,
в якому зберігається текст прийнятого сполучення,
які фактично дублюють прийняте повідомлення. Все, що можу порекомендувати
з цього приводу, так те, що після закінчення прийому повідомлень з адреси видаляти
всі ці файли.
Так, до речі, якщо шлях у AttachFilePath
не вказаний, або вказано невірно, то вкладені файли,
як і тимчасові, зберігаються в дірректорія, з якої запущено
прілеженіе.


property ReportLevel: integer.


Дана властивість хараткерізует ступінь деталізації повідомлень, що посилаються в
параметрі Status
під час появи події OnStatus.

Можливі значення цієї властивості:


Status_None = 0;


Status_Information = 1;


Status_Basic = 2;


Status_Routines = 4;


Status_Debug = 8;


Status_Trace = 16;


Як зрозуміло з їх назв, з зростанням значення властивості
ReportLevel кількість
інформації зростає.


property TimeOut: integer;


У цій властивості задається час очікування відповіді від сервера. Якщо його
встановити в 0, то очікування буде одно нескінченності.


У випадку вдалої установки з'єднання з поштовим сервером, ви маєте
наступні можливості:


перевірити кількість повідомлень у поштовій скриньці: proprty
MailCount: integer;


отримати список повідомлень, що зберігаються у ящику: procedure
List.
У результаті
прініема кожного заголока викликається подія OnList
(Приклад можна подивитися в
htlp’e nmpop3.hlp
стандартної постакі Delphi);

для отримання більш докладної інформації використовується метод

procedure GetSummaru(MailNumber: integer),
де MailNumber
– Порядковий номер від 1
до


MailCount. При цьому параметри
листи можна отримати у властивості


property Sumary: TSummary;


Для отримання листа необхідно викликати метод


procedure GetMailMessage(MailNumber: integer);

Отримане повідомлення можна проаналізувати і прочитати, звернувшись до
властивості:


property MailMessage: TMailMessage;

Це основна інформація щодо використання даного компонента.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*