IMAP 函数

参见

本文档无法详细介绍所提供函数涉及的所有主题。c-client 库源代码的文档 (docs/internal.txt) 提供了更多信息。以及以下 RFC 文档

David Wood 的书籍 » Programming Internet Email 和 Dianna Mullet & Kevin Mullet 的 » Managing IMAP 也提供了一个详细的概述。

目录

添加笔记

用户贡献笔记 21 笔记

104
v dot 0000000001 dot -0006398047 at vertabiz dot com
19 年前
由于这个库总体上文档记录很差,再加上有 30 多个函数,而且很多函数的功能相同,所以我对这些函数进行了分类。希望这能帮助其他人,我知道它会帮助我! - Justin

连接、错误和配额
===========================
imap_timeout
imap_ping
imap_open
imap_reopen
imap_close
imap_check **(几乎没用)
imap_alerts
imap_errors
imap_last_error
imap_get_quota
imap_get_quotaroot
imap_set_quota

邮件 - 读取
==================
imap_uid
imap_msgno
imap_fetchbody
imap_fetchheader
imap_fetchstructure
imap_fetch_overview
imap_body
imap_rfc822_parse_adrlist
imap_rfc822_parse_headers

邮件 - 写入
==================
imap_mail_compose
imap_mail
imap_append
imap_rfc822_write_address

邮件 - 操作
=====================
imap_undelete
imap_thread
imap_delete
imap_mail_copy
imap_mail_move
imap_expunge
imap_clearflag_full
imap_setflag_full

邮件 - 解码/编码
========================
imap_utf7_decode
imap_utf7_encode
imap_utf8
imap_8bit
imap_base64
imap_binary
imap_mime_header_decode
imap_qprint

文件夹
=======
imap_createmailbox
imap_deletemailbox
imap_getmailboxes
imap_mailboxmsginfo
imap_renamemailbox
imap_headers **(几乎没用)
imap_status
imap_sort
imap_search
imap_listscan

NNTP
====
imap_unsubscribe
imap_subscribe
imap_getsubscribed

其他
=============================
imap_num_msg - 使用 imap_mailboxmsginfo()
imap_num_recent - 使用 imap_mailboxmsginfo()
imap_header - imap_headerinfo() 的别名
imap_scanmailbox - imap_listscan() 的别名
imap_listsubscribed - imap_lsub() 的别名
imap_listmailbox - imap_list() 的别名
imap_lsub - 使用 imap_getsubscribed()
imap_list - 使用 imap_getmailboxes()
imap_bodystruct - 未记录
imap_getacl - 未记录
imap_setacl - 未记录
imap_headerinfo - 使用 imap_fetch_overview()
4
BjarneDM macintosh at mathiesen dot info
18 年前
Mac OS X 客户端安装说明(使用 DarwinPorts)

安装 imap-uw 包后,系统中没有 c-client.a。!但是!在安装阶段的特定时间,它实际上是存在的,因为它是从源代码编译的 - 它只是在编译过程结束时被删除了。因此,我们需要将安装过程分解为其组件过程,并在适当的时间获取所需的内容。

sudo port fetch imap-uw
sudo port extract imap-uw
sudo port patch imap-uw
sudo port configure imap-uw
sudo port build imap-uw
imapLib=/darwinports/var/db/dports/distfiles/imap-uw/lib
imapIncludes=/darwinports/var/db/dports/distfiles/imap-uw/include
sudo mkdir ${imapLib} ${imapInclude}
cd /darwinports/var/db/dports/build/*/*/*/c-client
sudo cp *.c ${imapLib}
sudo cp *.h ${imapIncludes}
sudo cp c-client.a ${imapLib}/libc-client.a
cd ${imapLib}
ranlib - libc-client.a
sudo port install imap-uw

