?? unit1.pas
字號:
SMTP1.AuthenticationType := atLogin;
SMTP1.username:= edit2.text;
SMTP1.Password := edit1.text;
SMTP1.Host := edit3.text;
SMTP1.Port :=25;
try
SMTP1.Connect;
except
Showmessage('連接SMTP服務(wù)器失敗!');
Exit;
end;
try
with IdMsg do
begin
body.Clear;
Body.Assign(memo1.lines);
From.address := edit5.text;
Recipients.EMailAddresses :=edit6.text;
Subject:=edit4.text
end;
SMTP1.Send(IdMsg);
finally
showmessage('您的信件已成功發(fā)送');
SMTP1.Disconnect;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if opendialog1.Execute then
memo1.Lines.Add(opendialog1.filename);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.Enabled:=false;
mInifile:=Tinifile.Create('SENDMAIL.ini');//創(chuàng)建保存信息的文件名
Edit1.ReadOnly:=true;
Edit2.ReadOnly:=true;
Edit3.ReadOnly:=true;
Edit4.ReadOnly:=true;
Edit5.ReadOnly:=true;
Edit6.ReadOnly:=true;
Edit7.ReadOnly:=true;
Edit8.ReadOnly:=true;
Memo1.ReadOnly:=true;
Edit1.Text:=mInifile.ReadString('INFORMATION','PW','');
Edit2.Text:=mInifile.ReadString('INFORMATION','ACOUNT','');
Edit3.Text:=mInifile.ReadString('INFORMATION','MailSRV','');
Edit4.Text:=mInifile.ReadString('INFORMATION','TOPIC','');
Edit5.Text:=mInifile.ReadString('INFORMATION','ADDRESSER','');
Edit6.Text:=mInifile.ReadString('INFORMATION','ADDRESSEE','');
Edit7.Text:=mInifile.ReadString('INFORMATION','PORT','');
Edit8.Text:=mInifile.ReadString('INFORMATION','IPADDRESS','');
Memo1.Text:=mInifile.ReadString('INFORMATION','CONTENT','');
end;
procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Edit1.ReadOnly:=false;
Edit2.ReadOnly:=false;
Edit3.ReadOnly:=false;
Edit4.ReadOnly:=false;
Edit5.ReadOnly:=false;
Edit6.ReadOnly:=false;
Edit7.ReadOnly:=false;
Edit8.ReadOnly:=false;
Memo1.ReadOnly:=false;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
mInifile.WriteString('INFORMATION','PW',Edit1.Text);
mInifile.WriteString('INFORMATION','ACOUNT',Edit2.Text);
mInifile.WriteString('INFORMATION','MailSRV',Edit3.Text);
mInifile.WriteString('INFORMATION','TOPIC',Edit4.Text);
mInifile.WriteString('INFORMATION','ADDRESSER',Edit5.Text);
mInifile.WriteString('INFORMATION','ADDRESSEE',Edit6.Text);
mInifile.WriteString('INFORMATION','PORT',Edit7.Text);
mInifile.WriteString('INFORMATION','IPADDRESS',Edit8.Text);
mInifile.WriteString('INFORMATION','CONTENT',Memo1.Text);
Edit1.ReadOnly:=true;
Edit2.ReadOnly:=true;
Edit3.ReadOnly:=true;
Edit4.ReadOnly:=true;
Edit5.ReadOnly:=true;
Edit6.ReadOnly:=true;
Edit7.ReadOnly:=true;
Edit8.ReadOnly:=true;
Memo1.ReadOnly:=true;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
WSAData: TWSAData; // Winsock數(shù)據(jù)結(jié)構(gòu)
DestAddress: DWord; // 目標主機IP地址
RequestDataBuffer: Pointer; // 請求數(shù)據(jù)緩沖區(qū)指針
ReplyDataBuffer: Pointer; // 應(yīng)答數(shù)據(jù)緩沖區(qū)指針
ICMPEchoReplyBuffer: PIcmp_Echo_Reply;// ICMP回波應(yīng)答緩沖區(qū)
IPOptionInfo: TIP_Option_Information; // 待發(fā)送數(shù)據(jù)包的IP選項
TheIPAddress:string;
begin
//TheIPAddress:=PChar(IP);
TheIPAddress:=Edit8.Text;
if WSAStartup($102,WSAdata) <> 0 then // 初始化Winsock
begin
ShowMessage('Winsock初始化失敗!');
Exit;
end;
ICMPHandle := IcmpCreateFile; // 打開ICMP句柄
if ICMPHandle = INVALID_HANDLE_VALUE then // 錯誤處理
begin
ShowMessage('無法獲得ICMP句柄!');
Exit;
end;
DestAddress := inet_addr(PChar(TheIPAddress)); // 將目標地址轉(zhuǎn)換成網(wǎng)絡(luò)格式
GetMem(RequestDataBuffer, PacketSize); // 分配請求數(shù)據(jù)緩沖區(qū)
FillChar(RequestDataBuffer^, PacketSize, $FF); // 填充請求數(shù)據(jù)緩沖區(qū)
FillChar(IPOptionInfo, SizeOf(IPOptionInfo), 0); // 填充IP選項數(shù)據(jù)
IPOptionInfo.TTL := 64; // 設(shè)置存活期
GetMem(ReplyDataBuffer, PacketSize); // 分配應(yīng)答數(shù)據(jù)緩沖區(qū)
// 分配回波應(yīng)答結(jié)構(gòu)緩沖區(qū)
GetMem(ICMPEchoReplyBuffer, SizeOf(TIcmp_Echo_Reply) + PacketSize);
ICMPEchoReplyBuffer^.Data := ReplyDataBuffer; // 填入緩沖區(qū)指針
if IcmpSendEcho(ICMPHandle, DestAddress, // 發(fā)送回波請求,并等待回波應(yīng)答
RequestDataBuffer, PacketSize,
@IPOptionInfo, ICMPEchoReplyBuffer,
SizeOf(TIcmp_Echo_Reply) + PacketSize, TimeOut) <> 0 then
{ ShowMessage('向' + TheIPAddress + // 顯示測試結(jié)果
'地址發(fā)送了' + IntToStr(PacketSize) + '字節(jié)數(shù)據(jù),'+ #10#13 +
'在' + IntToStr(ICMPEchoReplyBuffer^.RTT) + ' 毫秒內(nèi)從' +
StrPas(inet_ntoa(TInAddr(ICMPEchoReplyBuffer^.Address))) +
'成功接收了' + IntToStr(ICMPEchoReplyBuffer^.DataSize) + '字節(jié).') }
else
Button4.click;
FreeMem(ICMPEchoReplyBuffer); // 釋放分配的內(nèi)存空間
FreeMem(ReplyDataBuffer);
FreeMem(RequestDataBuffer);
IcmpCloseHandle(ICMPHandle); // 關(guān)閉ICMP句柄
if WSACleanup <> 0 then // 關(guān)閉Winsock
ShowMessage('無法關(guān)閉winsock!');
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked=true then
begin
if (trim(Edit1.Text)='') or (trim(Edit2.Text)='') or (trim(Edit3.Text)='') or
(trim(Edit4.Text)='') or (trim(Edit5.Text)='') or (trim(Edit6.Text)='') or
(trim(Edit8.Text)='') then
showmessage('請先設(shè)置‘服務(wù)器’、‘帳號密碼’、‘發(fā)件人’、‘收件人’、‘主題’、‘監(jiān)控地址’等信息!')
else
begin
Button1.Enabled:=false;
timer1.Enabled:=true;
button2.Enabled:=false;
Speedbutton1.Enabled:=false;
Speedbutton2.Enabled:=false;
end;
end
else
begin
Button1.Enabled:=true;
Timer1.Enabled:=false;
button2.Enabled:=true;
Speedbutton1.Enabled:=true;
Speedbutton2.Enabled:=true;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if (trim(Edit1.Text)='') or (trim(Edit2.Text)='') or (trim(Edit3.Text)='') or
(trim(Edit4.Text)='') or (trim(Edit5.Text)='') or (trim(Edit6.Text)='') or
(trim(Edit8.Text)='') then
showmessage('請先設(shè)置‘服務(wù)器’、‘帳號密碼’、‘發(fā)件人’、‘收件人’、‘主題’、‘監(jiān)控地址’等信息!!!')
else
begin
SMTP1.AuthenticationType := atLogin;
SMTP1.username:= edit2.text;
SMTP1.Password := edit1.text;
SMTP1.Host := edit3.text;
SMTP1.Port :=25;
try
SMTP1.Connect;
except
//Showmessage('連接SMTP服務(wù)器失敗!');
Exit;
end;
try
with IdMsg do
begin
body.Clear;
Body.Assign(memo1.lines);
From.address := edit5.text;
Recipients.EMailAddresses :=edit6.text;
Subject:=edit4.text
end;
SMTP1.Send(IdMsg);
finally
//showmessage('您的信件已成功發(fā)送');
SMTP1.Disconnect;
end;
end;
end;
procedure TForm1.UpDown1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=false;
end;
procedure TForm1.UpDown1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Timer1.Enabled:=true;
end;
procedure TForm1.UpDown1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
Timer1.Interval:=StrToInt(Edit9.Text)*1000;
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -