|
|
LXIV. IMAP, POP3 and NNTP Functions
These functions enable you to operate with the IMAP
protocol, as well as the NNTP, POP3
and local mailbox access methods.
Be warned however, that some of IMAP functions will not work correctly
with the POP protocol.
This extension requires the c-client library to be installed.
Grab the latest version from ftp://ftp.cac.washington.edu/imap/
and compile it.
It's important that you do not copy the IMAP source files directly into
the system include directory as there may be conflicts. Instead, create
a new directory inside the system include directory, such as
/usr/local/imap-2000b/ (location and name
depend on your setup and IMAP version), and inside this new
directory create additional directories named lib/
and include/. From the c-client
directory from your IMAP source tree, copy all the *.h
files into include/ and all the
*.c files into lib/.
Additionally when you compiled IMAP, a file named
c-client.a was created. Also put this in the
lib/ directory but rename it as
libc-client.a.
Замечание:
To build the c-client library with SSL or/and Kerberos support read
the docs supplied with the package.
Замечание:
In Mandrake Linux, the IMAP library (libc-client.a)
is compiled without Kerberos support. A separate version with SSL
(client-PHP4.a) is installed. The library must
be recompiled in order to add Kerberos support.
To get these functions to work, you have to compile PHP with
--with-imap[=DIR], where DIR is the
c-client install prefix. From our example above, you would use
--with-imap=/usr/local/imap-2000b.
This location depends on where you created this directory according to the
description above. Windows users may include the
php_imap.dll DLL in php.ini.
IMAP is not supported on systems earlier that Windows 2000. This is because it
uses encryption functions in order to enable SSL connections to the mail
servers.
Замечание:
Depending how the c-client was configured, you might also need to add
--with-imap-ssl=/path/to/openssl/
and/or --with-kerberos=/path/to/kerberos
into the PHP configure line.
| Внимание | Расширение IMAP не может использоваться вместе с расширениями
перекодировки или YAZ. Это связано с тем фактом, что они оба
используют один и тот же внутренний символ. |
Данное расширение не определяет никакие директивы конфигурации в php.ini.
Перечисленные ниже константы определены данным расширением и могут быть
доступны только в том случае, если PHP был собран с
поддержкой этого расширения или же в том случае, если
данное расширение подгружается во время выполнения.
This document can't go into detail on all the topics touched by
the provided functions. Further information is provided by the
documentation of the c-client library source
(docs/internal.txt). and the following RFC
documents:
RFC2821: Simple Mail
Transfer Protocol (SMTP).
RFC2822: Standard for
ARPA internet text messages.
RFC2060: Internet
Message Access Protocol (IMAP) Version 4rev1.
RFC1939: Post
Office Protocol Version 3 (POP3).
RFC977: Network News
Transfer Protocol (NNTP).
RFC2076: Common
Internet Message Headers.
RFC2045 , RFC2046 , RFC2047 , RFC2048 & RFC2049: Multipurpose
Internet Mail Extensions (MIME).
A detailed overview is also available in the books
Programming Internet Email
by David Wood and Managing
IMAP by Dianna Mullet & Kevin Mullet.
add a note
User Contributed Notes
IMAP, POP3 and NNTP Functions
mogmios at gmail dot com
19-Oct-2007 12:36
In Fedora Core 6 64 bit w/ a custom compiled copy of Apache and PHP 4 I had to add packages libc-client*x84_64 and then just used config options --with-imap --with-kerberos --with-imap-ssl.
gpayne at galenaparkisd com
07-Aug-2007 12:48
You can also use the novalidate-cert flag and it won't bother you about the ssl stuff:
$mailbox = imap_open("{localhost:143/imap/novalidate-cert}INBOX", "user","pw");
mleiv
26-Jul-2007 04:12
MAC OSX advice for those less experienced in UNIX.
I had a lot of trouble with all the advice here, but I finally got it working, so I thought I'd leave my steps. If you know a decent amount about UNIX you can probably do better on you own.
#1) downloaded version listed by php.net above.
#2) ran "make opx" on it (the three-letter is your OS, opx is later osx versions)
#3) copied resulting c-client/ folder to where I wanted to leave my imap stuff, herafter referred to as IMAP_HOME.
#4) renamed IMAP_HOME/c-client/c-client.a to libc-client.a
#5) ran "configure" on php using --with-imap=IMAP_HOME --with-kerberos --with-imap-ssl (my configure insisted that I use the last two)
#6) make, make install, and restarted Apache. Voila!
At this point you can delete the downloaded imap stuff, or move it to your sources/ folder or whatever.
bogdanderen at mail dot ru
07-Jul-2007 06:41
INSTALLING IMAP
1. Log in as root:
su -
2. Download IMAP installation
3. Untar the package:
tar -zxf IMAP_PACKAGE_FILENAME
4. Enter the source directory:
cd IMAP_PACKAGE_DIRECTORY
5. Build the package.
# edit Makefile EXTRACFLAGS=-fPIC
# make lrh
6. Install the lib and include files:
# 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/
# rm -rf all files and directories except /IMAP_DIR/include/ & /IMAP_DIR/lib/
7. Create the osdep.h link:
Linux:
# ln -s ./include/c-client/os_slx.h \
/IMAP_DIR/include/osdep.h
INSTALLING PHP (DO NOT --with-kerberos)
--with-imap=/IMAP_DIR
eeescalona at yahoo dot com
20-Feb-2007 12:49
fyi.
I had an error during this process
*downloaded from ftp.cac.washington.edu imap-2006e.tar.gz
*untarred it as /usr/local/src/imap-2006e.
*made lrh (make lrh)
*copied /usr...imap-2006e/c-client/c-client.a into ..../client/libc-client.a
*cd /usr/local/src/php-4.2.1/
*configured php using ... --with-imap=/usr/local/src/imap-2006e --with-ssl
*and during make the following error occurred.
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
apparently, apache 4.2.1 and imap-2006e has the same declared function which creates a duplication problem. the utf8_mime2text function is both found on files:
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)
bug fixers says i have to upgrade my php, but I cant afford to change versions since i run some home grown developed php software which doesnt work on higher versions.
So I did this.
I replaced all utf8_mime2text texts with utf8_mime2text2 for the imap sources.
since my server is both web and mysql, i used a built in mysql command called 'replace'
$>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
then i continued make and make install, without the reported error.
caveats...i just did this to try it. i dunno if it will work later...
couplewith at interpakr dot co dot kr
12-Feb-2007 05:37
imap-install
1. tar xvzf c-client.tgz
2. cd imap-2006e
3. make lrh # install redhat linux
4. cp c-client/c-client.a /usr/local/lib/libc-client.a
copy head files
c-client/rfc822.h, mail.h
|
|