Завдання. Написати програму за допомогою якого буде можливість перевіряти наявність поштових повідомлень. Для початку вирішимо наступні підзадачі:
- Перевірка пошти на наявність повідомлень;
- Можливість завдання періоду перевірки пошти;
- Висновок повідомлень за наявності будь-яких повідомлень;
Інструментарій. Delphi, компоненти INDY
Я починаю цикл статей які спрямовані на роботу зі створення поштового клієнта за допомогою компонентів Indy.
- Перевірка пошти на наявність повідомлень;
- Можливість завдання періоду перевірки пошти;
- Висновок повідомлень за наявності будь-яких повідомлень;
Раз визначилися з планом дій - приступимо до наступного етапу - створення. Створюємо новий проект, і розміщуємо на формі компонент idPOP3. який знаходитися на закладці IndyClients.
Для того щоб перевірити пошту нам необхідно передати компоненту idPOP3 деякі параметри для підключення, а саме:
Розміщуємо на формі компонент GroupBox з вкладки Standard - для групування полів. Для того щоб програма була більш «гнучкої» - помістимо 4 компонента Edit і Label. вони знаходяться на закладці Standard. Встановимо властивості компонентів, як показано в табл.1.
В результаті ми отримаємо такий вигляд вікна (Рис.2.):
Мал. 2 - Відправка пошти - Дизайн форми
Напишемо функцію присвоєння значень таймера, його активацію і висновок відповідних повідомлень в ResultMemo.
Оголосивши цю функцію в приватній секції головної форми:
private
function StartTimer # 40; T. TTimer; int. Integer # 41 ;. string;
Далі створимо код для події onClick кнопки OkButton (для того щоб створити цю подію необхідно два рази клікнути на кнопку, або перейти в Object Inspector, відкрити закладку Events, і два рази клікнути по порожньому полю біля назви onClick): Після створення події автоматично згенерує наступний код:
procedure TMainForm. OkBtnClick # 40; Sender. TObject # 41; ;
begin
end;
Використовуємо раніше написану функцію, для цього передамо необхідні параметри:
procedure TMainForm. OkBtnClick # 40; Sender. TObject # 41; ;
begin
ResultMemo. Lines. Add # 40; StartTimer # 40; CheckTimer. StrToInt # 40; IntervalEdit. Text # 41; # 41; # 41; ;
end;
Розглянемо більш детально: ResultMemo.Lines.Add (); - додаємо запис в ResultMemo яку повертає написана нами процедура
StartTimer # 40; CheckTimer. StrToInt # 40; IntervalEdit. Text # 41; # 41 ;.
І оголосимо її в приватній секції головної форми:
private
.
function CheckMail # 40; IP. TIdPOP3; User. Pass. Host. string; Port. Integer # 41 ;. String;
procedure TMainForm. CheckTimerTimer # 40; Sender. TObject # 41; ;
begin
ResultMemo. Lines. add # 40; CheckMail # 40; IdPOP31. AdressEdit. Text. PassEdit. Text. Pop3Edit. Text. StrToInt # 40; PortEdit. Text # 41; # 41; # 41; ;
end;
Тепер подивимося що ж вийшло, заповнюємо всі поля (настройки для отримання пошти можна взяти на поштових серверах, де у вас зареєстрований поштовий ящик) (Рис.3):
Мал. 3 - Відправка пошти - Дизайн форми
Тестування пройшло успішно. Сьогодні спробую протестувати на інших поштових серверах.
PS. Якщо є побажання - пишіть, із задоволенням вислухаю і по можливості реалізую.
продовження:
Перевірка пошти засобами Delphi - частина 2
Вихідні тексти програми можна завантажити на GitHub