15 / 13 / 2
Регистрация: 21.12.2019
Сообщений: 246
RAD XE3+

Как победить Connection Closed Gracefully в IDIMAP4

04.03.2020, 15:01. Показов 1053. Ответов 2

Студворк — интернет-сервис помощи студентам
Есть код, потоковый Imap, будет в данном примере рассматривать приложение как 1 поток. передаю туда Host, port, email, pass и пытаюсь подключиться, ниже execute

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  Imap := TIdIMAP4.Create(nil);
  Imap.Username := email;
  Imap.Port := 993;
  Imap.Password := pass;
  Imap.ConnectTimeout := Check.TimeOut;
  Imap.ReadTimeout:= Check.TimeOut;
  SSL := TIdSSLIOHandlerSocketOpenSSL.Create(imap);
  Imap.IOHandler := SSL;
  Imap.UseTLS := utUseImplicitTLS;
  SSL.ReadTimeout := Check.TimeOut;
  SSL.ConnectTimeout := Check.TimeOut;
 
// делаю проверку
try
      Imap.Connect(True);
      if Imap.Connected then
      begin
        ErrNum := -1;
        Break;
      end;
 
  on e: Exception do
    begin
      ErrorText:= Imap.GetResponse+'=>'+e.ClassName+'->'+e.Message;
 
 
 
 
      if Pos('AUTHENTICATIONFAILED',e.ClassName)>0 then
      begin
      ErrNum:=0;
      Exit;
      end;
 
      if
      (Pos('Connection refused',e.message)>0) or
      (Pos('Socks server did not respond',e.message)>0)
      then
        begin
        ErrNum:=1;
        Break;
        end;
 
      if Pos('Host not found',e.message)>0 then
      begin
      ErrNum:=2;
      inc(imap_n);
      Continue;
      end;
 
      if
      (Pos('Read timed out',e.message)>0) or
      (Pos('Connect timed out',e.message)>0) then
      ErrNum:=3;
    end;
и в конце поток приходит сюда

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure Checker.TermChecker(Sender: TObject);
var
th: THR_CHECKER absolute Sender;
begin
if th.FatalException <> nil then MainForm.sMemo1.Lines.Add('Fatal: '+th.FatalException.ClassName+'->'+th.FatalException.ToString);
MainForm.sMemo1.Lines.Add(th.ImapString);
  with MainForm do
  case th.ErrNum of
  -1: sMemo1.Lines.Add( th.email+':'+th.pass+'-> Good Acc' );
  0: sMemo1.Lines.Add( th.email+':'+th.pass+'-> Bad acc' );
  1: sMemo1.Lines.Add( th.email+':'+th.pass+'-> proxies failed' );
  2: sMemo1.Lines.Add( th.email+':'+th.pass+'-> bad imap' );
  3: sMemo1.Lines.Add( th.email+':'+th.pass+'-> connection time out' );
  4: sMemo1.Lines.Add( th.email+':'+th.pass+'-> Connection Closed Gracefully' );
  else
    sMemo1.Lines.Add( th.email+':'+th.pass+'-> Strange error:'+th.ErrorText );
  end;
 
if NumAccount >= MainBase.Count-1 then ShowMessage('Stopped') else CreateChecker;
end;
Но почему-то ошибка крашит поток в Fatal, а не обрабатывается как Exception, может кто знает? Может кто-то поможет избавиться от этого паразита?) Знаю что это не ошибка, а уведомление и есть оно в отладчике, но мне так-то нужно работать с почтой, поэтому нужно убрать это как-то
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2020, 15:01
Ответы с готовыми решениями:

Connection closed gracefully
Доброго вечера. При написании небольшого почтовика столкнулся с проблемой. Выскакивает окошко и сообщение не приходит на почту. ...

connection closed gracefully
В программе 2 таймера, иногда выскакивает ошибка &quot;connection closed gracefully&quot; как это исправить? Программа может работать на 2 компах...

Connection closed by gracefully
smtp.host:= 'smtp.gmail.com'; smtp.AuthType:= satDefault; smtp.Port:=port; smtp.Username:=email; smtp.Password:=pass; ...

2
882 / 404 / 173
Регистрация: 20.10.2016
Сообщений: 1,828
05.03.2020, 04:40
Connection Closed Gracefully означает, что соединение корректно закрыто. Разбирайтесь, кто у вас соединение закрывает.
0
15 / 13 / 2
Регистрация: 21.12.2019
Сообщений: 246
05.03.2020, 13:29  [ТС]
Цитата Сообщение от Nanotentacle Посмотреть сообщение
Connection Closed Gracefully означает, что соединение корректно закрыто. Разбирайтесь, кто у вас соединение закрывает.
оно понятно, странно что закрывает, ибо у меня все настройки 100% верные, SSL dll хорошие, разные версии пробовал
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2020, 13:29
Помогаю со студенческими работами здесь

Connection Closed Gracefully
Выскакивает ошибка указанная в заголовке темы! unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes,...

Connection Closed Gracefully IdPOP3
Вылазит ошибочка совершенно неоткуда и беспричинно. Проверяю письма на наличие определенного письма, перебираю так ящики. Сразу идет все...

Ошибка в программе //Connection Closed Gracefully
var zap:string; start:textfile; filebat:string; filebat2:string; begin ...

Авторизация на сайте (Connection Closed Gracefully)
Авторизация на сайте. Ошибка: Connection Closed Gracefully Компоненты на форме: Memo3: TMemo; Button3: TButton; ...

Connection Closed Gracefully выскакивает и прога не работает))
Здраствуйте, помогите плж))) procedure TForm1.Button1Click(Sender: TObject); begin POP3.Host:='mail.ru'; // адресс почтового сервера ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru