我从数据库中(Name、Email)2个字段中读出了姓名和Email地址,显示在Listbox1和Listbox2中,
Edit1用于输入发送者的Email,
Edit2用于输入邮件主题,
Memo1用于输入邮件内容,
Button1是群发
我不需要添加附件,
请问Button1的源码具体怎么写?
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
/////请给出源码和注释
end;
Edit1用于输入发送者的Email,
Edit2用于输入邮件主题,
Memo1用于输入邮件内容,
Button1是群发
我不需要添加附件,
请问Button1的源码具体怎么写?
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
/////请给出源码和注释
end;
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’,但也不是每次都报错,有几率发送成功,也有几率不成功,请问如何解决
自己用个队列来管理
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一下,为什么有时候成功,有时候报错验证失败?
也许有别的方法,还有一种方法是用转发的,也就是你自己要有一个服务器,