我可以使用PHP中的imap函数和命令行中的openssl进行通信,并希望尝试使用PHP中的fsockopen()函数。
我的代码是:
问题在于我只能得到服务器返回的第一个响应,存储在$out中。
我希望在我将登录凭据fputs到服务器后,能够在$out中看到服务器的回复。我能够使用openssl从命令行查看我的电子邮件,因此我认为问题不在于我的imap处理方式。也许我对文件流有一些基本的误解。
谢谢。
<?php
$sock=fsockopen('ssl://imap.gmail.com', '993',$errno, $errstr);
if(!$sock){
echo $errstr;
}
else{
fputs($sock,"a LOGIN user@gmail.com password\r\n");
$out=fgets($sock,2000);
fclose($sock);
echo $out;
}
?>
问题在于我只能得到服务器返回的第一个响应,存储在$out中。
* OK Gimap ready for requests from **.***.63.101 jj5if832612pbc.164
当我用while循环替换fgets的代码时,它一直在加载,最终超时没有显示任何内容。
<?php
$sock=fsockopen('ssl://imap.gmail.com', '993', $errno, $errstr);
if(!$sock){
echo $errstr;
}
else{
fputs($sock,"a LOGIN user@gmail.com password\r\n");
while(!feof($sock)){
$out.=fgets($sock,2000);
}
fclose($sock);
echo $out;
}
?>
我希望在我将登录凭据fputs到服务器后,能够在$out中看到服务器的回复。我能够使用openssl从命令行查看我的电子邮件,因此我认为问题不在于我的imap处理方式。也许我对文件流有一些基本的误解。
谢谢。