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

Вниз

Mail   Найти похожие ветки 

 
MasterA   (2004-05-08 09:59) [0]

Мужики, а также Леди. Подскажите мож у кого есть программа, которая может передать список загаловков писем почтового адреса(email) с возможностью их последующего удаления(я имею ввиду удаление письма целиком по его полученному заголовку). А то надоело списывать по 20-30 спам-писем каждый день. А так бы посмотрел заголовки, отметил ненужные, удалил их, а потом уж получил все ценное своего mailbox"a. А если есть исходник на дельфи - я буду самым счастливым человеком на свете.


 
тихий вовочка ©   (2004-05-08 10:41) [1]

The Bat!


 
Cobalt ©   (2004-05-08 10:57) [2]

Необходимо там указать в настройках почтового ящика - вызывать диспетчер писем при проверке почтового ящика


 
Rouse_ ©   (2004-05-08 11:45) [3]

Ну вот накидал на скорую руку - к стилю кода не придираться:

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);
 private
   { Private declarations }
 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 вся ветка

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

Наверх





Память: 0.48 MB
Время: 0.042 c
1-1084534752
WebErr
2004-05-14 15:39
2004.05.30
Вопрос по Create.


14-1084192118
Курдль
2004-05-10 16:28
2004.05.30
К алгоритмическим полиглотам - вопрос о переходе на C#.


6-1081253057
Kme
2004-04-06 16:04
2004.05.30
Как скачать файл из сети


7-1083300050
WondeRu
2004-04-30 08:40
2004.05.30
Заголовочный файл WMI для Delphi


11-1074414351
Insurge
2004-01-18 11:25
2004.05.30
Не компилиркет проект с MCK...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский