(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] где:
Флаг | Описание |
---|---|
/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
Параметры для соединения. Для установки одного или нескольких параметров соединения можно использоватиь следующие (строки) ключи:
В случае успеха возвращает поток IMAP, а в случае неудачи FALSE
.
Версия | Описание |
---|---|
5.3.2 | Добавлен параметр params |
5.2.0 | Добавлен параметр n_retries |
Пример #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);
?>