程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何用Delphi開發簡單的WebMail程序

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

編輯:Delphi

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

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

  dl.Html的內容如下:

  <Html>
  <head><title>發送郵件系統</title></head>
  <body>
  <h1>發送郵件系統</h1>
  <p>請輸入您的用戶名及密碼</p>
  <form method=”post”action="/scripts/SendMail">
  <p>用戶名<input type="text" length=10 name="username">
  密碼:< input type="password" 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的Htmlfile屬性為c:\inetpub\www.root\qd.Html。nmsmtp1的host(發送郵件服務器的地址)在這裡為smtp.Netease.com.,port:25。全局變量為:sername:string;flag:boolean。

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

   Var
   Count:integer;
  S:string;
   Begin
  Query1.close;
  Query1.sql.clear;
  S:=’select count(username) from user.dbswheresusername=”’;
  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的動作項,它的程序代碼如下:

  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的OnConnect事件添加如下代碼:

  pageproducer1.Htmldoc.add('<p>已經和發送郵件服務器連接</p>');
  在NMSMTP1的Connection事件添加如下代碼:
  flag:=false;
  pageproducer1.Htmldoc.add('<p>連接失敗</P>');

  將project存為sendmail.dpr,編譯後放到Web服務器的可執行文件路徑下(如:c:\intpub\scripts),即可響應Html文件dl.htm的用戶輸入,並且如果用戶的用戶名及密碼正確,則可進入發送郵件的頁面。用戶填寫接受郵件地址及主題、內容後,即可發送郵件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved