Конференция "Сети" » IdPOP31.Retrieve(n,Msg);//Задумывается навсегда( [D7]
 
  • reqyz (09.10.10 14:18) [0]
    procedure TForm1.Button2Click(Sender: TObject);
    var
    i,n:integer;
    Msg:TIdMessage;
    begin
    if(IdPOP31.Connected)then
    begin
    MSG:= TIdMessage.Create(self);
    i:=Idpop31.CheckMessages;//определяет правильно
    for n:=1 to i do
    begin
    Msg.Clear;
    //IdPOP31.RetrieveHeader(i,Msg);
    //ListBox1.Items.Add(Msg.Subject);//считывает правильно
    IdPOP31.Retrieve(n,Msg);//Задумывается навсегда(
    Memo1.Text:=Memo1.Text+Msg.Body.Tex t;
    end;
    Msg.Free;
    end;
    Вопрос:Почему он не может обработать эту строку, если все предыдущие обрабатывает правильно
    p.s. Использовал любые другие варианты реализации чтения писем этим компанентом, всегда останавливается на той строке(, а мне нужно именно пользуясь инди
  • RGV © (09.10.10 14:58) [1]
    возможно у тебя там много писем
    что видеть приход каждого письма ставь после Memo1.Text:=Memo1.Text+Msg.Body.Tex t; application.progressmessages;
  • reqyz (09.10.10 15:04) [2]
    письма у меня всего 3, и до этой строчки прога всё равно не доходит, говорю же, задумывается на получении письма, первого самого
  • RGV © (09.10.10 15:12) [3]
    пробуй так
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    var
     i:integer;
    begin
     pop.Connect;
     i:=pop.CheckMessages;
     memo1.Lines.Add('Messages on server ='+inttostr(i)) ;
     application.ProcessMessages;
     pop.RetrieveRaw(1,memo1.Lines);
     pop.Disconnect;
    end;


    напиши чо получилось
  • reqyz (09.10.10 15:18) [4]
    зависло на строке POP.RetrieveRaw(1,memo1.Lines);
  • RGV © (09.10.10 15:24) [5]
    хм.....
    даже и не знаю чем помочь, может снифером смотреть чего там кто посылает, поможет найти закляк
  • RGV © (09.10.10 15:33) [6]
    может там у тебя еще что то есть, мож дело не POP`е  ))))
    побробуй создать пустой проект, кинуть мемо и поп3 кнопку и событе которое я описал выше
  • reqyz (09.10.10 15:45) [7]
    так же зависает на той строке, качаю сниффер, может найдёт чё, сейчас качнул несколько разных, на делфях написанных почтовиков, та же фигня, везде виснет при считывании текста почты, думаю вирус(, спасибо за помошь)
  • demin_as (05.04.11 11:28) [8]
    Ребята проблема актуальная.
    Уже месяц бьюсь с багами INDY , но проблема у каждой версии своя.
    В стандартной версии с Delphi 6.0, так же при получении почты и на той же строчке программа периодически выдавала ошибку.
    Читав форумы принял решение замены версии на Indy 9.0.18
    Теперь тот же проект ошибки не выдает, но перестал определять части письма. Это сделало невозможным извлечь вложение поскольку
    IdMessage.MessageParts.Count = 0
  • demin_as (05.04.11 12:19) [9]
    Удалено модератором
    Примечание: спам
  • brother © (05.04.11 12:24) [10]
    > периодически выдавал ошибку


    > При попытке сделать «id = 0» или «id = 1» выдает ошибку.

    партизайнен?
  • Anatoly Podgoretsky © (05.04.11 14:18) [11]

    > Уже месяц бьюсь с багами INDY , но проблема у каждой версии
    > своя.

    Не ты один, но другие уже давно сделали вывод - ну его нафиг эту заливную рыбу.
  • demin_as (26.04.11 08:22) [12]
    Моя задача вытащить Attachment с письма используя Delphi 6.0
    Indy 9.0.18

    Параметры письма:
    MIME-Version: 1.0
    Content-Type: application/vnd.ms-excel;
       name="11.04.11.XLS"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment;
       filename="11.04.11.XLS"
    X-Mailer: Microsoft Outlook Express 6.00.3790.4657
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4721

    Общеизвестный метод в данном случае не работает:
          for i:=0 to MessageBase.MessageParts.Count do
          begin
            if MessageBase.MessageParts.Items[i].ClassType = TIdAttachment then
            begin
              Attach := MessageBase.MessageParts.Items[i] as TIdAttachment;
              Attach.SaveToFile(Attach.FileName);
            end;
          end;

    Показывает MessageBase.MessageParts.Count  = 0 , следовательно перебор частей письма не имеет смысла хотя вложение фактически присутствует в письме.
    Сохранить в файл *.EML удается без проблем.

    Помогите пожалуйста разобраться как вытащить атачмент из письма или *.eml файла.
  • Anatoly Podgoretsky © (26.04.11 11:18) [13]
    > demin_as  (26.04.2011 08:22:12)  [12]

    Я бы тоже задумался, чего автор ко мне пристал, с циклом на единицу больше.
    И видимо проверку диапазонов не включил.
  • demin_as (27.04.11 02:54) [14]
    > Я бы тоже задумался, чего автор ко мне пристал, с циклом на единицу больше.
    На счет цикла тут все нормально. Проблема только в том, что MessageBase.MessageParts.Count показывает "0"

    > И видимо проверку диапазонов не включил.
    Диапазонов чего...?
 
Конференция "Сети" » IdPOP31.Retrieve(n,Msg);//Задумывается навсегда( [D7]
Есть новые Нет новых   [134437   +27][b:0][p:0.001]