我有一些 php 代码,我正尝试使用它通过 imap 连接到 gmail。代码如下:
$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]:无法在 /var/www/PHP/EmailScript.php 第 14 行打开流 {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX 登录中止
我不明白哪里出了问题!!我听说过有人遇到 SSL 错误,但这似乎不是其中之一。请帮帮我吧!!!!!
编辑:当尝试通过 telnet-ssl 连接到 imap.gmail.com 时,我得到以下输出:
尝试 74.125.155.109... 连接到 gmail-imap.l.google.com。转义字符为“^]”。
并没有其他事情发生
答案1
使用此命令启动会话....
openssl s_client -connect imap.gmail.com:993
如果我这样做我会得到这个......
* OK Gimap ready for requests from <ip_address> 16if41262875qci.66
答案2
如果您直接通过 telnet 连接到 993,则它应该无法正常工作,因为 telnet 未启用 SSL。请使用类似telnet-ssl
或stunnel
之类的命令来确保您通过 SSL 连接到 993。完成后,尝试查看是否收到欢迎消息,然后尝试几个 IMAP 命令以查看它们是否有效。
答案3
首先确保您可以从机器连接到 IMAP 服务器:
telnet imap.gmail.com 993
如果连接成功,则使用 phpinfo() 检查 php-imap 是否安装了 SSL,你会看到类似这样的信息
imap
IMAP c-Client Version 2004
SSL Support enabled
Kerberos Support enabled
类似主题中的其他想法堆栈溢出