【发布时间】:2015-03-19 00:04:33
【问题描述】:
我有代码:
$f = fsockopen('mail.myserver.com', 110); //POP3
echo fgets($f, 4096) . '<hr>';
fputs($f, "USER login@myserver.com\r\n");
echo fgets($f) . '<br>';
fputs($f, "PASS mypass\r\n");
echo fgets($f) . '<br>';
fputs($f, "LIST\r\n");
echo fgets($f) . '<br>';
fputs($f, "RETR 1\r\n");
到目前为止一切顺利,但是我有一个循环来接收整个消息:
while (!feof($f))
{
echo fgets($f, 1280);
}
因为脚本会等待超时启动,所以它永远不会检测到 EOF。
如何检测 EOF 并在循环超时之前中断循环?如果我使用 telnet,那么一切正常 — 不知何故,telnet 客户端知道何时停止接收。
【问题讨论】:
-
您可以随时使用 (php.net/manual/en/book.imap.php)。
-
@PawełMalisak:我不能,这是相当罕见的扩展,在我的服务器上不可用。
标签: php sockets pop3 fsockopen