На нашем сайте ежедневно публикуются десятки качественных и свежих материалов, которые Вы можете скачать абсолютно бесплатно. Рекомендуем Вам добавить Наш сайт в закладки, а также подписаться на RSS ленту, чтобы не пропускать интересных новостей.
Ну вот, как и обещал. Выкладываю статью, в которой мы с Вами разберем чтение почты с вашего почтового сервера. Создадим новый проект. На форму переместим невизуальный компонент idPOP3. Найти такой компонент можно во вкладке IndyClients:
Теперь рассмотрим некоторые необходимые параметры этого компонента: Username – адрес электронной почты в формате loginxxxx@xxxxx.xx Password – пароль к почтовому ящику Host – POP3 сервер. Вот одни из самых распространенных: (pop.mail.ru; pop.list.ru; pop.bk.ru; pop.inbox.ru; pop.yandex.ru; pop3.ukr.net; pop.gmail.com; pop3.rambler.ru). Если Вы не нашли свой почтовик в списке, то выясните его POP3 сервер на сайте почтовика или через поисковую систему. Port – порт (по умолчанию 110). Порт также желательно выяснить у почтовика или найти через поисковую систему.
Создадим форму, похожую на ту что на рисунке.
Edit1 – Адрес; Edit2 – Пароль; Edit3 – Сервер; Edit4 – Порт; Tmr1 – Таймер проверки; Memo1 – Лог справа; Btn1 – кнопка «Применить», SpinEdit1 – Проверять каждые x мин. Еще у SpinEdit1.minvalue выставьте 1, а SpinEdit1.minvalue выставьте по своему усмотрению (это максимальное кол-во минут ожидания до проверки). Создав форму, создадим обработчик события кнопки «Применить». По идее, при нажатии на кнопку, должно установиться время проверки (параметр Interval таймера tmr1 из SpinEdit1.value) и запуститься таймер tmr1. Таким образом получение кол-ва писем будет через »SpinEdit1.value» минут. Добавим этот код в обработчик OnClick компонента Btn1 (кнопки «применить»):Исходный код
Код
procedure TForm1.btn1Click(Sender: TObject); begin tmr1.Enabled:=False; tmr1.Interval:=spinedit1.Value*60000; tmr1.Enabled:=True; Memo1.Lines.Add('Почта будет проверена через ' +inttostr(spinedit1.Value)+' мин.'); end;
Думаю комментариев здесь не нужно – все и так очень просто. Теперь создадим обработчик OnTimer для таймера tmr1:Исходный код procedure TForm1.tmr1Timer(Sender: TObject); var msgs: Integer; // Сюда мы запишем количество писем begin try IdPOP31.Username := Edit1.Text; // адрес электронной почты (например vasyapupkin@mail.ru) IdPOP31.Password := Edit2.Text; // пароль IdPOP31.Host := Edit3.Text; // POP3 сервер IdPOP31.Port := StrToInt(Edit4.Text); // порт IdPOP31.Connect; // подключаемся к почтовому серверу if IdPOP31.Connected then // если подключение прошло успешно begin msgs := IdPOP31.CheckMessages; // записываем количество писем Memo1.Lines.Add('Подключение к ' + Edit1.Text + ' успешно'); Memo1.Lines.Add('У Вас ' + IntToStr(msgs) + ' сообщений'); end; except // Если произошла ошибка, то выведем её в Memo1 on E: Exception do Memo1.Lines.Add('Ошибка подключения к почтовому серверу! ' + E.Message); end; IdPOP31.Disconnect; // Отключаемся end; Ну вот и все! Теперь прокомпилируем программу, запустим, введем все данные и нажмем кнопку «Применить». Через указанное кол-во минут мы увидим результат нашей программы.