当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:54:00  来源:本站整理

C++ Builder实目前线接纳电子邮件[VC/C++编程]

赞助商链接



  本文“C++ Builder实目前线接纳电子邮件[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

我们在利用163、长通飞华等免费电子邮件的时刻,会发现这些电子信箱具有在线收发的功效,便可以通过浏览器发送和接纳邮件电子邮件.这些功效普通是通过CGI实现的,而CGI技术正在渐渐被ISAPI/NSAPI技术所代替,下面的例子利用C++Builder4.0中的ISAPI/NSAPI实现了电子邮件的在线接纳.利用C++Builder4开辟Web Server程序是非常简单的,C++Builder 4的VCL供应了大量的元件和对象,支持Web Server程序的开辟.

本程序由两个文件构成,辨别为index.htm:接纳电子邮件的浏览器界面,放到WEB服务器的缺省目录下(如:C:\Inetpub\wwwroot);ReadMail.dll:在浏览器内显示邮件列表以及指定邮件内容的Web Server Application.这个动态链结库文件放

可履行文件途径下(如C:\Inetpub\scripts).用户在浏览器内通过Web Server浏览index.htm,输入主机名、端口(普通

是110)、用户名、口令后,首先会看到用户的邮件列表,单击呼应的邮件序号便可查看邮件内容.

首先成立index.htm,其内容以下:

<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>邮件查看</title>
</head>
<body bgcolor="#FFFFFF">
<form action=" /scripts/MailList.dll/MailList"
method="POST">
<p>主机:<input type="text" size="20" name="Host"></p>
<p>端口:<input type="text" size="20" name="Port"></p>
<p>用户名:<input type="text" size="20" name="Name"></p>
<p>口令:<input type="password" size="20" name="Code"></p>
<p><input type="submit" name="B1" value="提交"><input
type="reset" name="B2" value="答复"></p>
</form>
</body>
</html>

下面编写ReadMail.dll

在C++Builder中新建一个基于ISAPI的Web Server Application,手动增添

NMPOP31,PageProducer1.在Unit1.h头文件中定义几个变量:

AnsiString HostName,HostPort,UserName,UserCode;

TStrings *URLData; // 承受HTTP恳求传送的参数

bool ConnectFlag;

int EmailOrder;

增添一个途径为/MailList的行动项,其代码以下:

void __fastcall TWebModule1::WebModule1WebActionItem1Action(
TObject *Sender, TWebRequest *Request, TWebResponse *Response,
bool &Handled)
{
//承受HTTP恳求传送的参数,从中获得用主机、端口、户名和口令
URLData = NULL;
switch(Request->MethodType)
{case mtPost:
URLData = Request->ContentFields;
break;
case mtGet:
URLData = Request->QueryFields;
break;
}
HostName = URLData->Values["Host"];
HostPort = URLData->Values["Port"];
UserName = URLData->Values["Name"];
UserCode = URLData->Values["Code"];
//下面开始衔接邮件服务器
NMPOP31->AttachFilePath=".";//存储邮件途径为当前途径
NMPOP31->DeleteOnRead=false;//不删除服务器上的副本
NMPOP31->ReportLevel=Status_Basic;//Status的具体程度
NMPOP31->TimeOut=20000;//设定超时
NMPOP31->Host=HostName;
NMPOP31->Port=StrToInt(HostPort);
NMPOP31->UserID=UserName;
NMPOP31->Password=UserCode;
ConnectFlag=true;
NMPOP31->Connect();
//假如衔接成功,则制作邮件列表的HTML语句
if(ConnectFlag)
{PageProducer1->HTMLDoc->Clear();
PageProducer1->HTMLDoc->Add("<html><body>");
PageProducer1->HTMLDoc->Add("邮件个数"+IntToStr(NMPOP31->MailCount));
if(NMPOP31->MailCount)
for(int i=1;i<=NMPOP31->MailCount;i++)
{PageProducer1->HTMLDoc->Add("<a href=''");
PageProducer1->HTMLDoc->Add("ReadMail?Mx=");
PageProducer1->HTMLDoc->Add(IntToStr(i));
PageProducer1->HTMLDoc->Add("''>");
PageProducer1->HTMLDoc->Add(IntToStr(i));
PageProducer1->HTMLDoc->Add("</a>");}
}
PageProducer1->HTMLDoc->Add("</body></html>");
NMPOP31->Disconnect();}
else
{PageProducer1->HTMLDoc->Clear();
PageProducer1->HTMLDoc->Add("<html><body>");
PageProducer1->HTMLDoc->Add("衔接服务器失利!");
PageProducer1->HTMLDoc->Add("</body></html>");}
//将邮件列表的HTML语句发送给浏览器
Response->Content = PageProducer1->Content( );
}
//--------------------------------------------------------------


  以上是“C++ Builder实目前线接纳电子邮件[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • win8 Could not load type System.ServiceModel.Activation.HttpModule 错误办理筹划
  • 利用Javascript实现网页水印(非图片水印)
  • 在Windows7中将U盘用BitLocker加密的操作步骤
  • rs.open和conn.execute辨别
  • 不用注册机破解Photoshop CS5 每次都需求重新输入注册码
  • CSS网页筹划25个实用小本领
  • CSS3教程:利用@font-face实现本性化字体
  • 办理Windows提醒0xc000009内存错误的办法
  • PHP的chm手册打不开怎么办
  • 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
  • mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
  • SQL Server中利用Linkserver衔接Oracle的办法
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .