imap php not working



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

警告:imap_open((:无法打开第55行/home/bestinsaudi2/public_html/mailbox.php中的流{imap.gmail.com:993/imap/ssl}INBOX无法连接到Gmail:无法验证IMAP服务器:[提醒]请通过web浏览器登录: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或example服务器,我使用的是ipower。我发现在某个地方运行类似$ composer require secit-pl/imap-bundle的命令这很令人困惑。如何以及在哪里运行它?它对我的代码有必要吗?我还需要为此下载任何库吗?还是应该采取一些额外的步骤?

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

从浏览器登录该帐户,并检查来自的主题为"严重安全警报"的电子邮件。电子邮件上的日期应该与imap停止工作的时间大致相同。如果你发现这样一封电子邮件,它应该说明登录尝试被阻止,并有一个大按钮,上面写着"检查活动"。当你点击按钮时,它会询问被阻止的登录是否真的来自你。表明它是,并且您应该能够从该IP再次使用imap登录。

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

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

您可能正在寻找名为"不太安全的应用程序"的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';

编辑2:应用程序密码功能需要启用两步验证

最新更新