熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

如何用Delphi開發簡單的WebMail程序

2013-11-23 17:44:10  來源: Delphi編程 
WebMail是指在網頁中實現郵件的發送使用Delphi開發Web Server程序是非常簡單的Delphi中提供了大量的元件和對象下面通過一個例子來介紹如何利用Delphi開發一個響應用戶輸入的ISAPI的WebMail程序為了簡單程序沒有對傳送的數據提供保密

  首先在Web服務器端安裝數據庫引擎dbe並設置好數據庫別名yh指向一個包含用戶名和用戶密碼的數據庫文件userdb接著建立兩個HTML文件名字分別為dlhtmlqdhtml放在Web服務器的缺省目錄下(如c\inetpub\wwwroot)

  dlhtml的內容如下

    <html>
    <head><title>發送郵件系統</title></head>
    <body>
    <h>發送郵件系統</h>    
    <p>請輸入您的用戶名及密碼</p>
    <form method=postaction=/scripts/SendMail>
    <p>用戶名<input type=text length= name=username>
    密碼< input type=password length= name=password ></p>    
    <p><input type=submit value=確定>
    <input type=reset value=清除></p>
    </form>
    </body>
    </html>
 
  qdhtml文件內容如下

    <html><head><title>填表</title></head>
    <body>
    <form method=postaction=feedback>
    <p>請填入接收郵件地址:toaddress:
    <input type=textlength= name=toaddress></p>
    <p>請填入主題<input type=text length= name=subject></p>
    <p>內容</p>
    <p><input type=textarealength= width= name=body></p>
    <p><input type=submit value=確定>
    <input type=reset value=清除></p>
    </form >
    </body >
    </html >
 
  在Delphi中新建一個基於ISAPI的Web Server Application手動增加nmsmtpquerypageproducer其中pageproducer的htmlfile屬性為c:\inetpub\wwwroot\qdhtmlnmsmtp的host(發送郵件服務器的地址)在這裡為smtpneteasecomport:全局變量為sername:string;flag:boolean

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

     Var
     Count:integer;
    S:string;
     Begin
    Queryclose;
    Querysqlclear;    
    S:=select count(username) from userdbswheresusername=;
    S:=s+requestcontentfieldsvalues[username]+;
    S:=s+and password=;
    S:=s+requestcontentfieldsvalues[psword]+;
    Querysqladd(S);
    Queryopen;
    If querycount= then responsecontent:=
    <html><head><title>
    </title>
    <body>用戶名密碼不正確請重新輸入</body>
    </html>
    Else
    Username:=requestcontentfieldsvalues[username];
    Responsecontent:=pageproducercontent;
    End;
 
  再增加一個路徑為Sendmail的動作項它的程序代碼如下

    Var body:string;
    Begin
    Flag:=true;
    body:=requestcontentfieldsvalues[body];
    Pageproducerhtmldocclear;
    Pageproducerhtmldocadd(< html >< body >);
    Nmsmtppostmessageclear;
    Nmsmtppostmessagefromaddress:=username+@neteasecom;
    Nmsmtppostmessagefrom:=username;
    Nmsmtppostmessagebodyadd(body);
    Nmsmtppostmessagetoaddressadd(requestcontentfieldsvalues[toaddress]);
    Nmsmtppostmessagesubject:=requestcontentfieldsvalues[subject]
    Nmsmtpconnect;
    If flag=true then
    begin
    Nmsmtpsendmail;
    nmsmtpdisconntent;
    end
    pageproducerhtmldocadd(</body></html>);
    responsecontent:=pageproducercontent;
    end;
 
  增加nmsmtp的OnConnect事件添加如下代碼

    pageproducerhtmldocadd(<p>已經和發送郵件服務器連接</p>):
    在NMSMTP的Connection事件添加如下代碼
    flag:=false;
    pageproducerhtmldocadd(<p>連接失敗</P>);
 
  將project存為sendmaildpr編譯後放到Web服務器的可執行文件路徑下(如c:\intpub\scripts)即可響應HTML文件dlhtm的用戶輸入並且如果用戶的用戶名及密碼正確則可進入發送郵件的頁面用戶填寫接受郵件地址及主題內容後即可發送郵件此程序在NT Server上調試通過


From:http://tw.wingwit.com/Article/program/Delphi/201311/24974.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.