我正在尝试从Gmail中检索邮件并收到以下错误:
Can't open mailbox {imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX: invalid remote specification
OpenSSL和IMAP安装在我的服务器中,以下是openssl&来自phpinfo()的imap信息;
openssl
OpenSSL support enabled
OpenSSL Library Version OpenSSL 0.9.7l 28 Sep 2006
OpenSSL Header Version
imap
IMAP c-Client Version 2007e
Kerberos Support enabled
我现在真的很困惑,请帮忙!
答案 0 :(得分:2)
我遇到过类似的问题。我可以从个人经验告诉你,虽然你可能安装了IMAP和OpenSSL,但你可能需要重新编译php install“--with-imap-ssl [= DIR]。”我想做同样的事情并收到同样的错误。我也安装了相同的OpenSSL和IMAP版本。我已经重新编译了php,这是我的配置:
./ configure --prefix = / usr / local / apache2 / php --with-imap = / usr / local / imap-2007f / --with-curl = / usr / local / curl / --enable-套接字--with-imap-ssl = / usr / local / ssl --with-openssl --with-apxs2 = / usr / local / apache2 / bin / apxs --with-kerberos --without-iconv
您不需要使用相同的配置,因为它是根据我的需要定制的。
如果您不熟悉编译php,可以在此处找到源:
http://www.php.net/downloads.php
这是一个关于如何编译php和apache的基本教程,假设你在UNIX上。它还包括如何使用curl编译它们,你可以使用curl的所有指令并分别用ssl和imap替换它们,它应该工作。
http://thermo.sdsu.edu/testhome/phpinstall.html
答案 1 :(得分:0)
对于 Docker,我了解到在调用 docker-php-ext-install
before docker-php-ext-configure
时会发生此错误,这是我的错误操作。因此 RUN
中的 Dockerfile
指令必须如下所示:
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_exists('imap_open')
这样的调用将返回 true。但是所有对 imap_open
的调用
将因上述错误而失败:
无效的远程规范
即使它是已被广泛证明的正确远程规范,例如 {imap.gmail.com:993/imap/ssl/novalidate-cert/norsh}INBOX
或 {imap.gmail.com:993/imap/ssl}INBOX
来自例如this article。所以一定要先配置好再安装扩展。
答案 2 :(得分:-1)
$iconnect = imap_open("{imap.gmail.com:993/ssl/novalidate-cert}INBOX","user@gmail.com","passwordofuser") or die(imap_errors());
检查此代码,这将连接到gmail服务器。