+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 91.78 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Проверка почты средствами Delphi

13.06.2012 17:41
Александр Андрощук / Владимир Любаев

В этом уроке мы напишем программу для проверки почты.
Первое что нам надо сделать, это определиться с заданиями  которые нужно чтобы выполняла данная программа. И так:

  1. Проверка почты
  2. Возможность задания периода проверки почты
  3. Вывод уведомлений при получении новых писем

И так начнём. Для начала нам нужно создать новый проект и  поместить на фору компонент idPOP3,который находиться на закладке IndyClients. Для того чтобы проверить почту нам необходимо передать компоненту idPOP3 некоторые параметры для подключения:
Username - адрес электронной почты в формате (xxx@xxx.xx)
Password - пароль к данному почтовому ящику 
Host - POP3 сервер (pop.mail.ru; pop3.ukr.net)
Port - порт (по умолчанию 110)
Размещаем на форме компонент GroupBox из вкладки Standard - для группирования полей. Для того чтобы программа была более гибкой -  поместим 4 компонента Edit и Label, они находятся на закладке Standard. Установим свойства компонентов, как показано в Табл.1.

Табл.1.

Компонент

Свойство

Значение

Описание

GroupBox1

Caption

Настройки ящика

 

Label1

Caption

Адрес

 

Label2

Caption

Пароль

 

Label3

Caption

POP3 сервер

 

Label4

Caption

Порт

 

Edit1

Text

 

Адрес

Edit2

Text

 

Пароль

 

PasswordChar

*

 

Edit3

Text

 

POP3 сервер

Edit4

Text

 

Порт

 

NumbersOnly

true

Можно вводить только числа

Результат можно просмотреть на  Рис.1.
delphi почта
Рис.1.

Для того чтобы программа проверяла через определённо время наличие писем - необходимо поместить на форму компонент Timer, который находиться на закладке System. Для задания интервала проверки, нам необходимо добавить на форму кнопку (Button на панели Standard), поле ввода Edit (панель Standard) и компонент Memo для вывода системных сообщений. Установим для них следующие свойства:

Компонент

Свойство

Значение

Button1

Caption

Установить

Memo1

Lines

 

Edit5

Text

 

 

NumbersOnly

true

Timer

Enabled

false

В результате мы получим следующий вид окна (Рис.2.):
почта Delphi
Рис.2.

Дальше создадим код для события onClick кнопки Button1(для того чтобы создать данное событие необходимо два раза кликнуть на кнопку, или перейти в Object Inspector перейти на закладку Events, и два раза кликнуть по пустому полю возле названия onClick): После создания события автоматически сгенерируется следующий код:

procedure TForm1.Button1Click(Sender: TObject);
begin
end;

После его редактирования мы получим следующий код:

procedure TForm1.Button1Click(Sender: TObject);
var
sec:Integer;    // объявляем переменную для записи в неё количество мсек.
begin
Timer1.Enabled:=false;      //остановка таймера 
sec:=StrToInt(Edit5.Text)*60000;  // определяем интервал проверки
Timer1.Interval:=sec;       // задаём интервал проверки
Timer1.Enabled:=true;       //запускаем таймера
Memo1.Lines.Add('Почта будет проверена через '+Edit5.Text+' мин.'); 
// Вывод оповещения в Memo 
end;

Всё очень просто мы останавливаем таймер, в том случае если он запущен, определяем время его срабатывания, записываем данное время в интервал и запускаем таймер.
Теперь перейдём непосредственно к таймеру. Два раза кликаем левой кнопкой мыши на компонент Timer, после чего вы перейдёте в редактор кода, при этом автоматически сгенерируется обработчик события OnTimer:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
end;

Реализуем код для получения писем:

procedure TForm1.Timer1Timer(Sender: TObject);
var
NumOfMsgs:Integer;  // Количество писем 
begin
try
IdPOP31.Username:=Edit1.Text;   // адрес электронной почты в формате(xxx@xxx.xx)
IdPOP31.Password:=Edit2.Text; //  пароль к данному почтовому ящику
IdPOP31.Host:=Edit3.Text;     // POP3 сервер (pop.mail.ru; pop3.ukr.net)
IdPOP31.Port:=StrToInt(Edit4.Text);     // порт 
  IdPOP31.Connect;     // подключаемся 
if IdPOP31.Connected then      // если подключение прошло успешно 
begin
NumOfMsgs := idpop31.CheckMessages; 
// записываем в NumOfMsgs количество писем 
// выводим сообщения в Мемо
Memo1.Lines.Add('Подключение прошло успешно!');
Memo1.Lines.Add('У вас '+IntToStr(NumOfMsgs)+' сообщений');
end
except // Если произошла ошибка- выводим её в Memo1
on E:Exception do Memo1.Lines.Add('Ошибка подключения! '+E.Message);
end; 
IdPOP31.Disconnect;       // Для отключения 
end;

Данная часть кода выполняет следующие действия:

  1. Передает введённые нами параметры с Edit1.. Edit4 в IdPOP31
  2. Подключается к серверу
  3. Если подключение прошло успешно - выводит в Memo1 количество сообщений, иначе выводит сообщение с ошибкой подключения.
  4. Отключаемся от сервера

Результат работы можно посмотреть на скриншотах ниже:

pop3 delphi
Рис.3. - Удачное подключение с выводом количества писем

mail почта delphi smtp

Рис.4. - Неудачное подключение с ошибкой

Этот вариант рассчитан для начинающих. Конечно можно включить фантазию и доработать программу. Добавив сохранение параметров в файл, возможность добавления много почтовых ящиков для проверки, возможность сворачивания в трей, вывод уведомлений  - когда есть новые сообщения и много чего другого. Если кому интересна данная тематика - с радостью продолжу.

Спасибо за внимание.

Ссылки по теме

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года