Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Вниз

Проверка мыла на наличие новых писем   Найти похожие ветки 

 
Ramon ©   (2004-10-22 15:36) [0]

Как проверить не пришло ли что-нибудь,и если пришло,то как забрать?


 
Smithson   (2004-10-22 15:40) [1]

Поставт себе Indy (http://www.nevrona.com/Indy/download/Files/Indy9.html) и смотри на idSMTP.


 
Reindeer Moss Eater ©   (2004-10-22 15:45) [2]

Долго же ему смотреть придется.


 
ИМХО ©   (2004-10-22 15:49) [3]

idSMTP - отправка, ему нужОн POP


 
Ramon ©   (2004-10-22 15:50) [4]

Если честно,я не понял ничего.Можно поподробнее.И как это сделать сделать средствами делфей?


 
Владислав ©   (2004-10-22 15:55) [5]

Компонент есть такой из библиотеки Indy. IdPOP3 называется. Ссылку указали в [1]


 
Digitman ©   (2004-10-22 15:58) [6]


> Ramon


срочно дуй сюда - http://book.itep.ru ,  разделы POP3, SMTP
читать-вникать до полного просветления, какой протокол и за каким хреном используется кл.стороной, а какой - серверной


 
Smithson   (2004-10-22 16:00) [7]

Каюсь, стормозил. Спать охота, сил нету...


 
Rouse_ ©   (2004-10-22 21:37) [8]

Когда то давным давно, когда инет был очень тяжелый и за одну сессию письма не выкачивались из ящика по причине разрыва соединения, наваял я для себя сей манускрипт, который смотрел количество писем в ящике и при желании сносил их от туда:

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ScktComp;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Edit3: TEdit;
   Label1: TLabel;
   Label2: TLabel;
   GroupBox1: TGroupBox;
   Button1: TButton;
   Memo1: TMemo;
   ClientSocket1: TClientSocket;
   Edit2: TEdit;
   Label3: TLabel;
   Button2: TButton;
   Label4: TLabel;
   Edit4: TEdit;
   Button3: TButton;
   procedure Button1Click(Sender: TObject);
   procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
   procedure ClientSocket1Connect(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure ClientSocket1Disconnect(Sender: TObject;
     Socket: TCustomWinSocket);
   procedure Button2Click(Sender: TObject);
   procedure Edit4KeyPress(Sender: TObject; var Key: Char);
   procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
     ErrorEvent: TErrorEvent; var ErrorCode: Integer);
   procedure Button3Click(Sender: TObject);
 public
   Step: Integer;
   MailCount: Integer;
   CurrentMail: Integer;
   NoDel: Boolean;
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 NoDel := True;
 Step := 0;
 Memo1.Lines.Clear;
 ClientSocket1.Host := Edit1.Text;
 try
   ClientSocket1.Port := StrToInt(Edit4.Text);
 except
   Memo1.Lines.Add("Неверный порт");
   Exit;
 end;
 ClientSocket1.Active := True;
 Memo1.Lines.Add("Соединяюсь с " + Edit1.Text);
 Edit1.Enabled := False;
 Edit2.Enabled := False;
 Edit3.Enabled := False;
 Edit4.Enabled := False;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin

 if MessageBoxEx(Handle, "Удалить все письма из почтового ящика?",
   "Подтверждение...", MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2,
   LANG_NEUTRAL) = IDNO then Exit;

 NoDel := False;
 Step := 0;
 Memo1.Lines.Clear;
 ClientSocket1.Host := Edit1.Text;
 try
   ClientSocket1.Port := StrToInt(Edit4.Text);
 except
   Memo1.Lines.Add("Неверный порт");
   Exit;
 end;
 ClientSocket1.Active := True;
 Memo1.Lines.Add("Соединяюсь с " + Edit1.Text);
 Edit1.Enabled := False;
 Edit2.Enabled := False;
 Edit3.Enabled := False;
 Edit4.Enabled := False;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
 Socket: TCustomWinSocket);
var
 Txt: String;
 Parser: TStringList;
