Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> www.mail.ru + imap_open, www.mail.ru + imap_open 
:(
    Опции темы
Serge2k
Дата 15.7.2005, 23:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Сразу хочу извиниться за то, что задал этот вопрос, т.к. тема уже обсуждалась неоднократно... Так вот.... Проблема в следующем... Написал класс для проверки наличия новой почты на pop3 серваке... И был крайне удивлен, когда imap_open не может открыть поток... Я тестил все на своем почтовом ящике c www.mail.ru... Пытался найти еррор часа два, а потом попробовал вбить параметры своего почтового ящика с работы (сайт фирмы хостится на infobox).... Моментально все заработало... Не могу понять, в чем проблема... Пусть есть ящик: [email protected]
На mail.ru написано следующее:
Цитата

Сервер входящей почты (POP3-сервер): POP.<домен>, где <домен> - домен Вашего почтового ящика (для почтового ящика [email protected] - pop.mail.ru, [email protected] - pop.list.ru, [email protected] - pop.bk.ru, [email protected] - pop.inbox.ru).

Имя пользователя на POP-сервере: имя почтового ящика без значка "@" и названия домена (для почтового ящика [email protected] - mailname, [email protected] - listname, [email protected] - bkname, [email protected] - inboxname).

Пароль: Ваш пароль к почтовому ящику [email protected], [email protected], [email protected], или [email protected].

Порт: POP3 - 110

Соответственно для [email protected] делаем

Код
 $stream = imap_open("{pop.bk.ru/pop3:110}INBOX","user","pass");


И вот здесь то у меня поток и не открывается.... У кого нить есть какие-нить соображения? Может у mail.ru какое нить шифрованное соединение надо использовать... Но я вроде по telnet'у пробовал коннектиться, все работает нормально... Вощем, подскажите плз...[code=php]

  Вверх
Mal Hack
Дата 15.7.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



POP3 сервер это не IMAP. Mail.Ru не предоставляет IMAP сервера для внешнего входа, как в принципе и другие бесплатные почтовые серверы.
PM ICQ   Вверх
Serge2k
Дата 16.7.2005, 00:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ваще то не понял, про что ты ваще....
Цитата
POP3 сервер это не IMAP

Ясное дело... Но ф-ции применяются одни и те же...
  Вверх
Mal Hack
Дата 16.7.2005, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Так, туплю малость...
В чем конкретно выражается: "И вот здесь то у меня поток и не открывается....".
Ошибка или что?
В начало скрипта:
Код
error_reporting(E_ALL); 

И после попытки подключения попробуй выведи:
Код
print_r( imap_errors() );
# или
print_r( imap_alerts() );

Еще, попробуй 4 параметр указаьб у imap_open
PM ICQ   Вверх
Black
Дата 16.7.2005, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 7
Всего: 45



Цитата(Mal @ 15.7.2005, 23:52)
POP3 сервер это не IMAP. Mail.Ru не предоставляет IMAP сервера для внешнего входа, как в принципе и другие бесплатные почтовые серверы.


pochta.ru предоставляет и тоже бесплатна smile



--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 16.7.2005, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Эх... Давно я халявой не пользовался smile
Но mail.ru вроде не предоставляе точно
PM ICQ   Вверх
Serge2k
Дата 16.7.2005, 13:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Очень все странно... Вчера не работало, а сеня возьми и заработай... Может у mail.ru глюки какие нить были... Но тут то я столкнулся с другой проблемой... Все сообщения на почтовом ящике имеют в заголовке Recent флаг равный 'N'. Получается что все они свежие и не прочитанные... Возникает вопрос, а когда вообще этот флаг меняется.... Я то думал что он изменяется при прочтении письма... Но вот например на моем почтовом ящике 121 письмо... мой скрипт выдает, что все они новые и не прочтенные, но веб интерфейс mail.ru как то определяет, где там новые, а где прочтенные... Никто не знает с чем может быть это связано... Может mail.ru просто в базу записывает какое письмо прочитали, а какое нет?
Кстати Mal Hack.... Цитата с mail.ru
Цитата
Почта@Mail.ru теперь поддерживает работу по протоколу IMAP!

Так вот такие пироги smile
  Вверх
Mal Hack
Дата 16.7.2005, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Serge2k @ 16.7.2005, 14:47)
Так вот такие пироги

