NMPOP3, Delphi, Програмування, статті

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

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


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


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


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


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


property Host: string;


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


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


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


procedure Connect;


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


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


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


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


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


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


procedure Disconnect;


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


 


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


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


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>

*

*