メールを 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 に移行しますが、それが何か関係があるかどうかはわかりません。