nCoutMail:=0;
frmMain.StatusBar1.Panels[0].Text:='try connect to NMSMTP...';
InitMail;
setFileAdd;
try
mailBox.Connect;
if mailBox.Connected then
begin
frmMain.StatusBar1.Panels[1].Text:='连接NMSMTP成功,正在发邮件...';
setMailCont;
mailBox.PostMessage.ToAddress.Clear;
for j:=0 to mailList.Lines.Count-1 do
begin
sMail:=mailList.Lines[j];
//mailBox.PostMessage.ToAddress.Clear;
if mailBox.PostMessage.ToAddress.Count<1 then
mailBox.PostMessage.ToAddress.Add(sMail)
else
mailBox.PostMessage.ToCarbonCopy.Add(sMail);
pro.Position:=j;
//mailBox.SendMail;
//Inc(nCoutMail);
//frmMain.StatusBar1.Panels[1].Text:='已发邮件: '+inttostr(nCoutMail)+'封';
end;
mailBox.SendMail;
pro.Position:=0;
end;
//pro.Position:=mailList.Lines.Count-1;
frmMain.StatusBar1.Panels[1].Text:='发送邮件成功,共发了'+inttostr(mailList.Lines.Count)+'封邮件';
FinalMail;
except
on E:exception do
frmMain.StatusBar1.Panels[0].Text:=E.Message;
end;
end;
procedure setMailCont();
var
fs:TextFile;
sCont,sFn:string;
begin
sFn:=ExtractFilePath(Paramstr(0))+'mailbody.txt';
AssignFile(fs,sFn);
Reset(fs);
while (not Eof(fs)) do
begin
Readln(fs,sCont);
mailBox.PostMessage.Body.Add(sCont);
end;
CloseFile(fs);
end;
procedure TfrmMailsend.N1Click(Sender: TObject);
begin
SaveDialog1.Filter:='文本文件(*.txt)|*.txt';
if SaveDialog1.Execute then
mailList.Lines.SaveToFile(SaveDialog1.FileName+'.txt');
end;
procedure TfrmMailsend.BitBtn2Click(Sender: TObject);
begin
mailList.Lines.Clear;
end;
procedure TfrmMailsend.BitBtn3Click(Sender: TObject);
begin
queryMailList;
end;
procedure TfrmMailsend.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
free;
clearSta;
frmMain.StatusBar1.Panels[1].Text:='';
if pro.Position>0 then
pro.Position:=0;
end;
procedure TfrmMailsend.setFileAdd();
var
ff:TextFile;
fn:string;
str:string;
begin
fn:=ExtractFilePath(Paramstr(0))+'fileadd.txt';
if not FileExists(fn) then exit;
mailBox.PostMessage.Attachments.Clear;
AssignFile(ff,fn);
Reset(ff);
try
while Not Eof(ff) do
begin
Readln(ff,str);
if Trim(str)<>'' then
mailBox.PostMessage.Attachments.Add(str);
end;
finally
Closefile(ff);
end;
end;
procedure TfrmMailsend.getStartDate();
var
ini:TiniFile;
fn:string;
begin
fn:=ExtractFilePath(Paramstr(0))+'mail.ini';
ini:=TiniFile.Create(fn);
try
startDates:=trunc(ini.ReadDateTime('DATEQUERY','STARTDATE',now));
endDates:=trunc(ini.ReadDateTime('DATEQUERY','ENDDATE',now));
isQuery:=ini.ReadInteger('DATEQUERY','ISCHECK',0);
finally
ini.Free;
end;
end;
procedure TfrmMailsend.queryMailList();
var
sql:string;
mail:string;
num:string;
ini:TiniFile;
fn:string;
begin
fn:=ExtractFilePath(Paramstr(0))+'mail.ini';
ini:=TiniFile.Create(fn);
try
startDates:=trunc(ini.ReadDateTime('DATEQUERY','STARTDATE',now));
isQuery:=ini.ReadInteger('DATEQUERY','ISCHECK',0);
finally
ini.Free;
end;
if isQuery=1 then
sql:='select * from email where inputdate>'+inttostr(startDates)
else
sql:='select * from email';
ADOQuery1.SQL.Clear;
ADOQuery1.Close;
ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+
ExtractFilePath(Paramstr(0))+'db\GroupMail.mdb;Jet OLEDB:Database Password=820745';
ADOQuery1.SQL.Add(sql);
ADOQuery1.Prepared;
ADOQuery1.Open;
frmMain.StatusBar1.Panels[0].Text:=inttostr(ADOQuery1.RecordCount);
ADOQuery1.Close;
end;
procedure TfrmMailsend.getMailList();
var
sSql:string;
sMail:string;
numRecord:integer;
begin
clearSta;
getStartDate;
mailList.Lines.Clear;
if isQuery=1 then
sSql:='select * from email where inputdate>='+inttostr(startDates)+' and inputdate<='+IntToStr(endDates)
else
sSql:='select * from email';
ADODataSet1.Close;
ADODataSet1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
ExtractFilePath(paramstr(0))+'db\GroupMail.mdb;Jet OLEDB:Database Password=820745';
ADODataSet1.CommandType:=cmdText;
ADODataSet1.CommandText:=sSql;
ADODataSet1.Open;
numRecord:=ADODataSet1.RecordCount;
ADODataSet1.First;
while (not ADODataSet1.Eof) do
begin
sMail:=ADODataSet1.FieldByName('mails').AsString;
mailList.Lines.Add(sMail);
ADODataSet1.Next;
end;
ADODataSet1.Close;
frmMain.StatusBar1.Panels[0].Text:='已经打开了邮件列表';
frmMain.StatusBar1.Panels[2].Text:='有邮件地址:'+IntToStr(numRecord)+'条';
GroupBox1.Caption:='邮件列表:'+IntToStr(numRecord);
end;
procedure TfrmMailsend.FormCreate(Sender: TObject);
begin
getMailList;
end;
procedure TfrmMailsend.chkDbClick(Sender: TObject);
begin
getMailList;
end;
procedure TfrmMailsend.chkTextClick(Sender: TObject);
var
ff:TextFile;
txtFn:string;
str:string;
begin
mailList.Lines.Clear;
clearSta;
OpenDialog1.Filter:='文本文件(*.txt)|*.txt';
if OpenDialog1.Execute then
begin
txtFn:=OpenDialog1.FileName;
//AssignFile(ff,txtFn);
//Reset(ff);
try
//while not Eof(ff) do
//begin
// Readln(ff,str);
// if trim(str)<>'' then
// mailList.Lines.Add(str);
//end;
mailList.Lines.LoadFromFile(txtFn);
finally
//closeFile(ff);
end;
end;
frmMain.StatusBar1.Panels[2].Text:='EMAIL地址有:'+IntToStr(mailList.Lines.Count)+'条';
GroupBox1.Caption:='群发邮件列表如下:'+IntToStr(mailList.Lines.Count);