我有一些我试图用imap连接到gmail的php代码。 代码如下:
$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX'; $tmp_username = 'username'; $tmp_password = 'password'; $inbox = imap_open($hostname, $username, $password) or die(imap_last_error());
我每次尝试连接时都会得到这个错误输出:
警告:imap_open()[function.imap-open]:无法在第14行的/var/www/PHP/EmailScript.php中打开stream{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOXlogin中止
我不明白什么是错的! 我听说有人有SSL错误,但这似乎不是其中之一。 请请帮助我!!!!!
编辑:当试图通过telnet-ssl连接到imap.gmail.com我得到以下输出:
尝试74.125.155.109 …已连接到gmail-imap.l.google.com。 转义字符是'^]'。
另外还有其他的事情发生
如果您直接telnet到993,则它不能正常工作,因为telnet不在SSL上。 使用类似telnet-ssl
或stunnel
东西,以确保您通过SSL连接到993。 一旦完成,然后尝试查看是否收到欢迎消息,然后尝试几个IMAP命令以查看它们是否工作。
使用此命令启动会话….
openssl s_client -connect imap.gmail.com:993
如果我这样做,我得到这个…
* OK Gimap ready for requests from <ip_address> 16if41262875qci.66
首先确保您可以从机器连接到IMAP服务器:
telnet imap.gmail.com 993
如果连接工作,而不是检查是否使用php-imap安装SSL,使用phpinfo()你必须看到这样的东西
imap IMAP c-Client Version 2004 SSL Support enabled Kerberos Support enabled
在StackOverflow中的类似线程中的其他想法