Работа с почтовыми серверами по протоколу POP3
POP3-CHECK: "hostname-or-IP" "pop3user" "password"
Возвращает количество сообщений в указанном почтовом ящике или FALSE (0), если ящик пуст или программе не удалось установить подключение по протоколу POP3.
Существует вариант этого слова с постфиксным расположением параметров:
S" hostname-or-ip" S" pop3user" S" password" POP3-CHECK
POP3-CONNECT ( a-host u1 a-name u2 a-pass u3 -- ior )
Устанавливает соединение с почтовым сервером по протоколу POP3. Принимает в качестве аргументов строки с именем cервера, именем пользователя и паролем пользователя и возвращает т. н. IOR (I/O operation result) - результат операции ввода-вывода, т. е. номер возможной ошибки. Если IOR = 0, то ошибки не произошло. Для отключения от почтового сервера используется слово POP3-QUIT.
Пример:
#( test_pop3_connect
NoActive
Action:
\ подключаемся к POP3 серверу
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ работаем с почтой
\ ...
\ отключаемся от POP3 сервера
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
После успешного подключения к серверу можно использовать следующие слова для управления вашей почтой:
Примеры:
#( test_pop3_connect1
NoActive
Action:
\ подключаемся к POP3 серверу
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ выводим в сообщении кол-во сообщений на сервере
MSG: "%POP3-STAT THROW%
\ сохраняем номера сообщений и их размер в файл c:\mail.txt
POP3-LIST S" c:\mail.txt" FWRITE
\ выводим текст самого последнего сообщения на консоль
POP3-STAT THROW
POP3-RETR THROW TYPE CR
\ отключаемся от POP3 сервера
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
#( test_pop3_connect2
NoActive
Action:
\ подключаемся к POP3 серверу
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ выводим номера сообщений и их размер на консоль
POP3-LIST THROW TYPE CR
\ отключаемся от POP3 сервера
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
#( test_pop3_connect3
NoActive
Action:
\ подключаемся к POP3 серверу
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ выводим номера сообщений и их размер на консоль
POP3-LIST THROW TYPE CR
\ получаем кол-во сообщений на сервере
POP3-STAT THROW ?DUP
IF
\ в цикле отображаем на консоли текст всех сообщений
1+ 1 DO I POP3-RETR THROW TYPE CR
\ удаляем каждое сообщение
I POP3-DELE THROW
LOOP
THEN
\ отключаемся от POP3 сервера
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
POP3-GET ( a u a1 u1 a2 u2 u3 -- a u )
Это постфиксное слово получает с POP3-сервера указанное сообщение (по его номеру) и оставлят на стеке строку с текстом сообщения. Принимает в качестве аргумента имя (или IP-адрес) POP3-сервера, имя пользователя, пароль пользователя и номер сообщения, которое нужно получить.
Пример:
#( test_get_mail
NoActive
Action:
\ получаем письмо #10
S" mail.server.com" S" user" S" password" 10 POP3-GET
\ отображаем текст на консоли
TYPE CR
)#
#( test_get_mail1
NoActive
Action:
\ получаем письмо #5
S" mail.server.com" S" user" S" password" 5 POP3-GET
\ сохраняем текст в файл 'c:\get.mail'
S" c:\get.mail" FWRITE
)#
#( test_get_mail2
NoActive
\ получаем самое последнее письмо на сервере
0 VALUE number_of_messages
Action:
\ узнаем количество сообщений на сервере
S" mail.server.com" S" user" S" password" POP3-CHECK
\ сохраняем число сообщений в VALUE-переменную
TO number_of_messages
number_of_messages 0<>
IF
\ получаем самое последнее сообщение
S" mail.server.com" S" user" S" password" number_of_messages POP3-GET
\ сохраняем текст в файл 'c:\get.mail'
S" c:\get.mail" FWRITE
THEN
)#
![]()