如何远程删除邮件? 如何远程登陆POP3服务器,删除邮件.谢谢我说的是用INDY的控件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我给你一段Demo把:unit UnitMain;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ToolWin, ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3, ImgList, Menus, IdMessage;type TFormMain = class(TForm) IdPOP31: TIdPOP3; Panel1: TPanel; ListViewMail: TListView; MainMenu1: TMainMenu; ImageList1: TImageList; StatusBar1: TStatusBar; ToolBar1: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; ToolButton3: TToolButton; ToolButton4: TToolButton; ToolButton5: TToolButton; MemoMail: TMemo; Splitter1: TSplitter; Splitter2: TSplitter; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; IdMessage1: TIdMessage; ListViewAttach: TListView; SaveDialog1: TSaveDialog; ToolButton6: TToolButton; ToolButton7: TToolButton; procedure N3Click(Sender: TObject); procedure IdPOP31Connected(Sender: TObject); procedure N4Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure IdPOP31Disconnected(Sender: TObject); procedure N2Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure ListViewMailClick(Sender: TObject); procedure ListViewAttachDblClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var FormMain: TFormMain;implementationuses UnitConfig, UnitNewMail, Unit1;{$R *.dfm}procedure TFormMain.N3Click(Sender: TObject);var Index: Integer; MailSum: LongWord; MailItem: TListItem;begin FormConfig.ShowModal(); //清空邮件列表 Form1.FormStyle := fsStayOnTop;// Form1.Show; ListViewMail.Items.Clear; //连接POP3服务器 if IdPOP31.Connected then IdPOP31.Disconnect else begin IdPOP31.Host := FormConfig.EditPOP3.Text; IdPOP31.Port := StrToInt(FormConfig.EditPOP3Port.Text); IdPOP31.Username := FormConfig.EditUser.Text; IdPOP31.Password := FormConfig.MaskEditPw.Text; IdPOP31.ReadTimeout := 20000; IdPOP31.Connect; MailSum := IdPOP31.CheckMessages; Form1.ListBox1.Clear; Form1.ListBox2.Clear; Form1.ListBox2.Clear; IdPOP31.UIDL(Form1.ListBox1.Items); if MailSum > 0 then StatusBar1.SimpleText := '共有' + IntToStr(MailSum) + '封邮件' else ShowMessage('没有邮件'); for Index := 1 to MailSum do begin IdMessage1.Clear; IdPOP31.RetrieveHeader(Index, IdMessage1); //IdPOP31.UIDL(Form1.ListBox1.Items,Index); Form1.ListBox2.Items.Add(IdMessage1.MsgId); Form1.ListBox3.Items.Add(IdMessage1.UID); MailItem := ListViewMail.Items.Add; MailItem.SubItems.Add(IdMessage1.Subject); MailItem.SubItems.Add(IdMessage1.From.Text); MailItem.SubItems.Add(FormatDateTime('yyyy-mm-dd hh:mm:ss', IdMessage1.Date)); MailItem.SubItems.Add(IntToStr(IdPOP31.RetrieveMsgSize(Index) div 1024) + 'K'); IdMessage1.Clear; IdPOP31.Retrieve(Index, IdMessage1); IdMessage1.MessageParts.CountParts; if IdMessage1.MessageParts.AttachmentCount > 0 then MailItem.ImageIndex := 5 else MailItem.ImageIndex := 4; end; end;end;procedure TFormMain.IdPOP31Connected(Sender: TObject);begin StatusBar1.SimpleText := '已和服务器建立连接';end;procedure TFormMain.N4Click(Sender: TObject);var i: Integer;begin for i := 0 to ListViewMail.Items.Count-1 do if ListViewMail.Items.Item[i].Checked then //注意邮件序号从1开始 IdPOP31.Delete(i + 1);end;procedure TFormMain.N5Click(Sender: TObject);begin IdPOP31.Disconnect(); ListViewMail.Items.Clear; MemoMail.Lines.Clear; ListViewAttach.Items.Clear;end;procedure TFormMain.IdPOP31Disconnected(Sender: TObject);begin StatusBar1.SimpleText := '服务器已经断开';end;procedure TFormMain.N2Click(Sender: TObject);begin FormConfig.ShowModal; FormNewMail.Show;end;procedure TFormMain.N8Click(Sender: TObject);begin Close;end;procedure TFormMain.N7Click(Sender: TObject);begin FormConfig.ShowModal;end;procedure TFormMain.ListViewMailClick(Sender: TObject);var Index: Integer; AttachItem: TListItem;begin MemoMail.Lines.Clear; ListViewAttach.Items.Clear; IdMessage1.Clear; IdMessage1.ContentType := 'multipart/*'; StatusBar1.SimpleText := '开始接收邮件'; IdPOP31.Retrieve(ListViewMail.ItemIndex + 1, IdMessage1); StatusBar1.SimpleText := '接收完毕'; MemoMail.Lines := IdMessage1.Body; for Index := 0 to Pred(IdMessage1.MessageParts.Count) do begin if IdMessage1.MessageParts.Items[Index] is TIdAttachment then begin AttachItem := ListViewAttach.Items.Add; AttachItem.Caption := IntToStr(Index); AttachItem.SubItems.Add(TIdAttachment(IdMessage1.MessageParts.Items[Index]).Filename); end else if IdMessage1.MessageParts.Items[Index] is TIdText then begin //body text MemoMail.Lines.Clear; MemoMail.Lines.AddStrings( TIdText(IdMessage1.MessageParts.Items[Index]).Body); end; IdMessage1.SaveToFile('d:\fjj'+inttostr(Index)+'.eml'); end;end;procedure TFormMain.ListViewAttachDblClick(Sender: TObject);var Index: Integer;begin Index := StrToInt(ListViewAttach.ItemFocused.Caption); if SaveDialog1.Execute then TIdAttachment(IdMessage1.MessageParts.Items[Index]).SaveToFile(SaveDialog1.FileName);end;end.//-----------------------------------------------------------------------要删除邮件可以直接用IdPOP31.Delete 【建议贴】所谓的对csdn的“建议贴”的发贴地点 如何提取系统的256色的颜色表 在ADO里用哪一个控件?? Delphi新手:请问这样有必要么? 请问如何在程序中创建表? SQL Server数据库连接问题 求教一个Delphi问题,答者有分,快!!!!!! 如何截取当前录入数据库的某个字段的数据 大家好!!sql怎么样限制显示第十条至二十条记录的问题的问题!!!! 一个关于RichEdit不是问题的问题 能否实现对内存中的数据集进行计算,然后打印?? fastreport问题急代解决(请教各位))
unit UnitMain;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ToolWin, ExtCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3,
ImgList, Menus, IdMessage;type
TFormMain = class(TForm)
IdPOP31: TIdPOP3;
Panel1: TPanel;
ListViewMail: TListView;
MainMenu1: TMainMenu;
ImageList1: TImageList;
StatusBar1: TStatusBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
MemoMail: TMemo;
Splitter1: TSplitter;
Splitter2: TSplitter;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
IdMessage1: TIdMessage;
ListViewAttach: TListView;
SaveDialog1: TSaveDialog;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
procedure N3Click(Sender: TObject);
procedure IdPOP31Connected(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure IdPOP31Disconnected(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure ListViewMailClick(Sender: TObject);
procedure ListViewAttachDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
FormMain: TFormMain;implementationuses UnitConfig, UnitNewMail, Unit1;{$R *.dfm}procedure TFormMain.N3Click(Sender: TObject);
var
Index: Integer;
MailSum: LongWord;
MailItem: TListItem;
begin
FormConfig.ShowModal();
//清空邮件列表
Form1.FormStyle := fsStayOnTop;
// Form1.Show;
ListViewMail.Items.Clear;
//连接POP3服务器
if IdPOP31.Connected then
IdPOP31.Disconnect
else
begin
IdPOP31.Host := FormConfig.EditPOP3.Text;
IdPOP31.Port := StrToInt(FormConfig.EditPOP3Port.Text);
IdPOP31.Username := FormConfig.EditUser.Text;
IdPOP31.Password := FormConfig.MaskEditPw.Text;
IdPOP31.ReadTimeout := 20000;
IdPOP31.Connect;
MailSum := IdPOP31.CheckMessages;
Form1.ListBox1.Clear;
Form1.ListBox2.Clear;
Form1.ListBox2.Clear;
IdPOP31.UIDL(Form1.ListBox1.Items);
if MailSum > 0 then
StatusBar1.SimpleText := '共有' + IntToStr(MailSum) + '封邮件'
else
ShowMessage('没有邮件');
for Index := 1 to MailSum do
begin
IdMessage1.Clear; IdPOP31.RetrieveHeader(Index, IdMessage1);
//IdPOP31.UIDL(Form1.ListBox1.Items,Index);
Form1.ListBox2.Items.Add(IdMessage1.MsgId);
Form1.ListBox3.Items.Add(IdMessage1.UID);
MailItem := ListViewMail.Items.Add;
MailItem.SubItems.Add(IdMessage1.Subject);
MailItem.SubItems.Add(IdMessage1.From.Text);
MailItem.SubItems.Add(FormatDateTime('yyyy-mm-dd hh:mm:ss',
IdMessage1.Date));
MailItem.SubItems.Add(IntToStr(IdPOP31.RetrieveMsgSize(Index) div 1024) +
'K'); IdMessage1.Clear;
IdPOP31.Retrieve(Index, IdMessage1);
IdMessage1.MessageParts.CountParts;
if IdMessage1.MessageParts.AttachmentCount > 0 then
MailItem.ImageIndex := 5
else
MailItem.ImageIndex := 4;
end;
end;
end;procedure TFormMain.IdPOP31Connected(Sender: TObject);
begin
StatusBar1.SimpleText := '已和服务器建立连接';
end;procedure TFormMain.N4Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to ListViewMail.Items.Count-1 do
if ListViewMail.Items.Item[i].Checked then
//注意邮件序号从1开始
IdPOP31.Delete(i + 1);
end;procedure TFormMain.N5Click(Sender: TObject);
begin
IdPOP31.Disconnect();
ListViewMail.Items.Clear;
MemoMail.Lines.Clear;
ListViewAttach.Items.Clear;
end;procedure TFormMain.IdPOP31Disconnected(Sender: TObject);
begin
StatusBar1.SimpleText := '服务器已经断开';
end;procedure TFormMain.N2Click(Sender: TObject);
begin
FormConfig.ShowModal;
FormNewMail.Show;
end;procedure TFormMain.N8Click(Sender: TObject);
begin
Close;
end;procedure TFormMain.N7Click(Sender: TObject);
begin
FormConfig.ShowModal;
end;procedure TFormMain.ListViewMailClick(Sender: TObject);
var
Index: Integer;
AttachItem: TListItem;
begin
MemoMail.Lines.Clear;
ListViewAttach.Items.Clear;
IdMessage1.Clear;
IdMessage1.ContentType := 'multipart/*'; StatusBar1.SimpleText := '开始接收邮件';
IdPOP31.Retrieve(ListViewMail.ItemIndex + 1, IdMessage1);
StatusBar1.SimpleText := '接收完毕'; MemoMail.Lines := IdMessage1.Body;
for Index := 0 to Pred(IdMessage1.MessageParts.Count) do
begin
if IdMessage1.MessageParts.Items[Index] is TIdAttachment then
begin
AttachItem := ListViewAttach.Items.Add;
AttachItem.Caption := IntToStr(Index);
AttachItem.SubItems.Add(TIdAttachment(IdMessage1.MessageParts.Items[Index]).Filename);
end
else if IdMessage1.MessageParts.Items[Index] is TIdText then
begin //body text
MemoMail.Lines.Clear;
MemoMail.Lines.AddStrings(
TIdText(IdMessage1.MessageParts.Items[Index]).Body);
end;
IdMessage1.SaveToFile('d:\fjj'+inttostr(Index)+'.eml');
end;
end;procedure TFormMain.ListViewAttachDblClick(Sender: TObject);
var
Index: Integer;
begin
Index := StrToInt(ListViewAttach.ItemFocused.Caption);
if SaveDialog1.Execute then
TIdAttachment(IdMessage1.MessageParts.Items[Index]).SaveToFile(SaveDialog1.FileName);
end;end.//-----------------------------------------------------------------------
要删除邮件可以直接用IdPOP31.Delete