Задача. Дайте възможност на проверка на електронна поща, както и да добавите възможността да проверявате електронната си поща с помощта на SSL (Secure Sockets Layer - нивото на Secure Sockets Layer). Така се определят задачите, които ще се разшири на електронната поща, софтуер за сканиране:
- Добави SSL поддръжка за защитена връзка.
- Проверка на функционирането на писмото в gmail.com (тя използва SSL) и ukr.net (без кодиране)
Toolkit. Delphi XE, компоненти Indy v10, libeay32.dll Библиотеки и ssleay32.dll
решение:
Предишна част:
Е-мейл средства за сканиране Delphi - част 1
В първата част, която сме създали програма, която проверява пощата директно без подкрепата на криптиране. В тази част ние ще интегрира поддръжка за криптиране. Ние започваме да се приложи.
С цел да бъде в състояние да се използва е необходимо в папката на проекта, за да копирате двата файла и libeay32.dll ssleay32.dll SSL връзка. те вече са изпълнени функционалността, че имаме нужда. libeay32.dll и ssleay32.dll библиотека може да бъде изтеглена от тук.
Отваряне на проект, който е създаден в първата част. Отваряне на основната форма и да се премести в нея IdSSLIOHandlerSocketOpenSSL компонент (фиг. 1). Също така се движи под формата на няколко допълнителни проверки и да ги персонализирате според таблицата. 1.
Фигура 1. Избор на компонент с Tool Palette
Задайте следните опции:
Като резултат, ние получаваме следния формата на Фиг.2, Фиг. 3
Фиг. 2 Официален старт на програматапроцедура TfrmMain. SetupSSL;
започвам
ако chkUseSSL. Проверени тогава // ако опцията за използване на SSL
започвам
IdPOP3. IOHandler. = SSLHandler; // задаване на SSL манипулатор за да IdPOP3
IdPOP3. UseTLS. = UtUseImplicitTLS; // използва имплицитно TSL
// Задаване на типа на SSL
При cbSSLType. ItemIndex на
0. SSLHandler. SSLOptions. Метод. = SslvSSLv2;
1. SSLHandler. SSLOptions. Метод. = SslvSSLv23;
2. SSLHandler. SSLOptions. Метод. = SslvSSLv3;
3. SSLHandler. SSLOptions. Метод. = SslvTLSv1;
още
повишаване изключение. създавам # 40; "Изберете типа на SSL" # 41; ;
приключи;
край
още
започвам
IdPOP3. IOHandler. = Nil; // ако не използвате SSL - да всички по подразбиране
IdPOP3. UseTLS. = UtNoTLSSupport;
приключи;
приключи;
частен
...
функция CheckMail # 40; IP. TIdPOP3; Потребител. Pass. Водещ. низ; Port. цяло число # 41. String;
процедура SetupSSL;
обществен
За нашата процедура SetupSSL спечелил в съществуващия код - това е необходимо да се добавят призив към функция CheckMail че ние пише в първата част.
...
IP. Port. = Порт; // порт
SetupSSL; // настройка SSL връзка
IP. Свържете; // Connect
...
След това тече и проверка на работата.
Ние проверяваме пощата на gmail.com със следните настройки:
POP3: pop.gmail.com
Порт: 995
Фиг. 4 - Е-мейл сканиране gmail.com
Фиг. 5 - проверка на електронна поща ukr.net
PS. мейл програма за проверка в Делфи вече работи с SSL поддръжка. Има една несигурност. Програмата показва общия брой на писма, а не броят на нови. Ако имам време ще опиша как да проверите броя на новите съобщения.
libeay32.dll и ssleay32.dll библиотека може да бъде изтеглена от тук.
изходния код на програмата може да бъде изтеглен от GitHub
Свързани теми:
Добър вечер, моля те кажи ми постоянно грешка "Грешка при свързване! Не можа да се зареди SSL библиотека." На Как мога да го оправя?
Не си отивай. кълне в Delphi за IdPOP3.UseTLS: = utUseImplicitTLS;
Казва недекларирани идентификатор: UseTLS. Какво да се прави?
Две DLL изтеглени в папка с проекта.
Възможна използвате различна версия kompoentov версия, защото изглежда да е друг подходящ имот.
Свързани статии