中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
如何用Delphi开发简单的WebMail程序
作者:张维 时间:2006-10-05 13:10 出处:ccidnet.com 责编:月夜寒箫
              摘要:如何用Delphi开发简单的WebMail程序

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的用户输入,并且如果用户的用户名及密码正确,则可进入发送邮件的页面。用户填写接受邮件地址及主题、内容后,即可发送邮件。此程序在NT Server上调试通过。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有