Учебник РНР
НазадВперёд

imap_open

(PHP 3, PHP 4)

imap_open - открывает IMAP-поток в mailbox.

Описание

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

Возвращает IMAP-поток при успехе и FALSE при ошибке. Эта функция может использоваться также для открытия потоков к POP3 и NNTP серверам, но некоторые функции и и возможности доступны только на IMAP-серверах.

Имя mailbox'а состоит из серверной части и пути mailbox'а на этом сервере. Специальное имя INBOX предназначено для персонального mailbox'а текущего пользователя. Серверная часть, заключённая в '{' и '}', состоит из имени сервера или ip-адреса, необязательного номера порта (с префиксом ':') и необязательной спецификации протокола (с префиксом '/'). Серверная часть является обязательной во всех параметрах mailbox'а. Имена почтовых ящиков, содержащие интернациональные символы за пределами печатаемых ASCII, должны быть кодированы с помощью imap_utf7_encode().

Опции это битовая маска с одним или более значений:

  • OP_READONLY - открывть mailbox только для чтения

  • OP_ANONYMOUS - не использовать или не обновлять .newsrc на новый (только в NNTP)

  • OP_HALFOPEN - для имён IMAP и NNTP, открывает соединение, но не открывает mailbox

  • CL_EXPUNGE - очищает mailbox автоматически после его закрытия

Для соединения с IMAP-сервером, запущеным на порту 143 на локальной машине, сделайте так:
$mbox = imap_open ("{localhost:143}INBOX", "user_id", "password");

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

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

Для соединения с SSL IMAP или POP3-сервером добавьте /ssl после спецификации протокола:

$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");

Для соединения с SSL IMAP или POP3-сервером с self-signed сертификатом добавьте
/ssl/novalidate-cert после спецификации протокола:

$mbox = imap_open ("{localhost:995/pop3/ssl/novalidate-cert}", "user_id", "password");

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

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

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

Пример 1. imap_open()

$mbox = imap_open ("{your.imap.host:143}", "username", "password");

echo "<p><h1>Mailboxes</h1>\n";
$folders = imap_listmailbox ($mbox, "{your.imap.host:143}", "*");

if ($folders == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key, $val) = each ($folders)) {
        echo $val."<br>\n";
    }
}

echo "<p><h1>Headers in INBOX</h1>\n";
$headers = imap_headers ($mbox);

if ($headers == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key,$val) = each ($headers)) {
        echo $val."<br>\n";
    }
}

imap_close($mbox);

НазадОглавлениеВперёд
imap_num_recentВверхimap_ping