麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

Delphi開發WEBMAIL程序

2019-11-18 18:48:58
字體:
來源:轉載
供稿:網友
常,實現WEBMAIL采用mailto.exe的CGI、在HTML文件中寫入“< form action="mailto:電子郵箱地址" method=post >”語句或者調用WINDOWS API函數。采用WINDOWS API 和在HTML文件中寫入“< form action="mailto:電子郵箱地址" method=post >”語句都要求用戶的瀏覽器裝入EXCHANGE、OutlookEXPRESS、或OUTLOOK等軟件,而且還有一些瀏覽器不支持MAILTO語句。而采用CGI的形式實現WEBMAIL對用戶的瀏覽器沒有要求,但效率不高。CGI技術正在逐漸被ISAPI/NSAPI技術所取代。本文就來討論一下采用ISAPI技術實現WEBMAIL。

  使用Delphi 4開發Web Server程序是非常簡單的,Delphi 4中提供了大量的元件和對象,支持Web Server程序的開發。 下面通過一個例子來介紹如何利用DELPHI開發一個響應用戶輸入的ISAPI的WEBMAIL程序。只有在發送服務器上注冊的用戶才能通過在瀏覽器發送郵件。為了簡單,程序沒有對傳送的數據提供保密。

  首先,在WEB服務器端安裝數據庫引擎dbe,并設置好數據庫別名:yh,指向一個包含用戶名和用戶密碼的數據庫文件user.db。接著建立兩個HTML文件,名字分別為:dl.html,qd.html,放在WEB服務器的缺省目錄下(如:C:INETPUBWWWROOT)。

dl.html的內容如下:

< html >

< head >< title > 發送郵件系統< /title >< /head >

 < body >

  < h1 >發送郵件系統< /h1 >

  < p > 請輸入您的用戶名及密碼。< /p >

  < form method=”post” action="/scr
   < p >用戶名:< input type="text" length=10

     name="username" >

    密碼:< input type="pass
Word"

        length=10 name="password" >< /p >

   < p >< input type="submit" value="確定" >

   < input type="reset" value="清除" >< /p >

  < /form >

< /body >

< /html >

qd.html文件內容如下:

< html >< head >< title >填表< /title >< /head >

 < body >

  < form method=”post” action="feedback" >

    < p >請填入接收郵件地址:toaddress:

   < input type=”text” length=20

    name=”toaddress” >< /p >

    < p >請填入主題。< input type="text"

      length=20 name="subject" >< /p >

    < p >內容:< /p >

    < p >< input type=“textarea”length=40

    width=40 name=”body” >< /p >

    < p >< input type="submit" value="確定" >

  < input type="reset" value="清除" >< /p >

   < /form >

 < /body >

< /html >
 

在DELPHI中新建一個基于ISAPI的WEB SERVER application,手動增加nmsmtp1,query1,pageproducer1。

其中:pageproducer1的property: htmlfile:c:inetpubwww.rootqd.html。nmsmtp1的 property:host(發送郵件服務器的地址。)在這里為smtp.netease.com.。port:25。 全局變量為: sername:string;flag:boolean;

增加一個路徑為/feedback的動作項,其代碼如下:

procedure TWebModule1.WebModule1WebActionItem1

  Action(Sender: TObject;

 Request: TWebRequest; Response:

  TWebResponse; var Handled: Boolean);

Var Count:integer;

   S:string;

Begin

 Query1.close;

 Query1.sql.clear;

 S:=’select count(username) from

   user.db where username=”’;

 S:=s+request.contentfields.values[‘username’]+’”’;

 S:=s+’ and password=”’;

 S:=s+request.contentfields.values[‘psword’]+’”’;

 Query1.sql.add(S);

 Query1.open;

If query1.count=0

then response.content:=’< html >< head >< title >

< /title >< body >用戶名、密碼不正確,請重新輸入

< /body >< /html >’

Else 

  Username:=request.contentfields.values[‘username’];

  Response.content:=pageproducer1.content;

End;



再增加一個路徑為/sendmail 的動作項,

   它的程序代碼如下:

procedure TWebModule1.WebModule1Web

   ActionItem2Action(Sender: TObject;

 Request: TWebRequest; Response:

TWebResponse; var Handled: Boolean);

Var body:string;

