Справочник по PHP : Файлы и сети : Функции IMAP

смотрим также

Материал из Справочник Web-языков

Перейти к: навигация, поиск


Для того, чтобы эти функции заработали вы должны скомпилировать PHP с флагом --with-imap.

Этот флаг требует,чтобы была установлена библиотека c-client. Последнюю версию можно получить по адресу ftp://ftp.cac.washington.edu/imap/.

Затем скопируйте c-client/c-client.a в /usr/local/lib или какую либо другую директорию, прописанную в пути, затем скопируйте c-client/rfc822.h, mail.h и linkage.h в /usr/local/include или другую директорию с include-файлами.

Не смотря на имя модуля, имеющиеся в нем функции позволяют выполнять также много других полезных операций, выходящих за рамки простого использования протокола IMAP. Лежащая в основе библиотека C-клиента также поддерживает NNTP, POP3 и методы доступа к локальным почтовым ящикам.

Содержание

imap_append

Добавляет текстовое сообщение в указанный почтовый ящик.

Синтаксис:

int imap_append(int imap_stream, string mbox, string message, stringflags);

Возвращает true в случае успеха или false иначе.

imap_append() добавляет текстовое сообщение в указанный почтовый ящик mbox. Если указаны необязательные флаги, также записывает в почтовый ящик и флаги. При общении с сервером Cyrus IMAP нужно использовать в качестве ограничителей строки "rn" вместо "n",иначе действие не выполнится.

imap_base64

Декодирует текст, закодированный с помощью BASE64.

Синтаксис:

string imap_base64(string text);

Функция imap_base64() декодирует текст в формате BASE-64. Декодированное сообщение возвращается как строка.

imap_body

Читает тело сообщения.

Синтаксис:

string imap_body(int imap_stream, int msg_number, int flags);

Функция imap_body() возвращает тело сообщения, имеющего номер п/п msg_number в текущем почтовом ящике.

Необязательные флаги это битовые маски из

  • FT_UID - Номер сообщения msgno является UID-ом сообщения
  • FT_PEEK - Не устанавливать флаг Seen если он еще не установлен.
  • FT_INTERNAL - Возвращаемая строка записана во внутреннем формате и не может быть приведена к канонической форме с CRLF.

imap_check

Проверяет текущий почтовый ящик.

Синтаксис:

array imap_check(int imap_stream);

Возвращает информацию о текущем почтовом ящике. В случае неуспеха возвращает FALSE.

Функция imap_check() проверяет статус текущего почтового ящика на сервере и возвращает информацию в объекте со следующими свойствами :

  • Date : дата сообщения
  • Driver : драйвер
  • Mailbox : название почтового ящика
  • Nmsgs : количество сообщений
  • Recent : количество недавно пришедших сообщений

imap_close

Закрывает поток IMAP.

Синтаксис:

int imap_close(int imap_stream, int flags);

Закрывает поток imap. Необязательный флаг CL_EXPUNGE заставляет стереть помеченные на удаление сообщения при закрытии.

imap_createmailbox

Создает новый почтовый ящик.

Синтаксис:

int imap_createmailbox(int imap_stream, string mbox);

imap_createmailbox() создает новый почтовый ящик указанный в mbox.Возвращает true в случае успеха и false при ошибке.

imap_delete

Помечает сообщение из текущего почтового ящика на удаление.

Синтаксис:

int imap_delete(int imap_stream, int msg_number);

Возвращает true. Функция imap_delete() помечает сообщение, указанное через msg_number на удаление. Настоящее удаление сообщений осуществляется функцией imap_expunge().

imap_deletemailbox

Удаляет почтовый ящик.

Синтаксис:

int imap_deletemailbox(int imap_stream, string mbox);

Возвращает true в случае успеха и false иначе.

imap_expunge

Удаляет все сообщения, помеченные на удаление.

Синтаксис:

int imap_expunge(int imap_stream);

imap_expunge() удаляет все сообщения помеченные на удаление с помощью imap_delete().

Возвращает true.

imap_fetchbody

Извлекает простую секцию тела сообщения.

Синтаксис:

string imap_fetchbody(int imap_stream, int msg_number, int part_number, flags flags);

Эта функция заставляет извлечь подробную секцию указанного сообщения как текстовую строку. Секция это строка целых чисел, разделенных точками, которые указывают на части тела сообщения в списке частей согласно спецификации IMAP4. Части тела не декодируются этой функцией.

