打印本文 打印本文 关闭窗口 关闭窗口
用 Delphi 做个发信机
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1890  更新时间:2009/4/23 18:26:13  文章录入:mintao  责任编辑:mintao
bsp;   edit6.text:=opendialog1.FileName;
    NMSMTP1.PostMessage.Body.LoadFromFile(edit6.text);
    end;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
if opendialog1.Execute then
  begin
  ListBox1.Items.Add(opendialog1.filename);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
button1.Caption:=''''开始发信'''';
button1.Enabled:=true;
startsen:=false;
sendsuc:=0;
sendfal:=0;
cursennum:=0;
ComboBox1.Items.LoadFromFile(opendialog1.FileName);
ComboBox1.text:=ComboBox1.items.strings[0];
totaco:=combobox1.Items.Count;
statusbar1.Panels[3].text:=''''总共(''''+inttostr(totaco)+'''')封'''';
end
  else
   begin
   showmessage(''''由于您未选择字典文件,因此请您在收信栏中手工填加。'''');
   combobox1.SetFocus;
   end;
end;

procedure TForm1.NMSMTP1Success(Sender: TObject);
begin
if  startsen then SendNextmail(sendsuc);
end;

procedure TForm1.NMSMTP1Failure(Sender: TObject);
begin
if  startsen then SendNextmail(sendfal);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if edit4.text='''''''' then
  begin
  showmessage(''''请在收信服务器栏中填入收信群体的服务器''''+#13+
              ''''  例如:要寄到 xxx@yyy.nnn 则填入 yyy.nnn'''');
  edit4.SetFocus;
  end
   else
    if combobox1.text='''''''' then
    begin
    showmessage(''''请读入地址字典文件。'''');
    button2.SetFocus;
    button2.Click;
    end
else
begin
if startsen then
   begin
     startsen:=false;
     button1.Caption:=''''继续发信'''';
     edit1.Enabled:=true;
     edit2.Enabled:=true;
     edit3.Enabled:=true;
     edit4.Enabled:=true;
     combobox1.Enabled:=true;
     button2.Enabled:=true;
     end
    else
      begin
      edit1.Enabled:=false;
      edit2.Enabled:=false;
      edit3.Enabled:=false;
      edit4.Enabled:=false;
      combobox1.Enabled:=false;
      button2.Enabled:=false;
      startsen:=true;
      NMSMTP1.Host := Edit1.Text;
      NMSMTP1.Port := StrToInt(Edit3.Text);
      NMSMTP1.UserID := Edit2.Text;
     button1.Caption:=''''暂停发信'''';
{if not connal then
  begin
  NMSMTP1.Connect;
  connal:=true;
  showmessage(''''yes'''');
  end;}
  NMSMTP1.PostMessage.FromAddress := Edit9.Text;
  NMSMTP1.PostMessage.FromName := Edit8.Text;
  NMSMTP1.PostMessage.Subject := Edit5.Text;
  SendNextmail(sendsuc);
end;
end;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  NMSMTP1.Abort;
end;

procedure TForm1.NMSMTP1ConnectionFailed(Sender: TObject);
begin
 ShowMessage(''''连接失败'''');
   connal:=false;;
end;

procedure TForm1.NMSMTP1ConnectionRequired(var Handled: Boolean);
begin
  If MessageDlg(''''您还未连线是否进行连接'''', mtConfirmation, mbOkCancel, 0) = mrOk then
  Begin
    Handled := TRUE;
    NMSMTP1.Connect;
  End;

end;

procedure TForm1.NMSMTP1InvalidHost(var Handled: Boolean);
var
tmpstr:string;
begin
  If InputQuery(''''输入邮件服务器地址!'''', ''''请输入邮件服务器地址:'''',tmpstr) then
  Begin
    NMSMTP1.Host := tmpstr;
    edit1.text:=tmpstr;
    Handled := TRUE;
  End;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 connal:=false;
 startsen:=false;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
tmpstr:string;
begin
    tmpstr:=edit1.text;
    NMSMTP1.Host := tmpstr;
 end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
  NMSMTP1.UserID := Edit2.Text;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
ListBox1.Clear;
end;

procedure TForm1.Edit8KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then edit9.SetFocus;
end;

procedure TForm1.Edit9KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then edit5.SetFocus;
end;

procedure TForm1.Edit6KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then edit1.SetFocus;
end;

procedure TForm1.Edit5KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then button3.SetFocus;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then edit2.SetFocus;

end;

procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_return then edit4.SetFocus;
end;

procedure TForm1.Edit4KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (key=vk_return)then if (combobox1.Items.Count=0) then button2.SetFocus else button1.setfocus;
end;

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if (key=vk_return) and (comboBox1.Text<>'''''''') then
begin
ComboBox1.Items.Add(ComboBox1.text);
ComboBox1.text:='''''''';
totaco:=combobox1.Items.Count;
statusbar1.Panels[3].text:=''''总共(''''+inttostr(totaco)+'''')封'''';
end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=vk_f1 then form1.helpshow;
end;

end.

好了,完成以上几步后,接下来我们只要为各个组件联系到各自所对应的事件,那吗我们用 Delphi 所做的发信机也就几呼完成了。当然您也可以对它进行修改,以让它更符合您的口味。虽然步骤多了点,不过至少我们做出了自己的一个发信机。

最后偷偷的告诉您一下,您想偷懒吗,如果是,那吗,嘿嘿,那就..

快找小梦要完整的程序代码,可要快哦,不然小梦过几天就跑掉了哦。小梦的伊妹儿是:su_ye@163.net,主页 www.suye.8u8.com

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口