Новые книги

Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.

Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.
Эта книга научит вас, как разрабатывать программное обеспечение для платформы J2ME компании «Sun Microsystems». Эта книга придерживается стиля учебного пособия, это не справочное руководство.

Цель — дать вам твердую основу в понятиях и техниках, которая даст вам возможность решиться на самостоятельную разработку качественных приложений.

XVII. Функции IMAP

XVII. Функции IMAP


Для того, чтобы эти функции заработали вц должны скомпилировать 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_append


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

Описание


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

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

imap_append() добавляет текстовое сообщение в указанный почтовый ящик mbox. Если указаны необязательные флаги, также записывает в почтовый ящик и флаги.

При общении с сервером Cyrus IMAP нужно использовать в качестве ограничителей строки "\r\n" вместо "\n", иначе действие не выполнится.

imap_base64


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

Описание


string imap_base64(string text);

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

imap_body


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


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

Описание


array imap_check(int imap_stream);

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

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

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

imap_close


imap_close -- Закрывает поток IMAP

Описание


int imap_close(int imap_stream, int flags);

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

imap_createmailbox


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

Описание


int imap_createmailbox(int imap_stream, string mbox);

imap_createmailbox() создает новый почтовый ящик указанный в mbox.

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

imap_delete


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

Описание


int imap_delete(int imap_stream, int msg_number);

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

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

imap_deletemailbox


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

Описание


int imap_deletemailbox(int imap_stream, string mbox);

imap_deletemailbox() удаляет указанный почтовый ящик.

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

imap_expunge


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

Описание


int imap_expunge(int imap_stream);

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

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

imap_fetchbody


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


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


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


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

Описание


array imap_headers(int imap_stream);

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

imap_listmailbox


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

Описание


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

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

imap_listsubscribed


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

Описание


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

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

imap_mail_copy


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


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

Описание


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

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

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

imap_num_msg


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

Описание


int imap_num_msg(void);

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

imap_num_recent


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

Описание


int imap_num_recent(int imap_stream);

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

imap_open


imap_open -- Открывает поток IMAP в почтовый ящик

Описание


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

В случае успеха возвращает поток IMAP или false иначе. Эта функция может быть использована для открытия потоков к POP3 и NNTP серверам. Для того, чтобы присоединиться к серверу 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_ping -- Проверяет поток IMAP на работоспособность

Описание


int imap_ping(int imap_stream);

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

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

imap_renamemailbox


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

Описание


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

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

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

imap_reopen


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


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

Описание


int imap_subscribe(int imap_stream, string mbox);

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

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

imap_undelete


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

Описание


int imap_undelete(int imap_stream, int msg_number);

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

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

imap_unsubscribe


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

Описание


int imap_unsubscribe(int imap_stream, string mbox);

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

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

imap_qprint


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

Описание


string imap_qprint(string string);

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

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

imap_8bit


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

Описание


string imap_8bit(string string);

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

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

imap_binary


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

Описание


string imap_binary(string string);

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

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

imap_scanmailbox


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

Описание


array imap_scanmailbox(int imap_stream, string string);

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

imap_mailboxmsginfo


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

Описание


array imap_mailboxmsginfo(int imap_stream);

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

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

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

imap_rfc822_write_address


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

Description


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

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

imap_rfc822_parse_adrlist


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

Описание


string imap_rfc822_parse_adrlist(string address, string default_host);

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

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

imap_setflag_full


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

Описание


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

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

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

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

imap_clearflag_full


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

Описание


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

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

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

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

imap_sort


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

Описание


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

Возвращает массив номеров сообщений рассортированных по данному параметру Rev должен быть равен 1 если нужна сортировка в обратном порядке

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

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

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

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

imap_fetchheader


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

Описание


stringimap_fetchheader(int imap_stream, int msgno, int flags);

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

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

imap_uid


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

Описание


string imap_uid(string mailbox, int msgno);

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

[Назад][Содержание][Вперед]