📄 incept.pas
字号:
unit InCept;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, Grids, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3, IdMessage,
StdCtrls, DB, ADODB, ImgList,Theme;
type
TFrm_Incept = class(TBaseForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
StringGrid1: TStringGrid;
IdPOP31: TIdPOP3;
IdMessage1: TIdMessage;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Memo1: TMemo;
StringGrid2: TStringGrid;
StatusBar1: TStatusBar;
ADOIncept: TADODataSet;
SaveDialog1: TSaveDialog;
ADOPOP3: TADODataSet;
ImageList1: TImageList;
procedure FormShow(Sender: TObject);
procedure ToolButton9Click(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
procedure StringGrid1DblClick(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure StringGrid2DblClick(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
private
ServerName,UName,Upwd,UEmail:string;
UPort:Integer;
MSGCount:Integer;
{ Private declarations }
procedure SetTile;
procedure RetrievePOPHeaders(inMsgCount: Integer);
procedure RetrieveExecute;
public
{ Public declarations }
end;
var
Frm_Incept: TFrm_Incept;
implementation
uses Main,DM;
{$R *.dfm}
{ TForm2 }
procedure TFrm_Incept.SetTile;
begin
with StringGrid1 do
begin
Cells[0,0]:='主题';
Cells[1,0]:='发件人';
Cells[2,0]:='发件日期';
Cells[3,0]:='邮件大小';
end;
end;
procedure TFrm_Incept.FormShow(Sender: TObject);
begin
SetTile;
with ADOPOP3 do
begin
Open;
ServerName:=FieldByName('MR_ServerName').AsString;
UPort:=FieldByName('MR_Port').AsInteger;
UName:=FieldByName('MR_Name').AsString;
Upwd:=FieldByName('MR_Pwd').AsString;
UEmail:=FieldByName('MR_Email').AsString;
end;
end;
procedure TFrm_Incept.ToolButton9Click(Sender: TObject);
begin
Close;
end;
procedure TFrm_Incept.ToolButton1Click(Sender: TObject);
begin
if IdPOP31.Connected then
IdPOP31.Disconnect;
IdPOP31.Host:=ServerName;
IdPOP31.Port:=UPort;
IdPOP31.Username:=UName;
IdPOP31.Password:=Upwd;
IdPOP31.Connect;
MSGCount:=IdPOP31.CheckMessages;//获取邮件数量
RetrievePOPHeaders(MSGCount);
StringGrid1.RowCount:=MSGCount;
StatusBar1.Panels.Items[0].Text:='服务器连接成功!';
end;
procedure TFrm_Incept.RetrievePOPHeaders(inMsgCount: Integer);
var
IntIndex:Integer;
begin
for IntIndex:=0 to MSGCount-1 do
begin
IdMessage1.Clear;
IdPOP31.RetrieveHeader(IntIndex,IdMessage1);
StringGrid1.Cells[0,IntIndex+1]:=IdMessage1.Subject;
StringGrid1.Cells[1,IntIndex+1]:=IdMessage1.From.Text;
StringGrid1.Cells[2,IntIndex+1]:=DateTimeToStr(IdMessage1.Date);
StringGrid1.Cells[3,IntIndex+1]:=IntToStr(IdPOP31.RetrieveMsgSize(IntIndex));
end;
end;
procedure TFrm_Incept.RetrieveExecute;
var
i:Integer;
begin
if MSGCount<=0 then
Exit;
IdMessage1.Clear;
Memo1.Clear;
StringGrid2.Cells[0,0]:='文件名';
StringGrid2.Cells[1,0]:='文件类型';
for i:=0 to pred(IdMessage1.MessageParts.Count) do
begin
if (IdMessage1.MessageParts.Items[i] is TIdAttachment) then
begin
StringGrid2.Cells[0,i+1] := TIdAttachment(IdMessage1.MessageParts.Items[i]).Filename;
StringGrid2.Cells[1,i+1]:= TIdAttachment(IdMessage1.MessageParts.Items[i]).ContentType;
end
else
begin
if IdMessage1.MessageParts.Items[i] is TIdText then
begin
Memo1.Lines.Clear;
Memo1.Lines.AddStrings(TIdText(IdMessage1.MessageParts.Items[i]).Body);
end
end;
end;
end;
procedure TFrm_Incept.StringGrid1DblClick(Sender: TObject);
begin
RetrieveExecute;
end;
procedure TFrm_Incept.ToolButton2Click(Sender: TObject);
begin
if IdPOP31.Connected then
IdPOP31.Disconnect;
StatusBar1.Panels.Items[0].Text:='服务器已断开连接!';
end;
procedure TFrm_Incept.ToolButton5Click(Sender: TObject);
begin
if StringGrid1.Row>0 then
begin
IdPOP31.Delete(StringGrid1.Row + 1);
end;
end;
procedure TFrm_Incept.StringGrid2DblClick(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
StringGrid2.Cells[2,StringGrid2.Row+1]:=SaveDialog1.FileName;
TIdAttachment(IdMessage1.MessageParts.Items[StringGrid2.Row+1]).SaveToFile(SaveDialog1.FileName);
end;
end;
procedure TFrm_Incept.ToolButton8Click(Sender: TObject);
begin
if Memo1.Lines.Count>0 then
begin
with ADOIncept do
begin
Open;
Append;
FieldByName('MR_Subject').AsString:=StringGrid1.Cells[0,StringGrid2.Row+1];
FieldByName('MR_SendTo').AsString:=StringGrid1.Cells[1,StringGrid2.Row+1];
FieldByName('MR_Date').AsDateTime:=StrToDateTime(StringGrid1.Cells[2,StringGrid2.Row+1]);
FieldByName('MR_Size').AsString:=StringGrid1.Cells[3,StringGrid2.Row+1];
FieldByName('MR_Affix').AsString:=StringGrid2.Cells[0,StringGrid2.Row+1];
FieldByName('MR_AffixPath').AsString:=StringGrid2.Cells[2,StringGrid2.Row+1];
FieldByName('MR_Memo').AsString:=Memo1.Text;
FieldByName('MR_SaveDate').AsDateTime:=Now;
Post;
end;
Application.MessageBox('数据保存成功!','明日科技');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -