-1

我试图imap_open()在我的服务器上运行,但它给了我这个错误。

警告:imap_open():无法在第 55 行的 /home/bestinsaudi2/public_html/mailbox.php 中打开流 {imap.gmail.com:993/imap/ssl}INBOX 无法连接到 Gmail:无法对​​ IMAP 服务器进行身份验证: [ALERT] 请通过您的网络浏览器登录:https: //support.google.com/mail/acco

我在我使用的 gmail 帐户中启用了 imap。我还启用了不太安全的应用程序。我从 david walsh 复制了代码。他的凭据给出了这个错误。

警告:imap_open():无法在第 55 行的 /home/bestinsaudi2/public_html/mailbox.php 中打开流 {imap.gmail.com:993/imap/ssl}INBOX 无法连接到 Gmail:无法对​​ IMAP 服务器进行身份验证:[AUTHENTICATIONFAILED] 凭据无效(失败)

我正在用我自己的凭据写下我正在使用的代码。

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'myemail@gmail.com';
$password = 'mypassword';

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

这是我不使用 wamp 或 xamp 服务器的另一件事,我正在使用 ipower。我发现在某个地方运行命令,比如$ composer require secit-pl/imap-bundle 它令人困惑。如何以及在哪里运行它,我的代码是否有必要?我还必须为此下载任何库吗?还是应该采取一些额外的步骤?

4

2 回答 2

1

您可能正在为“不太安全的应用程序”寻找 gmail 设置:https: //support.google.com/accounts/answer/6010255?hl=en

这就是为什么它要求您使用浏览器登录。

正确设置并启用安全性较低的应用程序后,这应该可以很好地工作,只需使用我自己的帐户进行检查即可。

编辑:是否已启用安全应用程序,您可能需要创建应用程序密码: https ://support.google.com/mail/answer/185833?hl=en 并将您的凭据更改为:

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'email@gmail.com';
$password = 'app password here, not your gmail password';

EDIT2:应用密码功能需要启用两步验证

于 2018-07-25T09:20:36.763 回答
1

如果启用了不太安全的应用程序,并且应用程序密码不起作用或不需要,则可能是谷歌发现您的 imap 使用的 IP 地址可疑并阻止了它。

从浏览器登录该帐户并检查主题为“关键安全警报”的电子邮件。电子邮件上的日期应该与 imap 停止工作的时间差不多。如果您找到这样的电子邮件,它应该说明登录尝试已被阻止,并有一个大按钮显示“检查活动”。当您单击该按钮时,它会询问它阻止的登录是否真的来自您。表明它是,并且您应该能够从该 IP 再次使用 imap 登录。

如果您或其他人已经表明是或不是他们,则可以选择更改您的答案。

当谷歌决定这样做时,它只发送一封电子邮件。因此,如果已经过了几天,那封电子邮件可能会被埋在收件箱中。对于来自该 IP 的每个被阻止的登录,它不会重新发送。

于 2020-02-21T18:44:10.453 回答