Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP imap_open():尝试连接到GMAIL时远程规范无效_Php_Imap - Fatal编程技术网

PHP imap_open():尝试连接到GMAIL时远程规范无效

PHP imap_open():尝试连接到GMAIL时远程规范无效,php,imap,Php,Imap,我试图从Gmail中检索邮件,但出现以下错误: Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification OpenSSL和IMAP安装在我的服务器中,以下是phpinfo()中的OpenSSL和IMAP信息 我现在真的很困惑,请帮帮我 我也有类似的问题。根据个人经验,我可以告诉您,虽然您可能安装了IMAP和OpenSSL,但您可能需要重新编译php安装”

我试图从Gmail中检索邮件,但出现以下错误:

Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification
OpenSSL和IMAP安装在我的服务器中,以下是phpinfo()中的OpenSSL和IMAP信息


我现在真的很困惑,请帮帮我

我也有类似的问题。根据个人经验,我可以告诉您,虽然您可能安装了IMAP和OpenSSL,但您可能需要重新编译php安装”--使用IMAP ssl[=DIR]。“我想做同样的事情,但收到了相同的错误。我还安装了相同的OpenSSL和IMAP版本。我已经重新编译了php,下面是我的配置:

./configure--prefix=/usr/local/apache2/php--with-imap=/usr/local/imap-2007f/--with-curl=/usr/local/curl/--enable sockets--with-imap ssl=/usr/local/apache2/bin/apxs--with-kerberos--with-with-inconv

当然,您不需要使用相同的配置,因为它是根据我的需要定制的

如果您不熟悉编译php,可以在此处找到源代码:

假设您在UNIX上,这里有一个关于如何编译php和apache的基本教程。它还包括如何用curl编译它们,您可以使用curl的所有指令,并分别用ssl和imap替换它们,它应该可以工作。


检查此代码,这将连接到gmail服务器。

对于Docker,我了解到在
Docker php ext configure
之前调用
Docker php ext install
时发生此错误,我错了。因此,
Dockerfile
中的
RUN
指令必须如下所示:

FROM php:8-fpm-alpine
# ...
RUN apk add imap-dev openssl-dev \
    && docker-php-ext-configure imap --with-imap --with-imap-ssl \
    && docker-php-ext-install imap
而不是

RUN apk add imap-dev openssl-dev \
    && docker-php-ext-install imap \
    && docker-php-ext-configure imap --with-imap --with-imap-ssl
否则,imap扩展似乎已安装-调用
function\u exists('imap\u open')
将返回true。但是对
imap\u的所有调用都是打开的
将因上述错误而失败:

无效的远程规范


即使它是一个正确的远程规范,已经被广泛使用,比如来自e.g.的
{imap.gmail.com:993/imap/ssl/novalidate cert/norsh}收件箱
{imap.gmail.com:993/imap/ssl}收件箱
。因此,请确保您首先配置然后安装扩展。

我会查找警报,也许还会查找警报。但是,如果这是在网络层(提示:SSL),您可能需要更新SSL LIB。修复了我遇到的问题-启用了OpenSSL和imap,但仍然出现错误。重新编译的php——使用imap ssl,目前正在运行。
FROM php:8-fpm-alpine
# ...
RUN apk add imap-dev openssl-dev \
    && docker-php-ext-configure imap --with-imap --with-imap-ssl \
    && docker-php-ext-install imap
RUN apk add imap-dev openssl-dev \
    && docker-php-ext-install imap \
    && docker-php-ext-configure imap --with-imap --with-imap-ssl