【发布时间】:2011-02-21 14:35:31
【问题描述】:
我正在构建一个类似 webmail 客户端的应用程序,但在通过我们心爱的 corp 代理连接到 POP3 时遇到问题。
由于客户的要求,我有义务使用套接字与他们的 POP3 服务器通信(他们主动指定这是强制性的,他们还解释说他们在应用服务器和 POP 之间有一个代理)所以除了让我能够工作这是我唯一的选择。
有人知道怎么做吗?
更新添加:
这是我的套接字处理程序:
<?php
class Socket {
protected $handle = null;
protected static $status = null;
public function __construct($server, $port){
if(!$this->connect($server, $port)){
throw new UnexpectedValueException("Server $server in port $port unreachable.");
}
}
public static function getStatus(){
return self::$status;
}
public function write($string){
fputs($this->handle, $string);
return $this;
}
public function read($lines = 1){
$lines = abs((int)$lines);//people can be morons
for($i = 0; $i < $lines; $i++){
$response []= $this->getLine();
}
if($lines==1){
$response = $response[0];
}
return $response;
}
public function connect($server, $port){
$errNo = 0;
$handle = fsockopen($server, $port);
if(!$handle){
return false;
}
$this->handle = $handle;
return $this;
}
public function disconnect(){
if(gettype($this->handle)=='resource'){
fclose($this->handle);
}
}
public function __destruct(){
$this->disconnect();
}
protected function getLine(){
return fgets($this->handle);
}
}
我是这样使用它的:
$plug = new Socket('mx.mailserver.com',110);
$plug->write("USER $username\n")->read();
$could = $plug->write("PASS $password\n")->read();
if(strpos($could,'+OK')!==false){
$mails = $plug->write("STAT\n");
}
现在我们的代理不让我出去;我想知道如何恢复。
【问题讨论】:
-
你到底尝试了什么?尝试发布您的代码。你到底有什么问题?