0

我正在使用一个相当简单的 php 类 emailtodb 将电子邮件导入 mysql 数据库。当我使用它检查本地服务器上的电子邮件帐户时,一切都按预期完美运行。问题是我把连接脚本放在另一台服务器上,现在它无法连接。希望总结一下我想说的:

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';
}
}

最后我想说两台服务器之间有一个主要区别,新服务器有一个 SSL,而第一个没有,所以新的邮件连接是从 HTTPS 到 HTTP,但我不知道这是否与它有关。

4

1 回答 1

0

今天晚上我正在玩这个脚本。你有没有尝试过这样的事情?(假设您使用 SSL 从 POP3 切换到 IMAP)

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

我发现我的 PHP 环境没有使 PHP 符合 IMAP-SSL(--with-imap-ssl in phpinfo()),所以这也给我带来了一些早期问题。

于 2013-01-06T07:08:29.343 回答