Begin

 Flag:=true;

 body:=request.contentfields.values[‘body’];

 Pageproducer1.htmldoc.clear;

 Pageproducer1.htmldoc.add(‘< html >< body >’);

 Nmsmtp1.postmessage.clear;

 Nmsmtp1.postmessage.fromaddress:=username+

 ’@netease.com’;

 Nmsmtp1.postmessage.from:=username;

 Nmsmtp1.postmessage.body.add(body);

 Nmsmtp1.postmessage.toaddress.add

 (request.contentfields.values[‘toaddress’]);

 Nmsmtp1.postmessage.subject:=

 request.contentfields.values[‘subject’];

 Nmsmtp1.connect;

 If flag=true then begin Nmsmtp1.sendmail;

 nmsmtp1.disconntent;end

 pageproducer1.htmldoc.add

 (‘< /body >< /html >’);

 response.content:=pageproducer1.content;



end;  



增加nmsmtp1的事件如下:

procedure TWebModule1.NMSMTP1Connect(Sender: TObject);

begin

 pageproducer1.htmldoc.add

('< p >已經和發送郵件服務器連接< /p >');

end;



procedure TWebModule1.NMSMTP1Connection

Failed(Sender: TObject);

begin

 flag:=false;

 pageproducer1.htmldoc.add

('< p >連接失敗< /P >');

end;



procedure TWebModule1.NMSMTP1ConnectionRequired

(var Handled: Boolean);

begin

 pageproducer1.htmldoc.add('< p >要求進行連接< /p >');

end;





procedure TWebModule1.NMSMTP1Failure(Sender: TObject);

begin

 pageproducer1.htmldoc.add('< p >發送郵件失敗< /p >');

 flag:=false;

end;



procedure TWebModule1.NMSMTP1Header

Incomplete(var handled: Boolean;

 hiType: Integer);

begin

 pageproducer1.htmldoc.add('< p >head不完整< /p >');

 flag:=false;

end;





procedure TWebModule1.NMSMTP1InvalidHost

(var Handled: Boolean);

begin

 pageproducer1.htmldoc.add('< p >

發送郵件服務器地址無效< /p >');

 flag:=false;

end;





procedure TWebModule1.NMSMTP1RecipientNot

Found(Recipient: String);

begin

 pageproducer1.htmldoc.add

('< p >接受郵件地址不正確< /p >');

 flag:=false;

end;





procedure TWebModule1.NMSMTP1Success(

Sender: TObject);

begin

 pageproducer1.htmldoc.add('< p >

成功發送郵件< /p >');

end; 
  將project存為sendmail.dpr,編譯后放到WEB服務器的可執行文件路徑下(如:c:intpubscripts),即可響應HTML文件dl.htm的用戶輸入,并且如果用戶的用戶名及密碼正確則可進入發送郵件的頁面,用戶填寫接受郵件地址及主題、內容后即可發送郵件。此程序在NT SERVER上調試通過。

上一篇:用Delphi發送SMS(手機短消息服務)

下一篇:用Delphi編寫CGI程序(六)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 91网站链接| 精品国产一区二区三区在线观看 | 国产精品久久久久久模特 | 免费观看黄色影片 | 国产精品久久久久久婷婷天堂 | 天天透天天狠天天爱综合97 | 一区二区三区视频在线观看 | 色骚综合| 二级大黄大片高清在线视频 | 久久色播 | 看免费黄色大片 | 欧美在线a | 蜜桃视频在线播放 | 成年人网站视频免费 | 亚洲精品无码不卡在线播放he | 欧美日本在线播放 | 国产噜噜噜 | 91成人一区 | 中文字幕 在线观看 | 一级电影免费在线观看 | japanese嫩21videos| 深夜福利视频免费观看 | av电影在线观看网站 | 国产午夜亚洲精品理论片大丰影院 | 国产一区二区三区视频在线观看 | 高清国产免费 | 成人短视频在线播放 | 在线播放一级片 | 无遮挡一级毛片视频 | 久久久久久久99 | 黄色片网站在线免费观看 | 久久精品视频国产 | 久久久久久久久久久国产精品 | 欧产日产国产精品v | 人人看人人艹 | 黑人一区二区三区四区五区 | 一区二区三区日韩精品 | 欧美精品一区自拍a毛片在线视频 | 鸳鸯谱在线观看高清 | 一级黄色在线免费观看 | 九九视屏|