2013-01-05 3 views
0

저는 매우 간단한 PHP 클래스 emailtodb를 사용하여 이메일을 mysql 데이터베이스로 가져옵니다. 로컬 서버의 전자 메일 계정을 검사 할 때 모든 것이 완벽하게 작동합니다. 문제는 연결 스크립트를 가져 와서 다른 서버에 넣었습니다. 이제는 연결할 수 없습니다.etodb 클래스를 사용하는 PHP Imap_open은 서버 하나에서 작동하지만 다른 서버에서는 작동하지 않습니다.

server1.com -accessing-> [email protected] = works perfect 
server2.com -accessing-> [email protected] = Warning: imap_open() [function.imap-open]: Couldn't open stream 

이 실제로이 기능에 간다

$mysql_pconnect = mysql_pconnect($cfg["db_host"], $cfg["db_user"], $cfg["db_pass"]); 
if(!$mysql_pconnect){echo "Connection Failed"; exit; } 
$db = mysql_select_db($cfg["db_name"], $mysql_pconnect); 
if(!$db){echo"DB Select Failed"; exit;} 

$edb = new EMAIL_TO_DB(); 
$edb->connect('mail.MYSERVER.com', '/pop3:110/notls', $email, $pass); 
$edb->do_action(); 

실제로 (내가 믿는)

연결하기 위해 서버에 연결하는 데 사용하여 코드 메신저입니다 : 말하려고 어떤 메신저 희망 요약하면
function connect($host, $port, $login, $pass){ 

$this->IMAP_host = $host; 
$this->IMAP_login = $login; 

$this->link = imap_open("{". $host . $port."}INBOX", $login, $pass); 
if($this->link) { 
$this->status = 'Connected'; 
} else { 
$this->error[] = imap_last_error(); 
$this->status = 'Not connected'; 
} 
} 

마지막으로 나는 두 서버 사이에 큰 차이점이 있다고 말하고 싶습니다. 새로운 서버는 SSL을 가지고 있는데, 첫 번째 서버는 HTTPS에서 HTTP 로의 새 메일 연결이 아니라 그것이 그 일과 관련이 있는지 나는 모른다.

+1

서버에서 해당 연결로 텔넷으로 연결할 수 있습니까? 방화벽 문제인 것처럼 보입니다. 또한 자세한 정보가있을 수 있으므로 아파치 오류 로그를 확인하십시오. – Neo

답변

0

오늘 저녁에이 스크립트로 놀고있었습니다. 이런 식으로 해봤습니까? (SSL을 사용하여 POP3에서 IMAP로 전환한다고 가정)

$ edb-> connect ('mail.server.com:993', '/ imap/ssl/novalidate-cert', [email protected] ','password ');

내 PHP 환경에서 PHP가 IMAP-SSL (phpinfo (-)의 --with-imap-ssl)을 준수하지 않아서 초기 문제가 발생한다는 것을 발견했습니다.