⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~pas

📁 此软件是用来监控网络设备的连网情况
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:

SMTP1.AuthenticationType := atLogin;

SMTP1.username:= edit2.text;
SMTP1.Password := edit1.text;

SMTP1.Host := edit3.text;
SMTP1.Port :=25;
  try
   SMTP1.Connect;
   except
    Showmessage('连接SMTP服务器失败!');
    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('您的信件已成功发送');
  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');//创建保存信息的文件名
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数据结构
  DestAddress: DWord;			// 目标主机IP地址
  RequestDataBuffer: Pointer;		// 请求数据缓冲区指针
  ReplyDataBuffer: Pointer;		// 应答数据缓冲区指针
  ICMPEchoReplyBuffer: PIcmp_Echo_Reply;// ICMP回波应答缓冲区
  IPOptionInfo: TIP_Option_Information;	// 待发送数据包的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));   // 将目标地址转换成网络格式
  GetMem(RequestDataBuffer, PacketSize);	   // 分配请求数据缓冲区
  FillChar(RequestDataBuffer^, PacketSize, $FF);   // 填充请求数据缓冲区
  FillChar(IPOptionInfo, SizeOf(IPOptionInfo), 0); // 填充IP选项数据
  IPOptionInfo.TTL := 64;			   // 设置存活期
  GetMem(ReplyDataBuffer, PacketSize);		   // 分配应答数据缓冲区
    												// 分配回波应答结构缓冲区
  GetMem(ICMPEchoReplyBuffer, SizeOf(TIcmp_Echo_Reply) + PacketSize);
  ICMPEchoReplyBuffer^.Data := ReplyDataBuffer;	   // 填入缓冲区指针
  if IcmpSendEcho(ICMPHandle, DestAddress, 	   // 发送回波请求,并等待回波应答
                RequestDataBuffer, PacketSize,
                @IPOptionInfo, ICMPEchoReplyBuffer,
                SizeOf(TIcmp_Echo_Reply) + PacketSize, TimeOut) <> 0 then
  {  ShowMessage('向' + TheIPAddress + 		   // 显示测试结果
                '地址发送了' + IntToStr(PacketSize) + '字节数据,'+ #10#13 +
                '在' + IntToStr(ICMPEchoReplyBuffer^.RTT) + ' 毫秒内从' +
                StrPas(inet_ntoa(TInAddr(ICMPEchoReplyBuffer^.Address))) +
                '成功接收了' + IntToStr(ICMPEchoReplyBuffer^.DataSize) + '字节.')   }
  else
    Button4.click;
  FreeMem(ICMPEchoReplyBuffer);			   // 释放分配的内存空间
  FreeMem(ReplyDataBuffer);
  FreeMem(RequestDataBuffer);
  IcmpCloseHandle(ICMPHandle);			   // 关闭ICMP句柄
  if WSACleanup <> 0 then			   // 关闭Winsock
    ShowMessage('无法关闭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('请先设置‘服务器’、‘帐号密码’、‘发件人’、‘收件人’、‘主题’、‘监控地址’等信息!')
    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('请先设置‘服务器’、‘帐号密码’、‘发件人’、‘收件人’、‘主题’、‘监控地址’等信息!!!')
 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服务器失败!');
    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('您的信件已成功发送');
  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.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -