我正在尝试使用在 Apache 中运行的 PHP 通过 IMAP 连接到 Gmail。这是在 Ubuntu 9.04 系统上。我遇到了某种 PHP 配置问题,导致它无法正常工作。首先,这是我为 PHP 设置 IMAP 所做的:
sudo apt-get install libc-client2007b libc-client2007b-dev
sudo apt-get install php5-imap
sudo /etc/init.d/apache2 start
当我运行 phpinfo() 时,我得到以下 imap 值:
IMAP c-Client Version: 2004
SSL Support: enabled
Kerberos Support: enabled
这是我的示例代码:
<?php
$connect_to = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$user = 'my gmail address';
$password = 'my gmail password';
$connection = imap_open($connect_to, $user, $password)
or die("Can't connect to '$connect_to': " . imap_last_error());
imap_close($connection);
?>
当我执行此代码时,我得到以下输出:
Warning: imap_open() [function.imap-open]: Couldn't open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX in /var/www/clint/gmail/gmail.php on line 10
Can't connect to '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX': TLS/SSL failure for imap.gmail.com: SSL context failed
请注意,我可以从这台计算机远程登录到 imap.gmail.com:993。我还可以通过 IMAP 将 Evolution(邮件阅读器)连接到 Gmail 并毫无问题地获取邮件。所以,我认为这不是防火墙问题。我很确定我在 PHP 中有一些设置不正确。
有任何想法吗?