Google告知G Suite帐户所有者,从2021年2月15日起,Gmail和其他产品中的授权将只能通过OAuth进行。对于IMAP授权,邀请开发人员使用一种称为
SASL XOAUTH2的授权方法。 但是事实是,标准的PHP IMAP扩展名(即
imap_open函数)无法使用Google提出的算法登录。
即 如果您在项目中使用标准的PHP IMAP扩展,则G Suite帐户的所有者很快将无法使用您的应用程序。 随着时间的流逝,Google也可能不会“照料”连接到常规Gmail帐户,也不会将IMAP身份验证转移到OAuth。
作为参考,仅在GitHub上就有超过
12.1万个使用标准PHP IMAP扩展的脚本和项目。
有什么可能的解决方案- 在您的应用程序中通知它与G Suite Gmail帐户不兼容,并建议您通过其他服务开始发送邮件。
- 将其项目转换为使用Zend Mail库,该库可以使用Google提出的算法进行授权。 另一件事是,很少有人会乐于从PHP IMAP的快速本机扩展切换到第三方库。
- 尝试说服Google接受IMAP密码中的OAuth令牌: github.com/google/gmail-oauth2-tools/issues/18 。 相当简单且合乎逻辑的解决方案。 然后,所有可用的IMAP库(包括PHP IMAP)将继续运行,并且能够通过在IMAP密码中传递OAuth令牌来接收来自Gmail的邮件。
UPD 1第四个建议出现在注释中,
在这里 -等待PHP IMAP扩展中实现IMAP OAuth身份验证。 但这不是那么简单。
这里和
这里是关于PHP.net
的讨论
UPD 2没有将OAuth添加到PHP IMAP扩展的选项:
news-web.php.net/php.internals/107950UPD 3有兴趣的人被
邀请参加围绕Zend Mail的包装器的开发,该包装器支持XOUATH2,并提供类似于PHP IMAP的一组功能:
github.com/freescout-helpdesk/ximap