Working with mail using POP3 protocol
POP3-CHECK: "hostname-or-IP" "pop3user" "password"
Returns the number of messages available in specified mailbox. Returns FALSE (0) if a specified mailbox is empty or not accessible using POP3 protocol.
There also exists a postfix version of this word:
S" hostname-or-ip" S" pop3user" S" password" POP3-CHECK
POP3-CONNECT ( a-host u1 a-name u2 a-pass u3 -- ior )
This postfix word establishes a connection with a POP3 mail server. Tthree string arguments are passed to the POP3-CONNECT word: server name, user name and password. The word POP3-CONNECT returns a result of an I/O operation (IOR). This is a flag value that conveys information about the type of failure, if any, from an operation with I/O device. There was no error if IOR = 0. To disconnect from the mail server use a special POP3-QUIT word.
Example:
#( test_pop3_connect
NoActive
Action:
\ connecting to the POP3 server
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ doing smth useful
\ ...
\ disconnecting from POP3 server
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
After you have successfully establish a connection to the POP3 mail server, you can use the following words to manage your mail:
Examples:
#( test_pop3_connect1
NoActive
Action:
\ connecting to the POP3 server
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ displaying the count of messages on a POP3 server
MSG: "%POP3-STAT THROW%
\ saving the numbers and size of all the messages to the c:\mail.txt file
POP3-LIST S" c:\mail.txt" FWRITE
\ displaying the text of the latest message on a console
POP3-STAT THROW
POP3-RETR THROW TYPE CR
\ disconnecting from POP3 server
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
#( test_pop3_connect2
NoActive
Action:
\ connecting to the POP3 server
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ displaying the numbers and size of all the messages on the console
POP3-LIST THROW TYPE CR
\ disconnecting from POP3 server
POP3-QUIT THROW
ELSE
ERR-MSG: "Error when connecting to the POP3 server"
THEN
)#
#( test_pop3_connect3
NoActive
Action:
\ connecting to the POP3 server
S" hostname" S" username" S" password" POP3-CONNECT 0=
IF
\ displaying the numbers and size of all the messages on the console
POP3-LIST THROW TYPE CR
\ getting the number of the messages on a POP3 server
POP3-STAT THROW ?DUP
IF
\ displaying the text of every message on a console in a loop
1+ 1 DO I POP3-RETR THROW TYPE CR
\ deleting every message in a loop
I POP3-DELE THROW
LOOP
THEN
\ disconnecting from POP3 server
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 )
This postfix word retreives the specified message from the POP3 mail server (by it's number) and returns a string containing the full text of the specified message (including the message header). There are four argements, which are passed to the POP3-GET word: three strings - he mail server name (or IP-address), user name and password and one number - the number of the message to retrieve.
Example:
#( test_get_mail
NoActive
Action:
\ getting the message #10
S" mail.server.com" S" user" S" password" 10 POP3-GET
\ printing the message text to console
TYPE CR
)#
#( test_get_mail1
NoActive
Action:
\ getting the message #5
S" mail.server.com" S" user" S" password" 5 POP3-GET
\ saving it to the file 'c:\get.mail'
S" c:\get.mail" FWRITE
)#
#( test_get_mail2
NoActive
\ getting the latest message
0 VALUE number_of_messages
Action:
\ getting the number of messages
S" mail.server.com" S" user" S" password" POP3-CHECK
\ saving the number of messages to VALUE-variable
TO number_of_messages
number_of_messages 0<>
IF
\ getting the latest message
S" mail.server.com" S" user" S" password" number_of_messages POP3-GET
\ saving it to the file 'c:\get.mail'
S" c:\get.mail" FWRITE
THEN
)#
![]()