Содержание
CreatePOP3Connection(Host : String; SSL : Boolean; Login, Password : String) : POP3Connection
Подключиться к POP3 серверу
Функция создает подключение к POP3 серверу и возвращает обьект типа POP3Connection. С помощью этого обьекта программист может взаимодействовать с сервером: получать список писем, получать и удалять письма с сервера.
Аргумент Host содержит IP-ардес или доменное имя сервера, а так же может содержать TCP-порт через :. Если SSL=False, то используется не шифрованное соединение (если в аргументе Host не указан порт, то используется порт 110. Если аргумент SSL=True, то используется шифрованное SSL-соединение (если не указан порт, то используется порт 995). Аргументы Login и Password содержат логин и пароль учетной записи почтового сервера.
Обьект POP3Connection содержит методы:
Посылает ничего не делающую команду серверу. Нужно для предотвращения разрыва соединения по таймауту. | |
Возвращает количество писем на сервере. | |
Возвращает размер письма в байтах (нумерация начинается с 0). | |
Загружает письмо с сервера (нумерация начинается с 0). | |
Отключает удаление загруженных командой RETR письм, после отключения от сервера. (Так-же после выполнения RSET, платформа не посылает команду QUIT почтовому серверу.) |
Письма пришедшие после подключения к серверу невидны.
Не рекомендуется выполнять команду RETR, после выполнения команды RSET, так как различные почтовые сервера могут удалять или не удалять письма из ящика. Без выполнения команды RSET, полученные письма будут удалены с сервера.
Пример:
Procedure OnCreate; Var C : POP3Connection; TotalSize, I, N : Integer; S, Mail, From, Subject : String; Begin // Подключение к почтовому серверу (POP3) C := CreatePOP3Connection('pop.gmail.com', True, 'мой логин', 'мой пароль'); // Получение кол-ва писем N := C.Stat; // Получение размера писем For I:=0 To N-1 Do TotalSize := TotalSize + C.List(I); // Вывод на экран Alert('В почтовом ящике писем: ' + IntToStr(N) + Chr(10) + 'Общий размер писем: ' + IntToStr(TotalSize), 'Информация'); For I:=0 To N-1 Do Begin // Получение письма Mail := C.Retr(I); // Вывод на экран Alert('Письмо '+IntToStr(I)+Chr(10)+ 'От: '+GetMailHeaderItem(Mail, 'From')+Chr(10)+ 'Тема: '+GetMailHeaderItem(Mail, 'Subject')+Chr(10)+ '-----------------'+Chr(10)+ GetMailBody(Mail, ''), 'Письмо'); End; // Не удалять письма из ящика, иначе они автоматически удаляются C.Rset; End;