Вот решил написать класс для работы с почтовым ящиком. В итоге вот такой код получился.
class(pop3,socket)
{
constructor()
{
%ln = "0"
%ps ="0"
%st = "0"
}
connectEvent()
{
echo Connected to $$->$remoteIp() $$->$remotePort()
}
disconnectEvent()
{
echo Disconnected
$$->$close()
}
connectFailedEvent()
{
echo Connect failed ($0-)
$$->$close()
}
setUser(<$0 = Login>)
{
$$->%setuser = $0
}
setPass(<$0 = Pass>)
{
$$->%setpass = $0
}
user()
{
return $$->%setuser
}
pass()
{
return $$->%setpass
}
dataAvailableEvent
{
%data = $$->$read()
%data = $str.replace($str.strip(%data),"",$cr)
echo %data;
if(!$str.grep("-ERR",%data))
{
if((%ln == "0") & (%pass == "0"))
{
$$->$write("USER "$$->%setuser\r\n)
%ln = "1"
}
if((%ln == "1") & (%ps == "0"))
{
$$->$write("PASS "$$->%setpass\r\n)
%ps ="1"
}
if((%ln == "1") & (%ps == "1") & (%st == "0"))
{
$$->$write("STAT"\r\n)
%st = "1"
}
}
else
{
$$->$write("QUIT"\r\n)
$$->$close()
}
}
}
Вроде всё так нормально, соединение и проверка наличия почты идёт. Но не могу понять откуда лезет лишняя команда.
Вот вывод в консоли.
Connected to 194.67.23.102 110
+OK
+OK Password required for user ua6hdw
+OK ua6hdw@mail.ru maildrop has 0 messages (0 octets)
+OK 0 0
-ERR Unknown command: "user"