Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IdPOP3+SSL, Работает через раз 
:(
    Опции темы
Misha_White
  Дата 22.9.2014, 08:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Доброго дня!
Есть почтовый клиент, который получал благополучно письма с мэйла.
В выходные мэйлру сказал, что теперь к нему можно подключатся только по SSL. Ладно, нашел пример, запилил, библиотеки подсунул, но, соединение проходит не всегда. Иногда с первого раза, иногда через раз, иногда с третьего-пятого раза. 
Ошибка:
Код

Socket Error #10060 Connection timed out


wtf?

PS: Delphi XE,  Indy 10.5.7.

Код

procedure TMainForm.InitSSL;
begin
  IdPOP31.IOHandler:=SSLHandler;
  IdPOP31.UseTLS:=utUseImplicitTLS;
  case cbSSLType.ItemIndex of
    0:SSLHandler.SSLOptions.Method:=sslvSSLv2;
    1:SSLHandler.SSLOptions.Method:=sslvSSLv23;
    2:SSLHandler.SSLOptions.Method:=sslvSSLv3;
    3:SSLHandler.SSLOptions.Method:=sslvTLSv1;
  end;

end;

procedure TMainForm.Button2Click(Sender: TObject);
var MsgCount, i, k: integer;
    attname:string;
begin
  try
  IdPOP31.Username:=EMail.Text;
  IdPOP31.Password:= EMPass.Text;
  IdPOP31.Host:= EMServ.Text;
  IdPOP31.Port:= StrToInt(EMPort.Text);

  if CheckBUseSSL.Checked then
    InitSSL
  else
    begin
      IdPOP31.IOHandler:= nil;
      IdPOP31.UseTLS:=utNoTLSSupport;
    end;


    IdPOP31.Connect;
      except
        on E:Exception do
        begin
          Memo1.Lines.Add(DateTimeToStr(now)+': Ошибка '+E.Message);
          Exit;

        end;
     end;



Библиотеки из "OpenSSL 1.0.1i 6 Aug 2014" закинул в папку с исполняемым файлом.



Это сообщение отредактировал(а) Misha_White - 22.9.2014, 09:12
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
Misha_White
Дата 22.9.2014, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сделал такой костыль.

Код

i:=1;
    while i<10 do
     begin
      try
      IdPOP31.Connect;
      except
        on E:Exception do
        begin
          Memo1.Lines.Add(DateTimeToStr(now)+': Ошибка '+E.Message);
          inc(i);
          Continue;
        end;
       end;
       i:=10;
     end;





Получается как-то так:
Код

22.09.2014 15:15:26: Ошибка Socket Error # 10060
Connection timed out.
22.09.2014 15:15:26: Ошибка Socket Error # 10060
Connection timed out.
22.09.2014 15:15:28: Соединение с сервером прошло успешно
В почтовом ящике 0 писем
22.09.2014 15:15:28: Disconnected



Это сообщение отредактировал(а) Misha_White - 22.9.2014, 10:16
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
Akella
Дата 22.9.2014, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



1. А Если удалить встроенные инди и установить максимально актуальные?
2. Сделай пинг к этому маил серверу. Вдруг проблема на ПК или на каком-нибудь шлюзе.
3. Увеличь время timeout`а.

PM MAIL   Вверх
Misha_White
Дата 23.9.2014, 03:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



2.
Код

Обмен пакетами с pop.mail.ru [94.100.180.74] с 32 байтами данных:
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=84мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=80мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=86мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=82мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=88мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=84мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=78мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=80мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=84мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=80мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=87мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=87мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=86мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=85мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=81мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=80мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=83мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=79мс TTL=55
Ответ от 94.100.180.74: число байт=32 время=80мс TTL=55

Статистика Ping для 94.100.180.74:
    Пакетов: отправлено = 39, получено = 39, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 78мсек, Максимальное = 88 мсек, Среднее = 82 мсек


3. Поставил
Код

IdPOP31.ConnectTimeout:=30000;

Будем смотреть.Не помогло... Чего-то я недопонимаю.

Такое чувство, что коннектТаймаут не работает.

Код

23.09.2014 08:35:48: Ошибка Socket Error # 10060
Connection timed out.
23.09.2014 08:35:48: Ошибка Socket Error # 10060
Connection timed out.
23.09.2014 08:35:49: Ошибка Socket Error # 10060
Connection timed out.
23.09.2014 08:35:49: Ошибка Socket Error # 10060
Connection timed out.
23.09.2014 08:35:51: Соединение с сервером прошло успешно
В почтовом ящике 0 писем
23.09.2014 08:35:51: Disconnected


Это сообщение отредактировал(а) Misha_White - 23.9.2014, 03:54
--------------------
Я не волшебник... я только учусь...  
PM MAIL ICQ Skype   Вверх
Akella
Дата 23.9.2014, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



а ReadTimeout?
PM MAIL   Вверх
Akella
Дата 23.9.2014, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

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



Цитата(Akella @ 22.9.2014,  12:52)
1. А Если удалить встроенные инди и установить максимально актуальные?
2. Сделай пинг к этому маил серверу. Вдруг проблема на ПК или на каком-нибудь шлюзе.
3. Увеличь время timeout`а.

4. Удали встроенные инди, скачай актуальные и установи. Да, помучаешься, но зато потом будешь доволен.

Добавлено через 4 минуты и 30 секунд
Ещё у компоненты IdSSLIOHandlerSocketOpenSSL1 есть ReadTimeout/ConnectTimeout
Ты же подключаешь?

Добавлено через 7 минут и 43 секунды
здесь http://www.sql.ru/forum/1019696/tidhttp-ti...ction-timed-out человек пишет, что ему помогла переустановка indy
и у нас на форуме она по шагам расписана
так что вперёд smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

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


 




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


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

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