Необязательным параметром к imap_fetchbody() является битовая маска из

  • FT_UID - msgono является UID-ом
  • FT_PEEK - не устанавливать флаг Seen если он не установлен
  • FT_UID - возвращаемая строка записана во внутреннем формате, которое не может быть канонизированна с помощью CRLF

imap_fetchstructure

Читает структуру простого сообщения.

Синтаксис:

array imap_fetchstructure(int imap_stream, int msg_number);

Эта функция заставляет извлечь всю информацию о структуре сообщения с номером msg_number. Возвращаемая величина является объектом со следующими элементами :

  • type - тип
  • encoding - кодировка
  • ifsubtype - подтип интерфейса
  • subtype - подтип
  • ifdescription - описание интерфейса
  • description - описание
  • ifid - идентификатор интерфейса
  • id
  • lines - строки
  • bytes - байты
  • ifparameters - параметры интерфейса

Также функция возвращает массив объектов под названием parameters[]. Этот объект имеет следующие свойства :

  • attribute - атрибут

value - величина

В случае сообщения из нескольких частей, функция также возвращает массив объектов всех свойств под название parts[].

imap_header

Читает заголовок сообщения.

Синтаксис:

object imap_header(int imap_stream, int msg_number, int fromlength, int subjectlength, int defaulthost);

Эта функция возвращает объект различных элементов заголовка

  • remail
  • date
  • Date
  • subject
  • Subject
  • in_reply_to
  • message_id
  • newsgroups
  • followup_to
  • references
  • toaddress (полная строка To: строка длиной до 1024 символов)
  • to[] (возвращает массив объектов из строки To, содержит:)
  • personal
  • adl
  • mailbox
  • host
  • fromaddress (полная строка From: строка длиной до 1024 символов)
  • from[] (возвращает массив объектов из строки From, содержит:)
  • personal
  • adl
  • mailbox
  • host
  • ccaddress (полная строка Cc: строка длиной до 1024 символов)
  • cc[] (возвращает массив объектов из строки Cc, содержит)
  • personal
  • adl
  • mailbox
  • host
  • bccaddress (полная строка Bcc: строка длиной до 1024 символов)
  • bcc[] (возвращает массив объектов из строки Bcc, содержит:)
  • personal
  • adl
  • mailbox
  • host
  • reply_toaddress (полная строка Reply_to: строка длиной до 1024 символов)
  • reply_to[] (возвращает массив объектов из строки Reply_to, содержит:)
  • personal
  • adl
  • mailbox
  • host
  • senderaddress (полная строка Sender: строка длиной до 1024 символов)
  • sender[] (возвращает массив объектов из строки Sender, содержит:)
  • personal
  • adl
  • mailbox
  • host
  • return_path (полная строка Return-path: строка длиной до 1024 символов)
  • return_path[] (возвращает массив объектов из строки Return_path, содержит:)
  • personal
  • adl
  • mailbox
  • host
  • udate ( дата сообщения в формате времени unix)
  • fetchfrom (строка From, отформатированная до fromlength символов)
  • fetchsubject (строка Subject, отформатированная до subjectlength символов)

imap_headers

Возвращает заголовки всех сообщений в почтовом ящике.

Синтаксис:

array imap_headers(int imap_stream);

Возвращает строковый массив из информации по заголокам. Один элемент массива на сообщение.

imap_listmailbox

Читает список почтовых ящиков.

Синтаксис:

array imap_listmailbox(int imap_stream, string ref, string pat);

Возвращает массив, содержащий названия почтовых ящиков.

imap_listsubscribed

Перечисляет все подписанные ящики.

Синтаксис:

array imap_listsubscribed(int imap_stream, string ref, string pattern);

Возвращает массив всех почтовых ящиков на которые Вы подписаны. Аргументы ref и pattern указывают начальноеместорасположение откуда начинать поиск и шаблон, которому должны удовлетворять названия почтовых ящиков.

imap_mail_copy

Копирует указанные сообщения в почтовый ящик.

Синтаксис:

int imap_mail_copy(int imap_stream, string msglist, string mbox, int flags);

Возвращает true в случае успеха и false иначе.

Копирует почтовые сообщения указанные с помощью msglist в почтовый ящик mbox.

msglist - это диапазон, а не простономера сообщений.

Флаги - это битовые маски из

  • CP_UID - номера в последовательности содержат
  • UID-ы CP_MOVE - после копирования удалить сообщения из текущего почтового ящика

imap_mail_move

Переносит указанные сообщения в почтовый ящик.

Синтаксис:

int imap_mail_move(int imap_stream, string msglist, string mbox);

