我有一段,用API发信的代码,可是帐号和密码加了密,哪位高手可以改成直接输入帐号和密码?

fedex2 2003-08-30 03:19:53
unit SendMail;

interface
uses winsock,Reg,windows,Other;
procedure SendEMail;

implementation
const CRLF=#13#10;

function LocalIP:string;
type TaPInAddr=array [0..10] of PInAddr;
PaPInAddr=^TaPInAddr;
var phe:PHostEnt;
pptr:PaPInAddr;
Buffer:array [0..63] of char;
I:Integer;
GInitData:TWSADATA;
begin
WSAStartup($101,GInitData);
Result:='';
GetHostName(Buffer,SizeOf(Buffer));
phe:=GetHostByName(buffer);
if phe=nil then Exit;
pptr:=PaPInAddr(Phe^.h_addr_list);
I:=0;
while pptr^[I]<>nil do begin
result:=StrPas(inet_ntoa(pptr^[I]^));
Inc(I);
end;
WSACleanup;
End;


function StartNet(host:string;port:integer;var sock:integer):Boolean;
var
wsadata:twsadata;
FSocket:integer;
SockAddrIn:TSockAddrIn;
err:integer;
begin
err:=WSAStartup($0101,WSAData);
FSocket:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP);
if FSocket=invalid_socket then begin
Result:=False;
Exit;
end;
SockAddrIn.sin_addr.s_addr:=inet_addr(PChar(host));
SockAddrIn.sin_family := PF_INET;
SockAddrIn.sin_port :=htons(port);
err:=connect(FSocket,SockAddrIn, SizeOf(SockAddrIn));
if err=0 then begin
sock:=FSocket;
Result:=True;
end else Result:=False;
end;

procedure StopNet(Fsocket:integer);
var
err:integer;
begin
err:=closesocket(FSocket);
err:=WSACleanup;
end;

function SendData(FSocket:integer;SendStr:string):integer;
var
DataBuf:array[0..4096] of char;
err:integer;
begin
strcopy(DataBuf,pchar(SendStr));
err:=send(FSocket,DataBuf,strlen(DataBuf),MSG_DONTROUTE);
Result:=err;
end;

function GetData(FSocket:integer):String;
const MaxSize=1024;
var
DataBuf:array[0..MaxSize] of char;
err:integer;
begin
err:=recv(FSocket,DataBuf,MaxSize,0);
Result:=Strpas(DataBuf);
end;

procedure SendEMail;
var FSocket,res:integer;
Subject,MailText,SendBody:String;
Tomail:String;
begin
Subject:=Getmailbody(MailText);
if (Subject='') or (LocalIP='127.0.0.1') then Exit;
if StartNet('202.102.192.111',25,FSocket) then begin
SendData(FSocket,'EHLO 202.102.192.111'+CRLF);
getdata(FSocket);

SendData(FSocket,'AUTH LOGIN'+CRLF);
getdata(FSocket);

SendData(FSocket,
chr(85)+chr(50)+chr(86)+chr(117)+chr(90)+chr(71)+chr(49)+chr(112)+chr(99)+chr(103)+chr(61)+chr(61)
+CRLF);
getdata(FSocket);

SendData(FSocket,
chr(84)+chr(71)+chr(86)+chr(110)+chr(90)+chr(87)+chr(53)+chr(107)
+CRLF);
getdata(FSocket);

SendData(FSocket,'MAIL FROM: <xxx@xxx.com'+CRLF);
getdata(FSocket);

SendData(FSocket,'RCPT TO: <xxx@xxx.com'>'+CRLF);
getdata(FSocket);

SendData(FSocket,'DATA'+CRLF);
getdata(FSocket);

SendBody:='From:Mir <xxx@xxx.com'>'+CRLF
+'To: <xxx@xxx.com'>'+CRLF
+'Subject:hello'+Subject+CRLF
+CRLF
+MailText+CRLF
+'.'+CRLF;
res:=SendData(FSocket,SendBody);
getdata(FSocket);

SendData(FSocket,'QUIT'+CRLF);
getdata(FSocket);

StopNet(Fsocket);
end;
end;


End.


哪位能改成,在EDIT1,EDIT2 里输入帐号和密码后,发信的软件啊?

...全文
151 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