在windows使用IMAP连接gmail邮箱成功通过并且取得了附件,但是在debian服务器上执行这样的代码却不成功,报错如下:本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
Warning: imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl}INBOX in /var/www/test.php on line 13 bool(false) Cannot connect to Gmail: Can't connect to imap.gmail.com,993: Connection timed out Notice: Unknown: Can't connect to imap.gmail.com,993: Connection timed out (errflg=1) in Unknown on line 0 Notice: Unknown: Can't connect to imap.gmail.com,993: Connection timed out (errflg=2) in Unknown on line 0本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
当然前提是我已经在gmail里设置了应用密码,开启了IMAP功能,通过这两天的调用摸索,我初步怀疑是gmail对调用的频率有控制,早上来公司后调用一次成功,但接着调用就出现上面的错误,隔了一段长时间后再调用又能成功一次。如果真的是频率的问题,那gmail这样的提示也太恶心了吧。也不直接提示用户频率过快,让开发的人怎么调。
关于这个问题,墙外也有很多讨论:https://groups.google.com/forum/#!topic/comp.lang.php/Emh543osfDM 。目前也没有找到确切的答案。但从我这几天的调用来看是这么一个情况。使用账号密码在服务器执行调用google的gmail邮箱(IMAP),gmail会因为不能识别服务器而将其阻止。这时我收到了一封提示邮件Sign-in attempt was blocked,但之后调用就再也没有提示了。调用就一直返回上面的错误。如下图:本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
Sign-in attempt was blocked:Someone just used your password to try to sign in to your account from a non-Google app. Google blocked them, but you should check what happened. Review your account activity to make sure no one else has access.点击:Check activity 进入到页面,google提供了选项比如YES it was me 和no之类,你即便点了YES it was me, google仍然会表示它会根据google自己的规则阻止这种调用。如下图:本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
同时推荐使用app password方式调用。后面我也对邮箱进行了设置并启用两步验证和app password,但在windows上调用gmail没有问题(因为本机上google可识别的设备),但在服务器上执行成功一次之后要过一段时间才能调用。就这点收获吧,后面用用再看。本文地址:http://www.04007.cn/article/809.html,未经许可,不得转载.
本文地址:http://www.04007.cn/article/809.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |