连接到Gmail IMAP PHP“;不能';“开放式溪流”;

连接到Gmail IMAP PHP“;不能';“开放式溪流”;,php,gmail,imap,shell-exec,Php,Gmail,Imap,Shell Exec,有很多人有类似的问题,但没有人回答他们的问题。我使用所有正确的信息在PHP中启用了IMAP。我看不出我错在哪里 这是我的密码: $hostname = '{imap.gmail.com:995/imap/ssl/novalidate-cert}'; $username = 'emailaddress@gmail.com'; $password = 'password'; $inbox = imap_open($hostname,$username,$password) or die('Can

有很多人有类似的问题,但没有人回答他们的问题。我使用所有正确的信息在PHP中启用了IMAP。我看不出我错在哪里

这是我的密码:

$hostname = '{imap.gmail.com:995/imap/ssl/novalidate-cert}'; 
$username = 'emailaddress@gmail.com'; $password = 'password'; 
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());

print_r(imap_errors());
不返回除以下错误以外的任何错误:

警告:imap_open()[function.imap open]:无法打开流 {imap.gmail.com:995/imap/ssl/novalidate cert}in /第6行的home/a8066360/public_html/test/imap.php

无法连接到Gmail:无法连接到Gmail-imap.l.google.com,995: 连接超时

我注意到如果我把单引号改为` 出于安全原因,已禁用shell_exec()


请帮忙

我认为Gmail的IMAP只能在端口993上访问


$hostname=“{imap.gmail.com:993/imap/ssl/novalidate cert}”

您需要端口993,即SSLIMAP端口


端口995是SSLPOP3端口。

我遇到了相同的错误,并找到了不同的解决方案。我已将调试信息添加到主机:

"{imap.gmail.com:993/debug/imap/ssl/novalidate-cert}INBOX"; 
当我阅读php错误日志时,我发现

Unknown: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure) (errflg=1) in Unknown on line 0
打开链接,然后按照说明操作。寻找

您的应用可能不支持最新的安全标准。试着改变 一些设置允许不太安全的应用程序访问您的帐户

单击链接并启用不太安全的应用程序访问


然后它对我有效。

您可以设置两步身份验证,然后分配一个应用程序密码用于您的请求(只需用为应用程序提供的密码替换您的密码,您的正常密码不会更改)


这将有助于您的脚本在任何主机上运行,而不会被google阻止(由于登录位置的更改)。

如果未应用SSL,您可以通过提供
notls
参数并连接服务器来尝试以下代码

$hostname = '{imap.YOUR_DOMAIN.com:143/imap/notls}INBOX'; 
$username = 'YOUR_USERNAME';
$password = 'YOUR_PASSWORD';

$inbox = imap_open($hostname, $username, $password) or die('Cannot connect to Gmail: ' . imap_last_error());

若它不会抛出任何错误,这意味着您已成功连接到服务器。我希望这会有所帮助。

您必须启用Gmail帐户的给定选项才能连接。

我也有同样的问题,我通过解锁谷歌验证码解决了这个问题

登录Google帐户时转到以下URL:

然后点击按钮

当然,您已经在;)的“安全”选项卡中激活了对不太安全的应用程序的访问


现在应该可以了

最后一部分很不连贯,不是吗“和”是两个非常不同的东西。@deceze-我认为它们是,仅用于字符串
(单引号)和
(双引号)是允许的。我是php的新手,但我在下面的教程中看到其他人以同样的方式使用这些大头钉。我有一个cron作业,每5分钟访问我的gmail帐户一次以提取电子邮件。我大约每3天收到一次此错误。在我的情况下,似乎gmail的结尾出现了问题。这与我在上面发布的错误完全相同。相同的行和所有内容。不同的端口。警告:imap_open()[function.imap open]:无法打开流{imap.gmail.com:993/imap/ssl/novalidate cert}在第6行的/home/a8066360/public_html/test/imap.php中无法连接到Gmail:无法连接到Gmail imap.l.google.com,993:连接超时您可能被防火墙攻击?从该系统中,您可以连接到imap.google.com吗?尝试
telnet imap.google.com 993
。您将无法使用它(因为它是SSL),但您应该能够看到连接是否成功。太好了!启用不太安全的应用对我来说很有效,谢谢,节省了一些时间。我在imap_open上遇到了以下错误:“登录失败太多了”(“{imap.gmail.com:993/imap/ssl/novalidate cert}收件箱,$username,$password”);