Руководство по РНР 3.0 - Функции IMAP
Содержание
imap_append
imap_base64
imap_body
imap_check
imap_close
imap_createmailbox
imap_delete
imap_deletemailbox
imap_expunge
imap_fetchbody
imap_fetchstructure
imap_header
imap_headers
imap_listmailbox
imap_listsubscribed
imap_mail_copy
imap_mail_move
imap_num_msg
imap_num_recent
imap_open
imap_ping
imap_renamemailbox
imap_reopen
imap_subscribe
imap_undelete
imap_unsubscribe
imap_qprint
imap_8bit
imap_binary
imap_scanmailbox
imap_mailboxmsginfo
imap_rfc822_write_address
imap_rfc822_parse_adrlist
imap_setflag_full
imap_clearflag_full
imap_sort
imap_fetchheader
imap_uid
Для того, чтобы эти функции заработали вц должны скомпилировать 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 по данному номеру сообщения в последовательности.
Содержание