Работа с почтовыми серверами по протоколу 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 )#