Переносит почтовые сообщения указанные с помощью msglist в почтовый ящик mbox.

msglist - это диапазон, а не простономера сообщений.

Возвращает true в случае успеха и false иначе.

imap_num_msg

Выдает количество сообщений в текущем почтовом ящике.

Синтаксис:

int imap_num_msg(void);

Возвращает количество сообщений в текущем почтовом ящике.

imap_num_recent

Возвращает количество недавно пришедших сообщений в текущем почтовом ящике.

Синтаксис:

int imap_num_recent(int imap_stream);

imap_open

Подключение к серверу (открытие почтового ящика).

Синтаксис:

int imap_open(string mailbox, string username, string password [, int flags]);

Функция imap_open() возвращает дескриптор почтового ящика IMAP (дескриптор подключения к серверу IMAP) или false при ошибке.

Эта функция может быть использована для открытия потоков к POP3 и NNTP серверам, но в этом случае некоторые функции будут недоступны.

Аргумент mailbox - задает имя сервера и путь к почтовому ящику. Имя сервера следует заключать в фигурные скобки "{" и "}", внутри которых должно содержаться: имя сервера (или его IP-адрес), возможно указание протокола (который начинается со слеша "/") и номера порта.

Для того, чтобы присоединиться к серверу IMAP на 143-й порт на локальной машине сделайте следующее:

$mbox = imap_open("{localhost:143}INBOX","user_id","password");

Для того, чтобы подсоединиться к POP3-серверу на 110-й порт на локальном сервере используйте:

$mbox = imap_open("{localhost/pop3:110}INBOX","user_id","password");

Для того, чтобы подсоединиться к NNTP-серверу на 119-й порт на локальном сервере используйте:

$nntp = imap_open("{localhost/nntp:119}comp.test","","");

Для того, чтобы подсоединиться к удаленному серверу замените "localhost" на имя или IP-адрес сервера к которому Вы хотите подсоединиться.

Опции - битовая маска из

  • OP_READONLY - Открыть почтовый ящик в режим "только чтение"
  • OP_ANONYMOUS - Не использовать или не обновлять .newsrc при использовании новостей
  • OP_HALFOPEN - Для IMAP и NNTP устанавливает соединение, но не открывает почтовый ящик
  • CL_EXPUNGE - Автоматически очищать почтовый ящик при закрытии

imap_ping

Проверяет поток IMAP на работоспособность.

Синтаксис:

int imap_ping(int imap_stream);

Возвращает true если поток еще работоспособен и false иначе.

Функция imap_ping() проверяет поток на работоспособность. Он может также проверять новую почту; это предпочтительный метод для периодической проверки новой почты и "живучести" удаленных серверов.

imap_renamemailbox

Переименовывает старый почтовый ящик в новый.

Синтаксис:

int imap_renamemailbox(int imap_stream, string old_mbox, string new_mbox);

Эта функция переименовывает старый почтовый ящик в новый. Возвращает true в случае успеха и false иначе.

imap_reopen

Заново открывает поток IMAP на новый почтовый ящик.

Синтаксис:

int imap_reopen(string imap_stream, string mailbox, string [flags]);

Возвращает true в случае успеха и false иначе.

Эта функция заново открывает указанный поток на новый ящик.

Опции - битовая маска из

  • OP_READONLY - Открыть почтовый ящик в режиме только чтение
  • OP_ANONYMOUS - Не использовать или не обновлять .newsrc при работе с новостями
  • OP_HALFOPEN - Для IMAP и NNTP устанавливает связь но не открывает почтовый ящик
  • CL_EXPUNGE - Очищает почтовый ящик при закрытии

imap_subscribe

Подписывает на почтовый ящик.

Синтаксис:

int imap_subscribe(int imap_stream, string mbox);

Возвращает true в случае успеха и false иначе.

imap_undelete

Снимает отметку с сообщения помеченного на удаление.

Синтаксис:

int imap_undelete(int imap_stream, int msg_number);

Эта функция cнимает отметку с сообщения помеченного на удаление функцией imap_delete().

Возвращает true в случае успеха и false иначе.

imap_unsubscribe

Снимает подписку с почтового ящика.

Синтаксис:

int imap_unsubscribe(int imap_stream, string mbox);

Возвращает true в случае успеха и false иначе.

imap_qprint

Конвертирует строку формата quoted-printable в 8-битовую строку.

Синтаксис:

string imap_qprint(string string);

Возвращает 8-битовую (бинарную) строку.

imap_8bit

Конвертирует 8-битовую строку в формат quoted-printable.