现在,您只需指定
--with-imap=/darwinports/var/db/dports/distfiles/imap-uw \
--with-imap-ssl=/darwinports \
在您的 ./configure 命令中。
4
Anonymous
19 年前
如果您在从源代码编译 netbsd 时遇到困难,并且希望 imap 支持,那么您应该知道 c-client 库是使用 kerberos 支持编译的。不幸的是,gssapi_krb5 和 k5crypto 不在系统中(或者至少对我来说不存在)。我没有管理员级别的访问权限来添加这些库,所以我必须执行以下操作。我仍然需要测试它是否 100%有效,但至少它在没有抱怨的情况下编译了。

从配置脚本中注释掉以下部分。

片段 1 - 测试 gssapi_krb5 库

case gssapi_krb5 in
c|c_r|pthread*) ;;
*)
if test "$ext_shared" = "yes"; then
IMAP_SHARED_LIBADD="$IMAP_SHARED_LIBADD -lgssapi_krb5"
else


case gssapi_krb5 in
c|c_r|pthread*) ;;
*)
LIBS="$LIBS -lgssapi_krb5"
;;
esac

fi
;;
esac

片段 2 - 测试 k5crypto

case k5crypto in
c|c_r|pthread*) ;;
*)
if test "$ext_shared" = "yes"; then
IMAP_SHARED_LIBADD="$IMAP_SHARED_LIBADD -lk5crypto"
else

case k5crypto in
c|c_r|pthread*) ;;
*)
LIBS="$LIBS -lk5crypto"
;;
esac

fi
;;
esac

顺便说一句,由于我只为模块编译(它们有 suPHP,所以我需要时就自己编译所有的模块),我只为 php 配置脚本参数添加了这些内容。

./configure --with-imap=shared,xxxxxx --with-kerberos=xxxxxx --with-imap-ssl

这已通过 imap 测试验证有效。我在 phpbuilder.com 网站上找到的一个很棒的测试。它在这里。适当修改地址、端口、协议类型、用户名和密码。该帖子已有 5 年的历史,但脚本仍然可以正常运行。发布者的名字是“Matthew”。

<HTML>
<HEAD>
<TITLE>imap_check</TITLE>
</HEAD>
<BODY>
<?
// 检查新邮件

$mailbox = imap_open("{localhost/pop3:110}INBOX",
"#username#","#password#");

// 检查邮件
$check = imap_check($mailbox);
print("<PRE>");
print("Date most recent message : " . $check->Date);
print("<BR>");
print("Connection type : " . $check->Driver);
print("<BR>");
print("Name of the mailbox : " . $check->Mailbox);
print("<BR>");
print("Number of messages : " . $check->Nmsgs);
print("<BR>");
print("Number of recent messages : " . $check->Recent);
print("<BR>");
print("</PRE>");

// 显示邮件标题

$index=1;

$header = imap_header($mailbox, $index);
print("<PRE>");
print("Header Date : " . $header->Date . "<BR>");
print("Header To : " . $header->to) . "<BR>";
print("Header From : " . $header->From . "<BR>");
print("Header cc : " . $header->cc . "<BR>");
print("Header ReplyTo : " . $header->ReplyTo . "<BR>");
print("Header Subject : " . $header->Subject . "<BR></PRE>");

print("<PRE>");
print(imap_body($mailbox,$index));
print("</PRE><HR>");

imap_close($mailbox);
?>

</BODY></HTML>
2
James Triplett <jm-php at vj8 dot net>
18 年前
构建 Apache2、PHP 和 IMAP 需要一个可共享版本的
c-client 库,但标准的 UW 代码没有提供一个。
我找不到任何方法来构建 libc-client.a,而不会产生大量的重定位错误。(Solaris 10 上的 gcc)

