【发布时间】:2016-11-04 12:28:12
【问题描述】:
<?php
set_time_limit(0);
ignore_user_abort(true);
ini_set('max_execution_time', 0);
// 207.46.10.10:993 hotmail imap server
$s = "\r\n";
$proxy = '13.89.36.103'; // proxy
$port =53;
$fp = fsockopen($proxy, $port);
//socket_set_timeout($fp, 10, 0);
fputs($fp, "CONNECT 207.46.10.10:993 HTTP/1.1".$s.$s);
fputs($fp, "n1 login user@hotmail.com userpassword".$s);
fputs($fp, "n2 select Inbox".$s);
fputs($fp, "n3 UID FETCH 100289 BODY[]".$s);
fputs($fp, "n4 LOGOUT".$s.$s);
while(!feof($fp)){
$line = fgets($fp, 4000);
echo $line."\n";
}
fclose($fp);
?>
是否可以使用代理连接从使用 PHP 的 imap 服务器读取邮件
没有代理也能正常工作
请如果有人可以帮助我,我不想使用 curl
【问题讨论】:
-
您需要在 CONNECT 之后启动一个新的 SSL 通信层。另外,您是否在端口 53 上运行 HTTP 代理?
-
您似乎还指定了两次代理端口。
-
@Max 这不是我的代理它只是公共代理,您可以在 CONNECT 之后提供有关 ssl 层的更多详细信息,我确定我不需要它,因为我使用代理而不是直接连接到 imap 服务器
-
端口 993 是安全 imap:代理不会为您提供安全保护。在您发送 connect 和 200 响应后,您需要自己协商 SSL。顺便说一句,这就是 https 在代理上的工作方式:这是代理无法窥探您的数据。
-
@Max 我认为你是对的我在 smtp 服务器中测试它,它工作得很好,问题是 imap 连接中的 ssl 层我应该弄清楚如何让代理做 ssl 连接到 imap 服务器。
标签: php login proxy imap fsockopen