0

メールを mysql データベースにインポートするために、かなり単純な php クラス emailtodb を使用しています。ローカル サーバー上の電子メール アカウントをチェックするために使用すると、すべてが期待どおりに完全に機能します。問題は、接続スクリプトを取得して別のサーバーに配置したところ、接続できなくなったことです。うまくいけば、私が言おうとしていることを要約すると:

server1.com -accessing-> myemail@server1.com = works perfect
server2.com -accessing-> myemail@server1.com = 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';
}
}

最後に、2 つのサーバーには大きな違いが 1 つあります。新しいサーバーには SSL があり、最初のサーバーには SSL がないため、新しいメール接続は HTTPS から HTTP に移行しますが、それが何か関係があるかどうかはわかりません。

4

1 に答える 1

0

私はちょうど今晩このスクリプトで遊んでいました。このようなことを試しましたか?(SSLを使用してPOP3からIMAPに切り替える場合)

$ edb-> connect('mail.server.com:993'、'/imap/ssl/novalidate-cert'、'myname@server.com'、'password');

私のPHP環境ではPHPがIMAP-SSL(phpinfo()の--with-imap-ssl)に準拠していないことがわかりました。そのため、私にとっても初期の問題が発生していました。

于 2013-01-06T07:08:29.343 に答える