📄 rece.~pas
字号:
unit rece;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, ExtCtrls, Psock, NMpop3, NMsmtp, Grids,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdPOP3, IdUDPBase, IdUDPClient, IdSNMP
Outline, DirOutln, Mask, ToolEdit, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdMessageClient, IdPOP3;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
sb: TStatusBar;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Panel1: TPanel;
Label4: TLabel;
Label5: TLabel;
content: TMemo;
Button1: TButton;
Button2: TButton;
lbx: TListBox;
pb: TProgressBar;
cb1: TCheckBox;
Label7: TLabel;
Label6: TLabel;
Label8: TLabel;
fujian: TEdit;
pop3name: TEdit;
userid: TEdit;
passd: TEdit;
fromname: TEdit;
title: TEdit;
np1: TIdPOP3;
procedure Button1Click(Sender: TObject);
procedure npConnect(Sender: TObject);
procedure npConnectionFailed(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure lbxDblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure npDisconnect(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
if pop3name.text<>'' then
begin
if button1.Caption='连接' then
begin
if np.Connected then
np.Disconnect;
np.Host:=trim(pop3name.text);
np.UserID:=userid.text;
np.Password:=passd.text;
np.TimeOut:=8000;
if trim(fujian.text)<>'' then
np.AttachFilePath:=fujian.text;
np.DeleteOnRead:=cb1.Checked;
try
np.Connect;
button1.Caption:='断开';
sb.Panels[0].Text:='成功连接到'+pop3name.text+'服务器!';
if np.MailCount>0 then
sb.Panels[1].text:='现在共有'+inttostr(np.mailcount)+'封邮件在服务器中!'
else
sb.Panels[1].text:='服务器上目前还没有任何邮件!';
except
sb.Panels[0].Text:='连接POP3服务器失败!';
end;
end
else
begin
button1.Caption:='连接';
np.Disconnect;
sb.Panels[0].text:='已从POP3服务器上断开连接!';
sb.Panels[1].text:=''
end;
end
else
begin
application.MessageBox('请填好POP3邮件服务器','POP3服务器填写出错',mb_iconstop+mb_ok);
pop3name.SetFocus;
end;
end;
procedure TForm1.npConnect(Sender: TObject);
begin
sb.Panels[0].text:='正在连接POP3服务器,请等待...';
end;
procedure TForm1.npConnectionFailed(Sender: TObject);
begin
sb.Panels[0].Text:='连接POP3服务器失败啦!';
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
er:string;
begin
if np.Connected then
begin
lbx.Items.Clear;
er:='';
if np.MailCount>0 then
begin
for i:=1 to np.mailcount do
begin
try
np.GetMailMessage(i);
lbx.Items.add(inttostr(i)+'正在链接'+np.mailmessage.from);
if i<np.MailCount then
sb.Panels[0].text:='正在导入邮件列表,请稍等!现在是第'+inttostr(i)+'封邮件!'
else
sb.Panels[0].text:='邮件导入完毕,现在可以查看具体内容!';
pb.Max:=np.MailCount;//进度条总长为邮件总数
pb.Position:=i;
except
if er='' then
er:=er+inttostr(i)
else
er:=er+','+inttostr(i);
sb.Panels[1].Text:='第'+er+'封邮件下载出错,请检查邮件服务器!';
end;
end;
end;
end
else
application.MessageBox('没有连接到任何邮件服务器!','获取邮件失败',mb_iconwarning+mb_ok);
end;
procedure TForm1.lbxDblClick(Sender: TObject);
begin
np.GetMailMessage(lbx.ItemIndex+1);
content.Text:=np.MailMessage.Body.text;
fromname.text:=np.MailMessage.From;
title.text:=np.MailMessage.Subject;
// fujian.text:=np.AttachFilePath;
end;
procedure TForm1.FormShow(Sender: TObject);
var
apath:string;
begin
apath:=ExtractFilePath(Application.ExeName);//取得当前路径
if apath[length(apath)]<>'\' then
apath:=apath+'\';
fujian.text:=apath; //初始化附件路径
end;
procedure TForm1.npDisconnect(Sender: TObject);
begin
sb.Panels[0].Text:='已经与'+pop3name.text+'服务器断开连接';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -