imap_open
(PHP 4, PHP 5, PHP 7)
imap_open — Открывает поток IMAP к почтовому ящику
Описание
$mailbox
, string $username
, string $password
, int $options = 0
, int $n_retries = 0
, array $params = array()
) : resource
Открывает поток IMAP к mailbox.
Данная функция также может использоваться для открытия потока к серверам POP3 и NNTP, но часть функций и особенностей будет работать только с серверами IMAP.
Список параметров
-
mailbox -
Имя почтового ящика состоит из сервера и пути к почтовому ящику на нем. Специальное имя
INBOXиспользуется для почтового ящика текущего пользователя. Имена почтовых ящиков, содержащих интернациональные символы кроме входящих в печатное пространство ASCII, должны быть закодированы с помощью imap_utf7_encode().ВниманиеЕсли imap.enable_insecure_rsh не отключен, то передача в этот параметр не проверенных данных не безопасна.
Серверная часть, заключенная в фигурные скобки '{' и '}', состоит из имени или IP-адреса сервера, опционального порта (предваренного двоеточием) и опциональных спецификаций протокола (предваренных слешом '/').
Серверная часть является обязательной во всех параметрах почтового ящика.
Все имена, начинающиеся с
{являются удаленными именами и имеют такой синтаксис"{" remote_system_name [":" port] [flags] "}" [mailbox_name]где:-
remote_system_name- полное доменное имя сервера, либо IP-адрес в квадратных скобках. -
port- необязательный параметр. Определяет порт сервера -
flags- опциональные флаги, смотри таблицу ниже -
mailbox_name- имя почтового ящика. По умолчанию INBOX
Опциональные флаги Флаг Описание /service=serviceсервис доступа к почтовому ящику. По умолчанию "imap" /user=userимя пользователя для входа на сервер /authuser=userудаленный пользователь для аутентификации; если указано, то это будет тот пользователь, чей пароль используется (например administrator) /anonymousудаленный доступ под анонимным пользователем /debugзаписывать телеметрию протокола в специальный лог-файл приложения /secureне передавать пароль по сети в виде нешифрованного текста /imap,/imap2,/imap2bis,/imap4,/imap4rev1эквивалентно /service=imap/pop3эквивалентно /service=pop3/nntpэквивалентно /service=nntp/norshне использовать rsh или ssh для установки преавторизованной сессии IMAP /sslиспользовать SSLдля шифрования сессии/validate-certпроверять сертификаты серверов TLS/SSL (поведение по умолчанию) /novalidate-certне проверять сертификаты от серверов TLS/SSL. полезно для серверов с самоподписанным сертификатом /tlsпринудительно использовать start-TLSдля шифрования сессии и отвергать соединения с серверами его не поддерживающими/notlsне применять start-TLSдля шифрования сессии, даже если сервер его поддерживает/readonlyзапрос открытия в режиме "только чтение" (только IMAP; игнорируется для NNTP и выдает ошибку для SMTP и POP3) -
-
username -
Имя пользователя
-
password -
Пароль пользователя
username -
options -
options- битовая маска из одной или нескольких констант:-
OP_READONLY- открыть почтовый ящик только для чтения -
OP_ANONYMOUS- не использовать и не обновлять .newsrc для новостей (только NNTP) -
OP_HALFOPEN- открыть соединение, но не подключаться к почтовому ящику для имен IMAP и NNTP. -
CL_EXPUNGE- автоматически удалять все помеченные для удаления сообщения при закрытии почтового ящика (смотрите imap_delete() и imap_expunge()) -
OP_DEBUG- договоренности по протоколу отладки -
OP_SHORTCACHE- короткое кеширование (толькоelt) -
OP_SILENT- не передавать события (внутреннее использование) -
OP_PROTOTYPE- вернуть прототип драйвера -
OP_SECURE- не производить безопасную аутентификацию
-
-
n_retries -
Максимальное количество попыток соединения
-
params -
Параметры для соединения. Для установки одного или нескольких параметров соединения можно использоватиь следующие (строки) ключи:
-
DISABLE_AUTHENTICATOR- запрещает свойства аутентификации
-
Возвращаемые значения
В случае успеха возвращает поток IMAP, а в случае неудачи false.
Примеры
Пример #1 Различные способы использования imap_open()
<?php
// Для подключения к серверу 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 после протокола
// specification:
$mbox = imap_open ("{localhost:993/imap/ssl}INBOX", "user_id", "password");
// Для подключения к серверу SSL IMAP или POP3 с самоподписанным сертификатом,
// добавить /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-адрес сервера, к которому вы хотите подключиться.
?>
Пример #2 Пример использования imap_open()
<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");
echo "<h1>Почтовые ящики</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");
if ($folders == false) {
echo "Неудачный вызов<br />\n";
} else {
foreach ($folders as $val) {
echo $val . "<br />\n";
}
}
echo "<h1>Заголовки в INBOX</h1>\n";
$headers = imap_headers($mbox);
if ($headers == false) {
echo "Неудачный вызов<br />\n";
} else {
foreach ($headers as $val) {
echo $val . "<br />\n";
}
}
imap_close($mbox);
?>