⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rece.~pas

📁 基于delphi的邮件接收客户端,希望对大家有用
💻 ~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 + -