PHP Manual
Prev |  | Next

# LXI. IMAP, POP3 and NNTP Functions

# Introduction

These functions are not limited to the IMAP protocol, despite their name. The underlying c-client library also supports NNTP, POP3 and local mailbox access methods.

# Requirements

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`.

> Note: To build the c-client library with SSL or/and Kerberos support read the docs supplied with the package.

> Note: 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.

# Installation

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.

> Note: 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.

Warning
The IMAP, recode, YAZ and Cyrus extensions cannot be used in conjuction, because they both share the same internal symbol.

# Runtime Configuration

This extension has no configuration directives defined in `php.ini`.

# Resource Types

# Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

`NIL` (integer)

`OP_DEBUG` (integer)

`OP_READONLY` (integer)

  Open mailbox read-only

`OP_ANONYMOUS` (integer)

  Don't use or update a `.newsrc` for news (NNTP only)

`OP_SHORTCACHE` (integer)

`OP_SILENT` (integer)

`OP_PROTOTYPE` (integer)

`OP_HALFOPEN` (integer)

  For IMAP and NNTP names, open a connection but don't open a mailbox.

`OP_EXPUNGE` (integer)

`OP_SECURE` (integer)

`CL_EXPUNGE` (integer)

  silently expunge the mailbox before closing when calling imap_close()

`FT_UID` (integer)

  The parameter is a UID

`FT_PEEK` (integer)

  Do not set the \Seen flag if not already set

`FT_NOT` (integer)

`FT_INTERNAL` (integer)

  The return string is in internal format, will not canonicalize to CRLF.

`FT_PREFETCHTEXT` (integer)

`ST_UID` (integer)

  The sequence argument contains UIDs instead of sequence numbers

`ST_SILENT` (integer)

`ST_SET` (integer)

`CP_UID` (integer)

  the sequence numbers contain UIDS

`CP_MOVE` (integer)

  Delete the messages from the current mailbox after copying with imap_mail_copy()

`SE_UID` (integer)

  Return UIDs instead of sequence numbers

`SE_FREE` (integer)

`SE_NOPREFETCH` (integer)

  Don't prefetch searched messages

`SO_FREE` (integer)

`SO_NOSERVER` (integer)

`SA_MESSAGES` (integer)

`SA_RECENT` (integer)

`SA_UNSEEN` (integer)

`SA_UIDNEXT` (integer)

`SA_UIDVALIDITY` (integer)

`SA_ALL` (integer)

`LATT_NOINFERIORS` (integer)

  This mailbox has no "children" (there are no mailboxes below this one).

`LATT_NOSELECT` (integer)

  This is only a container, not a mailbox - you cannot open it.

`LATT_MARKED` (integer)

  This mailbox is marked. Only used by UW-IMAPD.

`LATT_UNMARKED` (integer)

  This mailbox is not marked. Only used by UW-IMAPD.

`SORTDATE` (integer)

  Sort criteria for imap_sort(): message Date

`SORTARRIVAL` (integer)

  Sort criteria for imap_sort(): arrival date

`SORTFROM` (integer)

  Sort criteria for imap_sort(): mailbox in first From address

`SORTSUBJECT` (integer)

  Sort criteria for imap_sort(): message subject

`SORTTO` (integer)

  Sort criteria for imap_sort(): mailbox in first To address

`SORTCC` (integer)

  Sort criteria for imap_sort(): mailbox in first cc address

`SORTSIZE` (integer)

  Sort criteria for imap_sort(): size of message in octets

`TYPETEXT` (integer)

`TYPEMULTIPART` (integer)

`TYPEMESSAGE` (integer)

`TYPEAPPLICATION` (integer)

`TYPEAUDIO` (integer)

`TYPEIMAGE` (integer)

`TYPEVIDEO` (integer)

`TYPEOTHER` (integer)

`ENC7BIT` (integer)

`ENC8BIT` (integer)

`ENCBINARY` (integer)

`ENCBASE64` (integer)

`ENCQUOTEDPRINTABLE` (integer)

`ENCOTHER` (integer)

# See Also

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.

Prev | Home | Next
png2wbmp | Up | imap_8bit