IMAP c-client 库可以使用以下步骤构建为可共享的
1. 更改 .../imap-2004/c-client 中的 Makefile,以包含
BASECFLAGS="-fPIC -O3"
2. make
3. mkdir tmp
4. cd tmp
5. ar xv ../c-client.a(以提取 .o 文件)
6. gcc -shared -o c-client.so *.o(以创建 .so 库)
7. 将该 c-client.so 复制到 /usr/local/imap/lib/libc-client.so
(可能需要隐藏 libc-client.a)
8. configure PHP;make;make install
0
mogmios at gmail dot com
16 年前
在 Fedora Core 6 64 位系统上,使用自定义编译的 Apache 和 PHP 4,我必须添加包 libc-client*x84_64,然后只需使用配置选项 --with-imap --with-kerberos --with-imap-ssl。
0
couplewith at interpakr dot co dot kr
17 年前
imap-install
1. tar xvzf c-client.tgz
2. cd imap-2006e
3. make lrh # 安装红帽 Linux
4. cp c-client/c-client.a /usr/local/lib/libc-client.a
复制头文件
c-client/rfc822.h、mail.h 和 linkage.h
/usr/local/include
c-client/utf-8.h /usr/local/include
5. 如果 U8T_CANONICAL 未定义错误
编辑 php_src/ext/imap/php_imap.c

== 添加第 53 行 ==
#include <time.h>
#include <stdio.h>
#include <ctype.h>
#include <signal.h>
+#include "utf8.h"
6. 执行 PHP 安装步骤
-2
mleiv
17 年前
针对那些对 UNIX 不太熟悉的人的 MAC OSX 建议。

我在所有这些建议上都遇到了很多麻烦,但我最终让它运行起来了,所以我认为我应该留下我的步骤。如果您对 UNIX 有相当的了解,您可能可以自己做得更好。
#1) 下载 php.net 上列出的版本。
#2) 在它上面运行“make opx”(三个字母是您的操作系统,opx 是更高版本的 osx)
#3) 将生成的 c-client/ 文件夹复制到您想放置 imap 文件的地方,之后称为 IMAP_HOME。
#4) 将 IMAP_HOME/c-client/c-client.a 重命名为 libc-client.a
#5) 在 php 上运行“configure”,使用 --with-imap=IMAP_HOME --with-kerberos --with-imap-ssl(我的 configure 坚持要求我使用最后两个)
#6) make、make install,然后重新启动 Apache。就是这样!

此时,您可以删除下载的 imap 文件,或将其移动到您的 sources/ 文件夹或任何其他位置。
0
seem dot iges at mail dot ee
19 年前
如果您像我一样发现“make slx”失败了,但您非常确定已安装 openssl,那么可能是您的发行版上的 lib 和 include 路径与 imap-2004a(或 imap-XXXXx)中提供的默认路径不同。要修改,请转到目录 ../imap-2004a/src/osdep/unix 并编辑 Makefile 中的部分(如下所示)

# 为 SSL 需要的扩展标志。您可能需要修改。

#SSLDIR=/usr/local/ssl
SSLDIR=/etc/ssl
SSLCERTS=$(SSLDIR)/certs
SSLKEYS=$(SSLCERTS)
#SSLINCLUDE=$(SSLDIR)/include
SSLINCLUDE=/usr/include/openssl
#SSLLIB=$(SSLDIR)/lib
SSLLIB=/usr/lib

SSLCRYPTO=-lcrypto

注释掉的 SSLDIR、SSLINCLUDE 和 SSLIB 是默认值,取消注释的是 Slackware(10.0/10.1)的有效路径。
您还应该检查您的 ld.so.conf 以获取有效路径。
0
antivert
19 年前
请注意,不必在 IMAP 编译中禁用 SSL 才能使其与 PHP 5.0.3 一起使用。

1. 使用您的系统编译具有 SSL 支持的 IMAP

cd /path/to/imap/source/
make <系统类型>(ldb、lnx 等)
mkdir include
mkdir lib

2. 在 IMAP 源目录中创建链接

cd /path/to/imap/source/c-client
cp *.h ../include/
cp *.c ../lib/
cp c-client.a ../lib/libc-client.a

3. 使用 SSL 支持编译 PHP,--with-imap=/path/to/imap/source/。如果 SSL 支持失败,您将收到一个配置时错误,表明 IMAP 不起作用。这是错误的,您只需让 SSL 支持在 PHP 中起作用即可。在某些 Linux 系统上,使用 OpenSSL 0.9.7,这意味着添加 --with-openssl=/usr(如果 OpenSSL 文件位于 /usr/include/openssl/ 中)而不是包含 OpenSSL 文件的正确目录。出于某种原因,提供父目录可以让 PHP 找到 OpenSSL 包含文件。