Синтаксис:

string imap_8bit(string string);

Возвращает строку в формате quoted-printable.

imap_binary

Конвертирует 8-битную строку в формат base64.

Синтаксис:

string imap_binary(string string);

Возвращает строку в формате base64.

imap_scanmailbox

Читает список почтовых ящиков, проводит поиск в названиях ящиков.

Синтаксис:

array imap_scanmailbox(int imap_stream, string string);

Возвращает массив, содержащий имена почтовых ящиков, которые имеют строку string в названии.

imap_mailboxmsginfo

Получает информацию о текущем почтовом ящике.

Синтаксис:

array imap_mailboxmsginfo(int imap_stream);

Возвращает информацию о текущем почтовом ящике. FALSE в случае неудачи.

Функция imap_mailboxmsginfo() проверяет статус текущего почтового ящика на сервере и возвращает информацию в объекте со следующими свойствами:

  • Date : дата сообщения
  • Driver : драйвер
  • Mailbox : название почтового ящика
  • Nmsgs : количество сообщений
  • Recent : количество недавно пришедших сообщений
  • Unread : количество непрочитанных сообщений
  • Size : размер почтового ящика

imap_rfc822_write_address

Возвращает правильно отформатированный email адрес.

Синтаксис:

string imap_rfc822_write_address(string mailbox, string host, string personal);

Возвращает правильно отформатированный email адрес по данному почтовому ящику, хосту и персональной информации.

imap_rfc822_parse_adrlist

Проводит разбор адресной строки.

Синтаксис:

string imap_rfc822_parse_adrlist(string address, string default_host);

Эта функция разбирает адресную строку и для каждого адреса возвращает массив объектов.

Есть 4 типа объектов:

  • mailbox - название почтового ящика (имя пользователя)
  • host - название хоста
  • personal - личное имя
  • adl - путь к домену-источнику

imap_setflag_full

Устанавливает флаги на сообщения.

Синтаксис:

string imap_setflag_full(int stream, string sequence, string flag, string options);

Эта функция застваляет добавить указанный флаг к набору флагов сообщения в указанной последовательности.

options - это битовая маска из ST_UID

Аргументы последовательности содержат UIDы вместо номеров

imap_clearflag_full

Очищает флаги сообщения.

Синтаксис:

string imap_clearflag_full(int stream, string sequence, string flag, string options);

Эта функция заставляет удалить флаги из набора флагов сообщения в указанной последовательности.

options - это битовая маска из ST_UID

Аргументы последовательности содержат UIDы вместо номеров

imap_sort

Сортирует сообщения в текущем почтовом ящике.

Синтаксис:

string imap_sort(int stream, int criteria, int reverse, int options);

Возвращает массив номеров сообщений рассортированных по данному параметру

reverse должен быть равен 1 если нужна сортировка в обратном порядке

Критерии сортировки (должен быть указан только один):

  • SORTDATE - по дате сообщения
  • SORTARRIVAL - по дате поступления
  • SORTFROM - по полю From
  • SORTSUBJECT - по теме сообщения
  • SORTTO - по полю To
  • SORTCC - по полю cc
  • SORTSIZE - по размеру

опции - битовая маска из

  • SE_UID - Возвратить UIDы вместо номеров последовательности
  • SE_NOPREFETCH - Не извелекать заранее найденные сообщения

imap_fetchheader

Возвращает заголовок сообщения.

Синтаксис:

string imap_fetchheader(int imap_stream, int msgno, int flags);

Эта функция заставляет извлечь полный, не отфильтрованный заголовок указанного сообщения в формате RFC 822 как текстовую строку.

Опиции:

  • FT_UID msgno является UID-ом
  • FT_INTERNAL Возвращаемая строка записана во внутреннем формате без каких-либо попыток канонизировать ее с помощью CRLF
  • FT_PREFETCHTEXT RFC822. Текст должен быть предварительно разобран. Это поможет избежать экстренных задержек если требуется извлечь полный текст сообщения (например, в операции "сохранить в локальном файле")

imap_uid

Эта функция возвращает UID по данному номеру сообщения в последовательности.

Синтаксис:

string imap_uid(string mailbox, int msgno);
Добавить страницу в закладки:
РАЗРЕШАЕТСЯ перепечатывать и копировать информацию ТОЛЬКО ПРИ РАЗМЕЩЕНИИ ссылки на оригинал!
(<A href="http://www.spravkaweb.ru/">Справочник Web-языков</A>)
другие проекты
Rambler\'s Top100 Индекс цитирования