Компонент tnmpop3 - закладка fastnet, інтернет і мережі, статті, програмування - програмування

Компонент TNMPOP3 застосовується для отримання електронних листів від POP3-сервера.
Вам може знадобитися цей компонент при написанні програми для якогось корпоративного програми, що використовує свої, внутрішні поштові сервіси. Або ви можете написати програму під свої власні потреби, яка збирала б пошту з декількох поштових серверів, відразу б сортувала її і відкидала непотріб і д.т.н.

Щоб отримати пошту вам потрібно викликати метод GetMailMessage. Отримане повідомлення буде потрапляти в властивість MailMessage.

Це був короткий огляд компонента. Зараз ми обговоримо деталі в міру ознайомлення з властивостями, методами і подіями цього компонента.

Для реєстрації на сервері вам потрібно задати значення властивостей UserID і Password. У властивості Password вказується пароль, який використовується для отримання доступу до поштового сервера. Якщо вказана невірна пароль або ім'я користувача, то в цьому випадку буде викликано подія OnAuthenticationFailed, якщо пароль або ім'я користувача не вказані викликається подія OnAuthenticationNeeded.

Тепер обговоримо методи цього компонента. Метод UniqueID повертає ідентифікатор повідомлення, наданого в секції методу за номером. Ідентифікатор є строкове унікальне значення, що привласнюється кожного листа поштовим сервером. Це значення поміщається в властивість MessageID, що є частиною складеного властивості Summary типу TSummary. Параметр MailNumber змінюється від 1 до максимального значення, що визначається властивістю MailCount.

Метод DeleteMailMessage видаляє вказане за номером повідомлення з поштової скриньки на поштовому сервері. У разі виникнення помилки виникає подія OnFailture і збуджується виняткова ситуація. Якщо повідомлення успішно позначається як віддалене, то відбувається подія OnSuccess. Віддалене цим методом повідомлення тільки позначаються як вилучені, реально вони видаляються тоді, коли ви закінчуєте роботу з поштовим сервером. А поки ви цього не зробили ви можете викликати метод Reset, і все "вилучені" в даному сеансі зв'язку повідомлення знову стануть доступними. Метод GetMailMessage витягує вказане за своїм номером повідомлення і поміщає його в властивість MailMessage. Якщо при виконанні методу виникає помилка, то порушується виняткова ситуація. Коли починається процес завантаження повідомлення, настає подія OnRetrieveStart. Після закінчення завантаження генерується подія OnRetrieveEnd. Якщо повідомлення благополучно отримано відбувається подія OnSuccess. Якщо властивість DeleteOnRead встановлено в true, то метод GetMailMessage, крім того, позначить на сервері отримане повідомлення на видалення.

Метод GetSummary витягує коротку інформацію про лист і зберігає її у властивості Summary. Метод List отримує список номерів і розміри повідомлень. Для кожного повідомлення в списку генерується подія OnList, якому через параметри передаються номер повідомлення і розмір повідомлення.

Нам залишилося розглянути події даного компонента. Подія OnAuthenticationFailed відбувається в разі, коли для роботи з поштовим сервером потрібна ідентифікація, в одному з властивостей UserID або Password значення введено невірно. Якщо властивості Handled привласнити значення true, то спроба реєстрації повторюється. Якщо у властивості Handled прописано false [що є значенням за замовчуванням], то порушується виняткова ситуація, і з'єднання обривається.

Подія OnDecodeStart виникає тоді, коли необхідно декодувати і запис на диск приєднаний до листа файл. У обробнику цієї події є параметр FileName, який визначає ім'я приєднаного файлу. Це ім'я можна змінити, якщо ви хочете зберегти файл під іншим ім'ям. Якщо в листі немає вкладених файлів, про подію не настає. Додавати шлях до імені файлу не слід, п.ч. шлях вказується у властивості AttachFilePath.

Подія OnList відбувається в процесі роботи методу List після отримання номера і розміру поточного повідомлення в списку. Подія OnReset генерується в разі успішного виконання методу Reset і означає це той факт, що з усіх повідомлень, позначених в поточному сеансі на видалення, знята мітка на видалення.

Подія OnRetrieveEnd відбувається тоді, коли завершується завантаження листи або його резюме. Подія OnRetrieveStart генерується коли починається процес завантаження повідомлення. Ці події замінюють свої попередні версії, названі помилково OnRetriveEnd і OnRetriveStart. Ці попередні версії, проте, доступні як Public, так що функції, які залежать їх, будуть працювати.

Приклад використання для DELPHI6 знаходиться c: \ Program Files \ Borland \ Delphi6 \ Demos \ FastNet \ Pop3 \ POP3DEMO.DPR

Схожі статті