PHP 无法通过 IMAP 连接到 GMail

PHP 无法通过 IMAP 连接到 GMail

我有一些 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-sslstunnel之类的命令来确保您通过 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 

类似主题中的其他想法堆栈溢出

相关内容