begin
 Txt := Socket.ReceiveText;
 //Memo1.Lines.Add("<<< "+Txt);

 if Txt[1] = "-" then
 begin
   Memo1.Lines.Add("Ошибка!!!");
   Socket.SendText("QUIT");
   ClientSocket1.Active := False;
   MailCount := 0;
   CurrentMail := 0;
   Step := 0;
   Exit;
 end;

 if Txt[1] <> "+" then Exit;

 case Step of
   0:
   begin
     Inc(Step);
     Memo1.Lines.Add("Аутентификация:"+#13#10+#13#10+"Отправка имени пользователя...");
     Txt := "USER " + Edit2.Text + #10#13;
     Socket.SendText(Txt);
   end;
   1:
   begin
     Inc(Step);
     Memo1.Lines.Add("Отправка пароля...");
     Txt := "PASS " + Edit3.Text + #10#13;
     Memo1.Lines.Add(">>> "+Txt);
     Socket.SendText(Txt);
   end;
   2:
   begin
     Memo1.Lines.Add("Аутентификация успешна");
     Inc(Step);
     Memo1.Lines.Add("Получения количества писем...");
     Txt := "STAT" + #10#13;
     Socket.SendText(Txt);
   end;
   3:
   begin
     Parser := TStringList.Create;
     Parser.Text := StringReplace(Txt, " ", #13#10, [rfReplaceAll]);
     MailCount := StrToInt(Parser.Strings[1]);
     if MailCount = 0 then
     begin
       Memo1.Lines.Add("Письма в почтовом ящике отсутствуют");
       ClientSocket1.Active := False;
       Exit;
     end;
     Memo1.Lines.Add("Писем в почтовом ящике: " + Parser.Strings[1]);
     Memo1.Lines.Add("Их общий размер: " + Parser.Strings[2] + #13#10);
     Parser.Free;
     if NoDel then
     begin
       ClientSocket1.Active := False;
       Exit;
     end;
     Inc(Step);
     CurrentMail := 1;
     Memo1.Lines.Add("Приступаю к удалению...");
     Memo1.Lines.Add("Запрос на удаление письма №" + IntToStr(CurrentMail) + "...");
     Txt := "DELE " + IntToStr(CurrentMail) + #10#13;
     Socket.SendText(Txt);
   end;
   4:
   begin
     Memo1.Lines.Add("Принят");
     if CurrentMail < MailCount then
     begin
       Inc(CurrentMail);
       Memo1.Lines.Add("Запрос на удаление письма №" + IntToStr(CurrentMail) + "...");
       Txt := "DELE " + IntToStr(CurrentMail) + #10#13;
       Socket.SendText(Txt);
     end
     else
     begin
       Inc(Step);
       Memo1.Lines.Add("Все запросы завершены");
       Memo1.Lines.Add("Подтверждаю удаление...");
       Txt := "QUIT" + #10#13;
       Socket.SendText(Txt);
     end;
   end;
   5:
   begin
     Memo1.Lines.Add("Удаление завершено");
     Memo1.Lines.Add("Удалено писем: " + IntToStr(MailCount));
     ClientSocket1.Active := False;
   end;
 end;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 Memo1.Lines.Add("Соединение установлено");
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
 Socket: TCustomWinSocket);
begin
 Memo1.Lines.Add("Соединение завершено");
 Edit1.Enabled := True;
 Edit2.Enabled := True;
 Edit3.Enabled := True;
 Edit4.Enabled := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 ClientSocket1.Active := False;
end;

procedure TForm1.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
 if not(Key in ["0".."9", #8]) then Key := #0;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
 Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
 var ErrorCode: Integer);
begin
 Memo1.Lines.Add("Ошибка!!!");
 ErrorCode := 0;
end;

end.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.025 c
14-1103125890
infom
2004-12-15 18:51
2005.01.09
Почему компилятором неверно обработывается код ?


1-1103554398
torch
2004-12-20 17:53
2005.01.09
Можно ли дебагить .dll- ки?


1-1103783704
Ученик
2004-12-23 09:35
2005.01.09
Интерфейс без тормозов


14-1103715054
Vaitek
2004-12-22 14:30
2005.01.09
Анимация трехмерной модели.


1-1103658787
slart
2004-12-21 22:53
2005.01.09
Преобразование типов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский