【发布时间】:2020-01-27 14:40:52
【问题描述】:
前言:
我已经阅读了几个 StackOverflow 线程,并且几乎尝试了所有这些线程。
- 我正在尝试通过 PHP 设置 IMAP 以使用 Clivern/Imap 获取一些电子邮件
- 我也尝试过 David Walsh 的帖子:Retrieve Your Gmail Emails Using PHP and IMAP
我做过的事情:
- 同时使用 GSuite 和 Gmail 帐户进行了尝试;两者都启用了 IMAP。
- 允许'Less Secure Apps' to connect(即使我在有效的 SSL 下运行)。 OpenSSL is installed (OpenSSL 1.0.2o 2018 年 3 月 27 日)
- 我已经完成Display Unlock Captcha
- 我已尝试在多个本地/托管环境中进行测试
问题:
- 当我使用 GSuite 时连接正常;使用 Gmail 时失败(我已多次检查电子邮件/密码并并排比较 IMAP 设置......它们都可以)
- 尝试通过 Clivern 库检查 Gmail 时遇到的错误是:
Warning --> imap_open(): Couldn't open stream {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX - 尝试通过 PHP 函数检查 Gmail 时遇到的错误是:
Can not authenticate to IMAP server: [AUTHENTICATIONFAILED] Invalid credentials (Failure)
我的代码:
// Using Library
use Clivern\Imap\Core\Connection;
use Clivern\Imap\MailBox;
$imap_email = 'my_email@gmail.com';
$imap_password = 'my_password';
$connection = new Connection(
"imap.gmail.com",
"993",
$imap_email,
$imap_password,
"/ssl", // I've also tried /ssl/novalidate-cert
"INBOX"
);
$connection->connect();
$mailbox = new MailBox($connection);
$folders = $mailbox->getFolders();
echo var_dump($folders);
$connection->disconnect();
// Using PHP functions
$hostname = '{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX';
$username = $imap_email;
$password = $imap_password;
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error());
我的问题:
还有什么可能导致 Gmail 无法通过身份验证?
...我特别困惑为什么 GSuite 可以工作而 Gmail 不能。
【问题讨论】:
标签: php gmail-imap