Получение почты imap_open

gs-design

Новичок
Доброе время суток!

У меня

$res = imap_open("{server:143/novalidate-cert}INBOX", "login", "pass");
print_r(imap_errors());

выдаёт на FreeBSD ошибку:

Warning: imap_open(): Couldn't open stream {serve:143/novalidate-cert}INBOX in /usr/home/gs/mail/mail_test.php on line 12
Array
(
[0] => Retrying CRAM-MD5 authentication after AUTHENTICATE CRAM-MD5 authentication failed
[1] => Retrying CRAM-MD5 authentication after AUTHENTICATE CRAM-MD5 authentication failed
[2] => Can not authenticate to IMAP server: [CLOSED] IMAP connection broken (authenticate)
)

На другие сервера ходит без проблем ( в частности проверял на gmail.com). Проблема в сервере - маловероятна, т.к. The Bat и Thunderbird работают нормально, да и из под Win проблем не наблюдаю....

Windows XP (Денвер) PHP Version 5.2.12
FreeBSD 8.1-RC1 PHP Version 5.2.13

Подскажите направление решения данной проблемы и/или как вывести/где прочитать более подробный лог работы функции imap_open
 

gs-design

Новичок
Понимаю, что звучит очень глупо, но где указывается месторасположение "application's debug log" ?
В мане читал что можно проанализировать и даже пользовался, но вот в какой лог пишется - не понял/не нашёл :(
 

gs-design

Новичок
Удалось получить лог общения с сервером у админа моих 2 подключений.
Вывод, при первом (Винда) идёт через LOGIN.
При втором (Фря) - потытка соединиться через CRAM-MD5:

18806:Jun 22 23:42:38 relay imap4d[50877]: C: 00000000 CAPABILITY
18807:Jun 22 23:42:38 relay imap4d[50877]: S: * CAPABILITY IMAP4rev1 NAMESPACE ID IDLE LITERAL+ UNSELECT AUTH=ANONYMOUS AUTH=EXTERNAL AUTH=LOGIN AUTH=PLAIN AUTH=SECURID AUTH=DIGEST-MD5 AUTH=CRAM-MD5 AUTH=SCRAM-SHA-1
18808:Jun 22 23:42:38 relay imap4d[50877]: S: 00000000 OK CAPABILITY Completed
18809:Jun 22 23:42:38 relay imap4d[50877]: C: 00000001 AUTHENTICATE CRAM-MD5
18810:Jun 22 23:42:38 relay imap4d[50877]: S: + PDg4MzQ2MzEzMzEyMDY3MTMyMTU3LjBAbG9jYWxob3N0Pg==
18811:Jun 22 23:42:38 relay imap4d[50877]: C: c3Vyc3VtIGY2ZjZhZDYwYjljOTJlNWExYTZiZjQ4MTJhNDQxODE3
18812:Jun 22 23:42:38 relay imap4d[50877]: GSASL error: Authentication failed because the password was not provided.
18813:Jun 22 23:42:38 relay imap4d[50877]: S: 00000001 NO AUTHENTICATE CRAM-MD5 authentication failed

Проверенный вручную ответ клиента серверу говорит, что строка формируется верно (ссылка, ссылка)

Подскажите, пожалуйста, можно ли как-то заставить imap_open соединяться c помощью LOGIN:
18771:Jun 22 23:39:29 relay imap4d[50461]: C: 00000001 LOGIN test "***"
18772:Jun 22 23:39:29 relay imap4d[50461]: user `test' logged in (source: sql)

?
 

gs-design

Новичок
Короче решил. Всем спасибо, кто отозвался.

Вдруг пригодится:
3 варианта решения проблемы:
1 - добавить на сервере поддержку криптования. Прийдётся пересобирать сервер + добавлять программы(библиотеки) реализующие CRAM-MD5 и д.р. - Это делает уже админ сервера
2 - убрать из S: * CAPABILITY IMAP4rev1 методы AUTH=CRAM-MD5 . Как это делать не знаю. тоже делает админ сервера
3 - переехать как минимум на PHP 5.3 и использовать DISABLE_AUTHENTICATOR (типо так: imap_open("{w2010ExchangeServer:993/imap/ssl}", $user, $password, NULL, 1, array('DISABLE_AUTHENTICATOR' => 'CRAM-MD5'));) обсуждалась проблема тут: https://bugs.php.net/bug.php?id=33500

Задействовали метод 2 (сервер внутренний), только после этого сервер перестал предлагать разные методы аутентификации и imap_open сама выбрала LOGIN

Да, к слову, использовал такую конструкцию для дебажинга:


ini_set('error_log','imap.txt');
$this->mailBox = imap_open("{" . $server . "}INBOX", $login, $pass, OP_DEBUG) or die("error : " . print_r(imap_errors()) /*imap_last_error()*/);

в начале меня ничем это не впечатлило... Но в какой-то момент резко пошли логи и лились со скоростью 100M в минуту. так что если кто будет тестить - осторожнее :)
 
Сверху