请问那能下载到这类软件的源码?要Delphi的。谁有能发我一份吗?
自己编写的也行!

解决方案 »

  1.   

    DELPHI6自带的一个例子:
    \Delphi6\Demos\Indy\MailClient
      

  2.   

    怎么,奇怪呀,你不知道就别说,我要Email地址搜索的软件
      

  3.   

    试试用pop3协议,它有一条USER命令用法如下:USER name 指定邮箱的字符串
    POP3服务器返回值: +OK:有效邮箱 
                       -ERR:无效邮箱你可以做一个循环,自动构造邮箱名,用它来检测这个pop3服务器上是否存在这个邮件地址。有就记录来下(没做过,你自己试试)!
      

  4.   

    一个群发邮件的DELPHI代码
    unit USMTP; interface uses 
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
      ComCtrls, Buttons, StdCtrls, Psock, NMsmtp, Db, DBTables, ExtCtrls, 
      Grids, DBGrids, DBClient, Provider, DBCtrls; type 
      TFSMTP = class(TForm) 
        PageControl1: TPageControl; 
        TabSheet1: TTabSheet; 
        TabSheet2: TTabSheet; 
        Label1: TLabel; 
        Label2: TLabel; 
        Label3: TLabel; 
        NMSMTP1: TNMSMTP; 
        Label4: TLabel; 
        Label5: TLabel; 
        Label6: TLabel; 
        EditHost: TEdit; 
        EditPort: TEdit; 
        EditUserID: TEdit; 
        ButtonConnect: TSpeedButton; 
        DBGrid1: TDBGrid; 
        Label7: TLabel; 
        Label8: TLabel; 
        ButtonAdd: TSpeedButton; 
        ButtonRemove: TSpeedButton; 
        ButtonSend: TSpeedButton; 
        ListBoxAttachments: TListBox; 
        Label9: TLabel; 
        Label10: TLabel; 
        Panel1: TPanel; 
        Query1: TQuery; 
        Label11: TLabel; 
        Label12: TLabel; 
        EditSubject: TEdit; 
        OpenDialog1: TOpenDialog; 
        StatusBar1: TStatusBar; 
        MemoMail: TMemo; 
        EditTo: TEdit; 
        EditCC: TEdit; 
        EditBCC: TEdit; 
        ButtonDisconnect: TSpeedButton; 
        Label13: TLabel; 
        Label14: TLabel; 
        EditName: TEdit; 
        EditAddress: TEdit; 
        Label15: TLabel; 
        Label16: TLabel; 
        ButtonConnection2: TSpeedButton; 
        Button1: TButton; 
        Edit1: TEdit; 
        Label17: TLabel; 
        Label18: TLabel; 
        Label19: TLabel; 
        Label20: TLabel; 
        Edit2: TEdit; 
        DBLookupComboBox1: TDBLookupComboBox; 
        DataSource1: TDataSource; 
        Query1BDEDesigner: TIntegerField; 
        Query1BDEDesigner3: TStringField; 
        Query1BDEDesigner4: TStringField; 
        Query1BDEDesigner5: TStringField; 
        Query1BDEDesigner6: TFloatField; 
        Query1BDEDesigner7: TStringField; 
        Query1BDEDesigner8: TStringField; 
        Query1BDEDesigner9: TStringField; 
        Query1BDEDesigner10: TStringField; 
        Query1BDEDesigner11: TStringField; 
        Query1BDEDesigner12: TStringField; 
        Button2: TSpeedButton; 
        Panel2: TPanel; 
        Image1: TImage; 
        QDepartKind: TQuery; 
        DSDepartKind: TDataSource; 
        Query1BDEDesigner2: TStringField; 
        QDepartKindBDEDesigner: TStringField; 
        QDepartKindID: TIntegerField; 
        Memo1: TMemo; 
        procedure ButtonConnectClick(Sender: TObject); 
        procedure ButtonDisconnectClick(Sender: TObject); 
        procedure NMSMTP1Connect(Sender: TObject); 
        procedure NMSMTP1Disconnect(Sender: TObject); 
        procedure ButtonAddClick(Sender: TObject); 
        procedure ButtonRemoveClick(Sender: TObject); 
        procedure ButtonSendClick(Sender: TObject); 
        procedure NMSMTP1EncodeStart(Filename: String); 
        procedure NMSMTP1EncodeEnd(Filename: String); 
        procedure NMSMTP1ConnectionFailed(Sender: TObject); 
        procedure NMSMTP1ConnectionRequired(var Handled: Boolean); 
        procedure NMSMTP1Failure(Sender: TObject); 
        procedure NMSMTP1HostResolved(Sender: TComponent); 
        procedure NMSMTP1InvalidHost(var Handled: Boolean); 
        procedure NMSMTP1PacketSent(Sender: TObject); 
        procedure NMSMTP1RecipientNotFound(Recipient: String); 
        procedure NMSMTP1SendStart(Sender: TObject); 
        procedure NMSMTP1Success(Sender: TObject); 
        procedure NMSMTP1HeaderIncomplete(var handled: Boolean; 
          hiType: Integer); 
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
        procedure ButtonConnection2Click(Sender: TObject); 
        procedure FormShow(Sender: TObject); 
        procedure FormClose(Sender: TObject; var Action: TCloseAction); 
        procedure Button1Click(Sender: TObject); 
        procedure DBLookupComboBox1Click(Sender: TObject); 
        procedure Button2Click(Sender: TObject); 
      private 
        { Private declarations } 
      public 
        { Public declarations } 
      end; var 
      FSMTP: TFSMTP; implementation 
    uses DataModoule,UnitSending,p_fandp; 
    {$R *.DFM} procedure TFSMTP.ButtonConnectClick(Sender: TObject); 
    begin 
    NMSMTP1.Host:=EditHost.Text; 
    NMSMTP1.Port:=StrToInt(EditPort.Text); 
    NMSMTP1.UserId:=EditUserId.Text; 
    NMSMTP1.Connect; 
    ButtonConnect.Enabled:=False; 
    ButtonDisConnect.Enabled:=True; 
    end; procedure TFSMTP.ButtonDisconnectClick(Sender: TObject); 
    begin 
    NMSMTP1.Disconnect; 
    ButtonConnect.Enabled:=True; 
    ButtonDisConnect.Enabled:=False; 
    end; procedure TFSMTP.NMSMTP1Connect(Sender: TObject); 
    begin 
    StatusBar1.SimpleText:='已经连接'; 
    Panel1.Color:=clBlue; 
    end; procedure TFSMTP.NMSMTP1Disconnect(Sender: TObject); 
    begin 
    if StatusBar1<>nil then begin 
      StatusBar1.SimpleText:='断开连接'; 
      Panel1.Color:=clRed; 
      end; 
    end; procedure TFSMTP.ButtonAddClick(Sender: TObject); 
    begin 
    if OpenDialog1.Execute then 
      ListBoxAttachments.Items.Add(OpenDialog1.FileName); 
    end; procedure TFSMTP.ButtonRemoveClick(Sender: TObject); 
    begin 
    ListBoxAttachments.Items.Delete(ListBoxAttachments.ItemIndex); 
    end; procedure TFSMTP.ButtonSendClick(Sender: TObject); 
    {var 
      i_sum,i_count:integer; 
      s_To:string; 
    begin 
      i_sum:=0;i_count:=0; 
      with DBGrid1.DataSource.DataSet do 
      if (isempty=false) and (recordcount>0) then begin 
      Application.CreateForm(TFormSending, FormSending); 
      FormSending.Show; 
      FormSending.Label1.Caption:='共'+inttostr(recordcount)+'封邮件'; 
      FormSending.Label4.Caption:=FormSending.Label1.Caption; 
      DisableControls; 
      first; 
      while not eof do begin 
        s_To:=Query1.FindField('电子邮箱').asstring; 
        i_sum:=i_sum+1; 
        if (trim(s_to)='')and(pos('@',s_To)<=0) then begin 
    i_count:=i_count+1; 
    FormSending.Label3.Caption:='目前共有'+inttostr(i_count)+'封空白的邮件地址'; 
    FormSending.Label6.Caption:=FormSending.Label3.Caption; 
    end 
    else begin 
    FormSending.Label2.Caption:='正在发送第'+inttostr(i_sum)+'封邮件... ... ... ...'; 
    FormSending.Label5.Caption:=FormSending.Label2.Caption; 
    Editto.Text:=s_to; 
    // EditBCC.Text:=s_to; 
    // EditCC.Text:=s_to; 
    NMSMTP1.PostMessage.FromAddress:=EditAddress.Text; 
    NMSMTP1.PostMessage.FromName:=EditName.Text; 
    NMSMTP1.PostMessage.Subject:=EditSubject.Text; 
    NMSMTP1.PostMessage.ToAddress.Text:=Editto.Text; 
    // NMSMTP1.PostMessage.ToBlindCarbonCopy.Add(EditBCC.Text); 
    // NMSMTP1.PostMessage.ToCarbonCopy.Add(EditCC.Text); 
    NMSMTP1.PostMessage.Attachments.AddStrings(ListBoxAttachments.Items); 
    NMSMTP1.PostMessage.Body.Assign(MemoMail.Lines); 
    NMSMTP1.SendMail; // 
    // ts_CC.Add(s_To); end; 
    next; 
    end; 
    EnableControls; 
    end; 
    ShowMessage('邮件发送完毕!#1'); 
    FormSending.Close;//} 
    //--------------------------------------------------- 
    var 
    s_To:string; 
    // ts_To: TStrings; 
    begin 
    // ts_To:=TStringList.Create; 
    // ts_To.Clear; 
    with DBGrid1.DataSource.DataSet do begin 
    first; 
    DBGrid1.DataSource.DataSet.DisableControls; 
    while not eof do begin 
    s_To:=Query1.FindField('电子邮箱').asstring; 
    if (trim(s_To)<>'')and(pos('@',s_To)>0) then begin 
        //ts_To.Add(s_To); 
        Memo1.Lines.Add(s_To); 
        end; 
      next; 
      end; 
      first; 
      DBGrid1.DataSource.DataSet.EnableControls; 
      end; 
      

  5.   

    NMSMTP1.PostMessage.FromAddress:=EditAddress.Text; 
    NMSMTP1.PostMessage.FromName:=EditName.Text; 
    NMSMTP1.PostMessage.Subject:=EditSubject.Text; 
    NMSMTP1.PostMessage.ToAddress.Text:=Memo1.Text; 
    //NMSMTP1.PostMessage.ToAddress.AddStrings(ts_To); 
    //NMSMTP1.PostMessage.ToAddress.Text:=s_To; 
    //NMSMTP1.PostMessage.ToAddress.Add(Editto.Text); 
    //NMSMTP1.PostMessage.ToBlindCarbonCopy.AddString(ts_BCC.Text); 
    //NMSMTP1.PostMessage.ToBlindCarbonCopy.Add(EditBCC.Text); 
    //NMSMTP1.PostMessage.ToCarbonCopy.AddStrings(ts_CC); 
    //NMSMTP1.PostMessage.ToCarbonCopy.Add(EditCC.Text); 
    NMSMTP1.PostMessage.Attachments.AddStrings(ListBoxAttachments.Items); 
    NMSMTP1.PostMessage.Body.Text:=MemoMail.Text; 
    //NMSMTP1.PostMessage.Body.Assign(MemoMail.Lines); 
    //NMSMTP1.PostMessage.Body.AddStrings(MemoMail.Lines); 
    NMSMTP1.SendMail; 
    ShowMessage('邮件发送完毕!#1');//} 
    end; procedure TFSMTP.NMSMTP1EncodeStart(Filename: String); 
    begin 
    StatusBar1.SimpleText:='Encoding'+Filename; 
    end; procedure TFSMTP.NMSMTP1EncodeEnd(Filename: String); 
    begin 
    StatusBar1.SimpleText:='Finished Encoding'+Filename; 
    end; procedure TFSMTP.NMSMTP1ConnectionFailed(Sender: TObject); 
    begin 
    ShowMessage('连接失败'); 
    end; procedure TFSMTP.NMSMTP1ConnectionRequired(var Handled: Boolean); 
    begin 
    if MessageDlg('Connection Required Connect ?', 
       mtConfirmation,mbOkCancel,0)=mrOk then begin 
      Handled:=TRUE; 
      NMSMTP1.Connect; 
      end; 
    end; procedure TFSMTP.NMSMTP1Failure(Sender: TObject); 
    begin 
    StatusBar1.SimpleText:='错误'; 
    end; procedure TFSMTP.NMSMTP1HostResolved(Sender: TComponent); 
    begin 
    StatusBar1.SimpleText:='Host Resolved'; 
    end; procedure TFSMTP.NMSMTP1InvalidHost(var Handled: Boolean); 
    var TmpStr:String; 
    begin 
    if inputquery('Invalid Host!','Specify a new host:',TmpStr) then 
      begin 
      NMSMTP1.Host:=TmpStr; 
      Handled:=True; 
      end; 
    end; procedure TFSMTP.NMSMTP1PacketSent(Sender: TObject); 
    begin 
    StatusBar1.SimpleText:=IntToStr(NMSMTP1.BytesSent) 
      +'bytes of'+IntToStr(NMSMTP1.BytesTotal)+'sent'; 
    end; procedure TFSMTP.NMSMTP1RecipientNotFound(Recipient: String); 
    begin 
    ShowMessage('Recipient'+''''+Recipient+''''+'not found'); 
    end; procedure TFSMTP.NMSMTP1SendStart(Sender: TObject); 
    begin 
    StatusBar1.SimpleText:='发送邮件'; 
    end; procedure TFSMTP.NMSMTP1Success(Sender: TObject); 
    begin 
    StatusBar1.SimpleText:='成功'; 
    end; procedure TFSMTP.NMSMTP1HeaderIncomplete(var handled: Boolean; 
      hiType: Integer); 
    begin 
    ShowMessage('Header Incomplete.'); 
    end; procedure TFSMTP.FormCloseQuery(Sender: TObject; var CanClose: Boolean); 
    begin 
    NMSMTP1.Abort; 
    end; procedure TFSMTP.ButtonConnection2Click(Sender: TObject); 
    begin 
    if ButtonConnection2.Caption='连接' then begin 
      NMSMTP1.Host:=EditHost.Text; 
      NMSMTP1.Port:=StrToInt(EditPort.Text); 
      NMSMTP1.UserId:=EditUserId.Text; 
      NMSMTP1.Connect; 
      Panel1.Color:=clBlue; 
      ButtonConnection2.Caption:='断开'; 
      end 
    else begin 
      NMSMTP1.Disconnect; 
      Panel1.Color:=clRed; 
      ButtonConnection2.Caption:='连接'; 
      end; 
    end; procedure TFSMTP.FormShow(Sender: TObject); 
    begin 
    //DataMod.TableDepartment.Open; 
    if gs_potence[Self.Tag] = '2' then begin 
      ButtonSend.Enabled := False; 
    end; 
    Query1.Open; 
    QDepartKind.Open; 
    //ButtonConnection2.Click; 
    end; procedure TFSMTP.FormClose(Sender: TObject; var Action: TCloseAction); 
    begin 
    //DataMod.TableDepartment.Close; 
    Query1.Close; 
    QDepartKind.Close; 
    //ButtonConnection2.Click; 
    Action:=CaFree; 
    end; procedure TFSMTP.Button1Click(Sender: TObject); 
    begin 
      if NMSMTP1.Verify(Edit1.Text) then 
    //    ShowMessage(Edit1.Text+' verified') 
      else 
        ShowMessage(Edit1.Text+' not verified'); 
    end; procedure TFSMTP.DBLookupComboBox1Click(Sender: TObject); 
    begin 
    Query1.Filter:='部门分类='+vartostr(DBLookupComboBox1.KeyValue); 
    end; procedure TFSMTP.Button2Click(Sender: TObject); 
    begin 
    Self.Close; 
    end; end.
      

  6.   

    邮件群发,很简单的,最笨的方法就是用循环去控制。
    邮件搜索,就像 cg1120(代码最优化-§惟坚韧者始能遂其志§) 老兄说的那样,我用这种方法做过,但很耗cpu和内存。