Звиняй, совсем отстал от жизни.
http://www.mail.ru/pages/help/337.html а у тебя POPовский север был прописан.

Цитата(Serge2k @ 16.7.2005, 14:47)
Может mail.ru просто в базу записывает какое письмо прочитали, а какое нет?

Думаю что вряд ли. В качестве проверки, попробуй через Аутлук зайти на ИМАП сервер и удалить (логически) там одно письмо.
Добавлено @ 13:56
Еще покажи код, как ты письмо смотришь.
А вообще, было бы не плоо зарегистрироваться на форуме smile
PM ICQ   Вверх
Serge2k
Дата 16.7.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.7.2005

Репутация: нет
Всего: нет



Зарегился... smile
Код

        $stream = imap_open("\{$host:110}INBOX",$login,$password,P_READONLY);
        if($stream){
            $msgs = imap_sort($stream,SORTDATE,false);
            if(is_array($msgs)){
                $not_read_letters = 0;
                foreach($msgs as $msg_no){
                    $total_letters++;
                    $msg = imap_header($this->stream,$msg_no);
                    if(($msg->Recent == 'N')||($msg->Unseen == 'U'))
                        $not_read_letters++;
                }
                echo "Новых писем на ящике $email : $not_read_letters";
                imap_close($stream);
            }
            else error(2);
        }
        else error(1);


Мог где нить опечататься, т.к. для того чтоб не выкладывать весь класс, убирал куски ООП....
Добавлено @ 14:17
Млин... Чет я туплю... вот, пример, на котором я все тестирую....
Код

<?php
    $stream = imap_open("{$host/pop3:110}INBOX","$login","$password");
    if($stream){
        echo "WELL DONE. Connected to server<br>";
        $msgs = imap_sort($stream,SORTDATE,false);
        if(is_array($msgs)){
            $total_letters = 0;
            $not_read_letters = 0;
            foreach($msgs as $msg_no){
                $total_letters++;
                $msg = imap_header($stream,$msg_no);
                                 echo "<hr>Message # $msg_no<br>";
                echo "Recent: $msg->Recent<br>";
                echo "Unseen: $msg->Unseen<br>";
                echo "From: $msg->reply_toadress<br>";
            }
            echo "Total letters : $total_letters<br>";
            echo "Not read letters : $not_read_letters<br><br>";

        }
        imap_close($stream);
    }
    else echo "Not connected";
?>

PM MAIL   Вверх
Mal Hack
Дата 16.7.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Хм. Вроде по коду все правильно.
Странно, однако...
Добавлено @ 14:21
Попробуй на всякий для проверки одному письму поставить флаг Seen, через imap_setflag_full.
Что потом тебе скажет твой скрипт?

PM ICQ   Вверх
Serge2k
Дата 16.7.2005, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.7.2005

Репутация: нет
Всего: нет



А у меня кстати ваще не выводится параметры
$msg->Unseen
и
$msg->reply_toadress

Выводится тока

$msg->Recent

Так что флаги я изменил, а вот теперь посмотреть, изменилось ли что нить в работе моего скрипта не могу.... smile
PM MAIL   Вверх
Mal Hack
Дата 16.7.2005, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Код

print_r(imap_headers($stream));

PM ICQ   Вверх
Serge2k
Дата 16.7.2005, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.7.2005

Репутация: нет
Всего: нет



Примеры того, что получилось....
Для непрочитанного письма....
[121] => N 122)16-Jul-2005 =?koi8-r?Q?=F3=C5=D2 (764 chars) )
Для прочитанного
[120] => N 121)15-Jul-2005 Club Mnogo.ru =?koi8-r?B?7s/X2cUg0NLFxN (7826 chars)
PM MAIL   Вверх
Mal Hack
Дата 16.7.2005, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Значит флаг N все-таки на IMAP стоит.
Видать это специфика mail.ru
PM ICQ   Вверх
Serge2k
Дата 16.7.2005, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 16.7.2005

Репутация: нет
Всего: нет



Ваще то странно.... Щас попробовал другую свою почту потестить на этом скрипте... То же самое... Получается что все сообщения непрочитанные... Непонятно... Может я проверяю как то не так....На скока я понимаю
$msg->Recent == 'N' || $msg->Unseen == 'U'
достаточно для того, чтоб сказать что сообщение непрочитанное... Или я не прав?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0997 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.