4. PHP 应该构建成功。

或者,您可以在 IMAP 构建过程中禁用 SSL,如前面发布的说明中所述。
0
Pete Spicer, sleeping [at] myperch.org
20 年前
我有一套几乎是标准的 SuSE 8.1 Personal 配置(由我自己构建的 Apache、PHP 等),IMAP-2004 拒绝为我构建。

我发现,使用 make lsu(用于 SuSE)几乎可以构建成功,但我得到了一些奇怪的构建结果,即构建失败。

问题出在哪里?GCC 3.2。如果您没有可用的旧版 GCC,请安装一个!我从 SuSE 安装了 gcc_old 包,并使用以下命令构建

CC=gcc297 make lsu SSLTYPE=none

结果是一个完美的构建。所以,如果您遇到错误,请尝试使用早期版本的 GCC。
0
Tomas V.V.Cox
20 年前
为了编译这个扩展,而不从源代码编译 imap(这是 mandrake)

安装以下 rpm 包
imap
imap-devel
openssl
openssl-devel
krb5
krb5-devel
pam
pam-devel

执行以下操作
# mkdir /usr/include/imap/lib
# cp /usr/lib/libc-client-PHP4.a /usr/include/imap/lib/libc-client.a

以及配置行
./configure <options> --with-imap=/usr/include/imap --with-imap-ssl

(不要忘记 --enable-pear ;))
-1
kvazitron at gmail dot com
16 年前
我在 FreeBSD 6.3 上成功安装了 c-client 并编译了 php 5.2.5,带有 imap。为了使这些东西工作,我执行了以下步骤

1) 安装 c-client

将 c-client.tar.Z 下载并解压到 /usr/local/ 文件夹
cd /usr/local/imap-2007
make bsf
mkdir include
ln -s c-client include
mkdir lib
cd lib
ln -s ../c-client/c-client.a libc-client.a

2) 编译 php
添加以下选项
--with-imap=/usr/local/imap-2007 --with-imap-ssl
-1
gpayne at galenaparkisd com
17 年前
您也可以使用 novalidate-cert 标志,它不会提示您有关 ssl 的信息

$mailbox = imap_open("{localhost:143/imap/novalidate-cert}INBOX", "user","pw");
-1
bogdanderen at mail dot ru
17 年前
安装 IMAP
1. 以 root 用户身份登录
su -
2. 下载 IMAP 安装程序
3. 解压缩包
tar -zxf IMAP_PACKAGE_FILENAME
4. 进入源代码目录
cd IMAP_PACKAGE_DIRECTORY
5. 构建包。
# 编辑 Makefile EXTRACFLAGS=-fPIC
# make lrh
6. 安装 lib 和 include 文件
# mkdir /IMAP_DIR/lib
# mkdir /IMAP_DIR/include
# cp -r ./src/c-client/*.h /IMAP_DIR/include/
# cp ./c-client/linkage.h /IMAP_DIR/include/
# cp ./src/osdep/unix/*.h /IMAP_DIR/include/
# cp ./src/osdep/unix/*.c /IMAP_DIR/lib/
# 删除除了 /IMAP_DIR/include/ 和 /IMAP_DIR/lib/ 之外的所有文件和目录
7. 创建 osdep.h 链接
Linux
# ln -s ./include/c-client/os_slx.h \
/IMAP_DIR/include/osdep.h

安装 PHP(不要使用 --with-kerberos)
--with-imap=/IMAP_DIR
-1
eeescalona at yahoo dot com
17 年前
FYI。

在这个过程中,我遇到了一个错误

* 从 ftp.cac.washington.edu 下载 imap-2006e.tar.gz
* 将其解压缩到 /usr/local/src/imap-2006e。
* 构建 lrh (make lrh)
* 将 /usr...imap-2006e/c-client/c-client.a 复制到 ..../client/libc-client.a
* cd /usr/local/src/php-4.2.1/
* 使用 ... --with-imap=/usr/local/src/imap-2006e --with-ssl 配置 php

