我从数据库中(Name、Email)2个字段中读出了姓名和Email地址,显示在Listbox1和Listbox2中,
Edit1用于输入发送者的Email,
Edit2用于输入邮件主题,
Memo1用于输入邮件内容,
Button1是群发
我不需要添加附件,
请问Button1的源码具体怎么写?
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  /////请给出源码和注释
end;

解决方案 »

  1.   

    是用indy还是用jmail,我已用indy实现了,但特快专递尚没解决,楼主只是想玩玩可用超级邮件群发机之类软件
      

  2.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    i:integer;
    begin
      Smtp1.AuthenticationType:=atLogin; //设置登陆类型
      Smtp1.Username:='inteler';  //设置登陆帐号
      Smtp1.Password :='coinage'; //设置登陆密码
      Smtp1.Host:='smtp.sina.com.cn';//设置SMTP地址
      Smtp1.Port:=25;   //设置端口 必须转化为整型
      try   //开始连接服务器
        Smtp1.connect(1000);
      except
        Showmessage('连接SMTP服务器失败!'); //连接失败 的话 退出该执行过程
        Exit;
      end;
      try
        with IdMsg do
        begin
          Body.Clear;//先清空上次发送的内容
          From.Address:=Edit1.Text; //设置发件人地址
          Subject:=edit2.text; //设置邮件发送的标题
          Body.Assign(memo1.Lines); //设置邮件发送的主体
          Recipients.EMailAddresses:='[email protected]'; //收件人地址     { for i:=0 to ListBox1.Items.Count-1 do
          begin
            if ListBox2.Items.Strings[i] <>'' then
            begin
              Recipients.EMailAddresses:=ListBox2.Items.Strings[i];
              Smtp1.Send(IdMsg);
            end;
          end;  }
          Smtp1.Send(IdMsg);
        end;
      finally
        showmessage('你的邮件已成功发送');
        Smtp1.Disconnect;
      end;
    end;
    老报错:‘#5.7.0 Authentication failed’,但也不是每次都报错,有几率发送成功,也有几率不成功,请问如何解决
      

  3.   

    去网上下个JMAIL 很简单的,
    自己用个队列来管理 
      

  4.   

    晕了,D6版本有USERID,D7是USEName,是不是这个原因造成的啊,在D7中如何处理啊
      

  5.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    i:integer;
    email:string;
    s1,s2:string;
    begin
      if ListBox2.Items.Count=0 then
      begin
        Showmessage('没有收件人无法发邮件!');
        Exit;
      end;  Smtp1.Host:='smtp.sina.com.cn';//设置SMTP地址
      Smtp1.Port:=25; //设置端口
      Smtp1.Username:='inteler';  //设置登陆帐号
      Smtp1.Password :='coinage'; //设置登陆密码
      Smtp1.AuthenticationType:=atLogin; //设置登陆类型
      try   //开始连接服务器
        Smtp1.connect;
      except
        Showmessage('连接SMTP服务器失败!'); //连接失败 的话 退出该执行过程
        Exit;
      end;
      try
        with IdMsg do
        begin
          Body.Clear;//先清空上次发送的内容
          MessageParts.Clear;  //清空附件
          From.Address:=Edit1.Text; //设置发件人地址
          Subject:=edit2.text; //设置邮件发送的标题
          Body.Assign(memo1.Lines); //设置邮件发送的主体
          if  FileExists(edit3.Text) then
          begin
            TIdAttachment.Create(MessageParts,edit3.Text);
          end;
          ///
          for i:=0 to ListBox2.Items.Count-1 do
          begin
            if ListBox2.Items.Strings[i] <>'' then
            begin
              Recipients.EMailAddresses:=ListBox2.Items.Strings[i];
              try
                Smtp1.Authenticate;
                Smtp1.Send(IdMsg);
                ShowMessage('邮件已成功发送');
              except
                ShowMessage('邮件发送失败');
              end;
            end;
          end;
          ///
        end;
      finally
        Smtp1.Disconnect;
      end;
    end;//UP一下,为什么有时候成功,有时候报错验证失败?
      

  6.   

    有的网站已经把smtp给封掉了!!!所以才会验证失败的!!!
      

  7.   

    用DELPHI发邮件的好像只有新浪的可以,别的就发不了,我做过的,
    也许有别的方法,还有一种方法是用转发的,也就是你自己要有一个服务器,