资源描述:
《不用控件,用函数实现发emai》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、不用控件,用函数实现发Emai windows,messages,winsock,sysutils;{$R*.RES}const CRLF=#13#10; exename:pchar='邮箱信使';var thd:array[1..1000]ofinteger; tid:array[1..1000]ofdword; faint,hMutex,mcount,speed,newtime,oldtime,num,count,err:integer; s1:string; sbuf:array[0..1024]ofchar; dest:string; attstart:
2、boolean;//---------------------- wClass: TWndClass; //窗口类变量 Msg: TMSG; //消息变量 hInst, //程序实例 Handle, //主窗口句柄 hFont, //字体句柄//---------------- hButtonStart, //开始按钮 hButtonStop, //停止按钮 hButtonHelp, //帮助按钮 hButtonExit, //退出按钮 hEditEmail, //e-mail编辑 hEditCount
3、, //次数编辑 hEditThread, //线程数编辑 hLabelEmail, //e-mail提示 hLabelCount, //次数提示 hLabelThread, //线程数提示 hLabelInfo //领息提示 :integer; //句柄类型//--------------------//往一个窗口写标题procedureWriteCaption(hwnd:hwnd;text:pchar);beginsendmessage(hwnd,WM_SETTEXT,0,integer(text));end;//从一个窗口读标题proc
4、edureReadCaption(hwnd:hwnd;text:pchar);beginsendmessage(hwnd,WM_GETTEXT,400,integer(text));end;//以下是网络连接的过程functionStartNet(host:string;port:integer):integer;var wsadata:twsadata; fsocket:integer; SockAddrIn:TSockAddrIn; err:integer;begin //为网络连接作好准备(用winsock1.1以上版本) err:=WSAStartup(
5、$0101,WSAData); //创建一个客户端套接字(ClientSocket,用SOCK_STREAM,即TCP协义) FSocket:=socket(PF_INET,SOCK_STREAM,IPPROTO_IP); //初始化网络数据 SockAddrIn.sin_addr.s_addr:=inet_addr(PChar(host)); SockAddrIn.sin_family:=PF_INET; SockAddrIn.sin_port:=htons(port); //客户端向smtp进行连接 repeat err:=connect(FSocket,S
6、ockAddrIn,SizeOf(SockAddrIn)); untilerr=0; // Result:=FSocket;end;//以下是网络关闭的过程procedureStopNet(Fsocket:integer);var err:integer;begin //发信结束,关闭客户端套接字(CloseClientSocket) err:=closesocket(FSocket); //清除网络参数 err:=WSACleanup;end;//下面是个发送数据包的过程functionSendData(FSocket:integer;SendStr:stri
7、ng):integer;const MaxSize=1024;var DataBuf:array[0..MaxSize]ofchar; err:integer;begin //读取网络数据 err:=recv(FSocket,DataBuf,MaxSize,0); //将网络数据写入主窗口的标题中,提示用户正在发信过程中 //WriteCaption(handle,DataBuf); //向网络发送数据 strcopy(DataBuf,pchar(SendStr)); err:=send(FSocket,DataBuf,strlen(DataBuf),MSG_D
8、ONTROUTE); R