* 并且在 make 期间出现了以下错误。

php_imap.c:71: error: conflicting types for 'utf8_mime2text'
/usr/local/src/imap-2006e//c-client/utf8aux.h:37: error: previous declaration of 'utf8_mime2text' was here
php_imap.c:71: error: conflicting types for 'utf8_mime2text'
/usr/local/src/imap-2006e//c-client/utf8aux.h:37: error: previous declaration of 'utf8_mime2text' was here
make[3]: *** [php_imap.lo] Error 1
make[3]: Leaving directory `/usr/local/src/php-4.2.1/ext/imap'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/local/src/php-4.2.1/ext/imap'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/php-4.2.1/ext'
make: *** [all-recursive] Error 1

显然,apache 4.2.1 和 imap-2006e 声明了相同的函数,这会导致重复问题。utf8_mime2text 函数同时出现在以下文件中

php-4.2.1/imap/php_imap.c (2 occurences)
imap-2006e/c-client/utf8aux.h (1 occurences)
imap-2006e/c-client/utf8aux.c (1 occurrences)
imap-2006e/c-client/mail.c (5 occrences)

错误修复人员说我需要升级我的 php,但我无法更改版本,因为我运行了一些自己开发的 php 软件,这些软件在更高版本上无法工作。

所以,我做了以下操作。

我将 imap 源代码中的所有 utf8_mime2text 文本替换为 utf8_mime2text2。

由于我的服务器既是 Web 服务器又是 MySQL 服务器,因此我使用了一个名为“replace”的内置 MySQL 命令

$>replace utf8_mime2text utf8_mime2text2 -- /..../c-client/utf8aux.h
$>replace utf8_mime2text utf8_mime2text2 -- /..../c-client/utf8aux.c
$>replace utf8_mime2text utf8_mime2text2 -- /..../c-client/mail.c

然后我继续进行 make 和 make install,没有出现报告的错误。

注意事项…我只是这样做来尝试一下。我不知道它以后是否会起作用…
-2
Marplatense
17 年前
在 Linux 64 位服务器上编译带有 imap 支持的 php(已在 php 5.1.6、php 5.2.0、CentOS 4.4 64 位和 c-client snap 0611201609 上测试)

1- 从 ftp 下载 imap。
# tar -zxvf imap-2006d.DEV.tar.Z
# cd imap-2006d.DEV.SNAP-0611201609/
# vim MakeFile
2- 查找“EXTRACFLAGS=” 并将 -fPIC 添加到末尾
在 EXTRACFLAGS= 之前
在 EXTRACFLAGS=-fPIC 之后
3- 保存文件并退出
# make lrh
# cd c-client/
# cp /.../imap-2006d.DEV.SNAP-0611201609/c-client/c-client.a /.../imap-2006d.DEV.SNAP-0611201609/c-client/libc-client.a
4- 导航到您的 php 目录并
# ./configure ... 这里还有很多选项 ... --with-imap=/.../imap-2006d.DEV.SNAP-0611201609 --with-imap-ssl
# make
# make install

其他说明
a- 我在 make 中选择了“lrh”,但您可能需要检查自己的选项。
b- 我使用 ssl 支持构建了它,因此我在 php 配置选项中添加了 --with-imap-ssl。您也可以使用不带 SSL 的方式进行构建
-1
php at got2get dot net
18 年前
FreeBSD 安装说明

如果您遇到以下问题

/libexec/ld-elf.so.1: /usr/local/lib/php/20041030/imap.so: Undefined symbol "ssl_onceonlyinit"

… 在您的 httpd-error.log 中。

这是因为您编译 cclient 时没有使用 SSL 支持。

但是,为了让 SquirrelMail 正常工作,我必须安装 ports/mail/imap-uw,并使用 WITHOUT_SSL=yes 选项,ports/mail/cclient 也使用相同的选项。完成此操作后,我重新编译了 cclient,没有使用任何选项以获得 SSL 支持,然后安装了 posrt/mail/php5-imap。

这可以正常工作。但是,如果您只想在所有地方都使用 SSL,则正常安装 imap-uw,它也会安装 cclient。之后,正常安装 php5-imap - 这样您就拥有一个带有 SSL 的正常工作系统。

希望这能帮助更多人避免浪费我之前浪费的时间 ;)

- Nicolai
-2
Eelco
13 年前
我使用 Chris 的说明(感谢 Chris)重新编译了 CentOS 5 的 imap.so 模块(PHP 5.2.11)。我不想重新编译所有 PHP 扩展,只想重新编译 imap.so。

所以,这是我根据 Chris 的说明重新编译 PHP 5.2.11 的 imap.so 的版本。

0) 安装依赖项
yum groupinstall "Development Tools"
yum install openssl-devel
yum install krb5 krb5-devel
yum install pam-devel
1) 创建一个临时文件夹并进入该文件夹。
# mkdir ~/php-imap && cd ~/php-imap
2) 下载 c-client.tar.Z
# wget ftp://ftp.cac.washington.edu/imap/c-client.tar.Z
3) 解压缩 c-client.tar.Z 文件,此时将创建 imap-2007e 文件夹。
# tar -zxf c-client.tar.Z
4) 使用以下方法下载 php 源代码。使用机器上安装的 php 版本(php --version)
解压缩 php-*.rpm 文件以获取 php-*.tar.bz2 源代码包
# wget http://3es.atomicrocketturtle.com/packages/ php/php-5.2.11-3.art.src.rpm
# rpm2cpio php-5.2.11-3.art.src.rpm | cpio -idmv
# tar xvjf php-5.2.11.tar.bz2
5) 使用以下方法安装 php-imap 插件,或者您也可以直接添加 imap.so 扩展的 php ini 文件
# sudo yum install php-imap
6) 进入 imap-2007e 文件夹并编辑 Makefile,以便“EXTRACFLAGS=” 行变为:“EXTRACFLAGS=-fPIC”
7) 编译 c-client。
# make lr5 IP6=4
8) 进入 php 源代码文件夹并使用以下参数运行配置脚本
# ./configure --disable-all --with-imap=shared,<path to imap-2007e folder> --with-imap-ssl --with-openssl=/usr
9) 编译 php
# make
10) 将 imap.so 文件从 ./modules 文件夹复制/替换到 php 模块文件夹。
# sudo cp ./modules/imap.so /usr/lib64/php/modules
11) 重新启动 Apache
# sudo /etc/init.d/httpd restart
12) 检查 <?php phpinfo(); ?> 中的 imap 部分,它应该只列出 IMAP c-Client 版本和 SSL 支持。Kerberos 支持不应该在这里列出!
-2
chris dot kistner at gmail dot com
13 年前
IMAP php 插件默认情况下不适用于 Microsoft Exchange 2007 服务器,因此我必须重新编译 php,使用不带 Kerberos 支持的 c-client。

此外,我想要将其编译为共享库 (imap.so)。

我在 Fedora Core 13 & 14 x64 上使用的一种快速简便的方法是
1) 创建一个临时文件夹并进入该文件夹。
2) 从 ftp://ftp.cac.washington.edu/imap/ 下载 c-client.tar.Z
3) 使用“tar -zxf c-client.tar.Z”解压缩 c-client.tar.Z 文件,此时将创建 imap-2007e 文件夹。
4) 使用“yumdownloader --source php”下载 php 源代码 *(a)
解压缩 php-*.rpm 文件以获取 php-*.tar.bz2 源代码包 *(b)
5) 使用“sudo yum install php-imap”安装 php-imap 插件,或者您也可以直接添加 imap.so 扩展的 php ini 文件
6) 进入 imap-2007e 文件夹并编辑 Makefile,以便“EXTRACFLAGS=” 行变为:“EXTRACFLAGS=-fPIC”
7) 编译 c-client。我必须使用“make lfd IP6=4”
8) 进入 php 源代码文件夹并使用以下参数运行配置脚本:“./configure --with-imap=shared,<path to imap-2007e folder> --with-imap-ssl”
例如,我使用“./configure --with-imap=shared,/home/chris/imap-2007e --with-imap-ssl”
9) 通过简单地运行“make”编译 php *(c)
10) 将 imap.so 文件从 ./modules 文件夹复制/替换到您 PC 的 php 模块文件夹。我使用“sudo cp ./modules/imap.so /usr/lib64/php/modules”
11) 重新启动 Apache:“sudo service httpd restart”
12) 检查 <?php phpinfo(); ?> 中的 imap 部分,它应该只列出 IMAP c-Client 版本和 SSL 支持。Kerberos 支持不应该在这里列出!

在 Ubuntu 10.04 x64(或者可能其他版本)中实现相同功能略有不同
4) 使用“apt-get source php5”下载 php 源代码,这将创建一个 php5-* 源代码文件夹
5) 使用“sudo apt-get install php5-imap”安装 php5-imap 插件
7) 编译 c-client。我必须使用“make ldb IP6=4”
10) 将 imap.so 文件从 ./modules 文件夹复制/替换到您 PC 的 php 文件夹。我使用“sudo cp ./modules/imap.so /usr/lib64/php5/20090626”
11) 重新启动 Apache:“sudo service apache2 restart”

* 说明
(a) yumdownloader 是 yum-utils 包的一部分,可以使用“yum install yum-utils”安装
(b) 您可以使用“rpm2cpio php-*.src.rpm | cpio -idmv”解压缩 rpm 文件
(c) 您可以使用“make -j `grep -c ^processor /proc/cpuinfo`”在多核 PC 上显著提高编译速度
-2
bigben3333 - gmail
16 年前
我已经在 mandriva 2006 上尝试了 2 天,试图使用 imap 源代码编译 php,但一直没有成功…

只有在我卸载了系统中已安装的以下 RPM 后才成功

libc-client
libc-client-devel
imap
imap-devel

这是我的配置命令

./configure --with-apache=/usr/local/apache --with-dbase --with-filepro --enable-mbstring --with-xml=/usr/local/php --enable-ftp --with-db --enable-bcmath --enable-calendar --with-mysql --with-zlib-dir --enable-trans-sid --with-imap=/usr/local/imap-2004g --with-kerberos --with-imap-ssl --with-openssl --enable-sysvsem --enable-sysvshm
-3
amit dot gupta at prudence-india dot com
19 年前
我在使用 php-5.0.2 发行版编译 imap 时遇到了问题。然后,在快照版本上执行以下命令解决了我的问题

# tar -zxvf imap-2004b.DEV.tar.Z
# cd imap-2004b.DEV.SNAP-0411051435/
# make lnp SSLTYPE=none
# cp -r /usr/local/imap-2004b.DEV.SNAP-0411051435/c-client/*.h /usr/local/imap-2004b.DEV.SNAP-0411051435/include/

# cp -r /usr/local/imap-2004b.DEV.SNAP-0411051435/c-client/*.c /usr/local/imap-2004b.DEV.SNAP-0411051435/lib/

# ln -s /usr/local/imap-2004b.DEV.SNAP-0411051435/c-client/c-client.a /usr/local/imap-2004b.DEV.SNAP-0411051435/lib/libc-client.a

# tar -zxvf php5-STABLE-200411180530.tar.gz

# cd php5-STABLE-200411180530

./configure --with-apxs2=/usr/sbin/apxs --enable-shared --with-mod_charset --enable-force-cgi-redirect --enable-fastcgi --enable-magic-quotes --with-openssl --with-zlib --enable-bcmath --enable-calendar --with-curl --with-curlwrappers --enable-dba --with-gdbm --with-cdb --with-inifile --with-flatfile --enable-dbase --enable-dbx --enable-dio --with-fam --enable-filepro --enable-ftp --with-ldap --enable-mbstring --with-mysql=/usr/include --with-zlib-dir --enable-shmop --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-pic --enable-versioning --with-pgsql --with-java=/usr/java/jdk1.5.0/ --with-imap=/usr/local/imap-2004b.DEV.SNAP-0411051435 --with-kerberos

# make

# make install

因此,php在Fedora Core 1上成功编译并支持imap。
To Top