快速业务通道

用C++ Builder实现电子邮件群发

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-29
是具有自己的优势,一般我们都采用Borland的强大的BDE数据库引擎来访问和维护数据库,但是使用BDE引擎有一个非常不方便的地方就是不能在程序运行阶段动态指定数据源,而采用ADO(ActiveX Data Objects)方式具有高性能、高兼容性和高灵活性的特点。采用ADO方式我们既可以在程序设计阶段指定数据源也可以在运行时动态修改数据源,而在实际应用中用户可能会要动态的指定存储邮件地址的数据库,为了使编写的群发程序具有更好得实用性,所以我选择使用C++Builder中的ADO组件TADOTable来访问和操作Access2000数据库,具体示例代码如下:

Void __fast call TForm1: N_OpenClick (TObject *Sender)
{
 AnsiString ConnStr;
 Try {ADOTable1->Active = false;
 OpenDialog1->InitialDir =".\\" ; //初始化打开对话框
 OpenDialog1->Filter = "MDB邮件列表文件 (*.mdb)|*.mdb|所有文件 (*.*)|*.*";
 OpenDialog1->DefaultExt = String("mdb");
 if(OpenDialog1->Execute ())//动态指定数据源
 {
  ConnStr=" Provider=Microsoft.Jet.OLEDB.4.0; Jet OLEDB: Database Password =" + MaskEdit1->Text. Trim () + "; Data Source = " + OpenDialog1-> Filename. Trim () +"; Persist Security Info=True";
  ADOTable1->Connection String =ConnStr.Trim ();
  ADOTable1->Active=true;
 }
 Catch (Exception &exception)
 {
  Application->Show Exception (&exception);
 }
}

注意代码中加粗的部分是必须的,在访问有密码保护的Access2000数据库时必须以独占方式打开,如果没有加粗部分的代码,则连接数据库时会提示错误。

3、使用TIdSMTP组件实现群发

在C++Builder6.0中新增加了一套INDY组件,这是一套开放源代码、功能强大的Internet组件,目前该套组件的最新版本是INDY10, 虽然在6.0以前的C++Builder版本中未集成这套组件,但是可以到INDY的网站http://www.indyproject.org/ 上下载源代码进行安装。INDY中的TIdSMTP组件符合RFC821、RFC1869和RFC2544的规范,利用TIdSMTP组件我们能够轻松的实现与SMTP服务器的认证连接、邮件的发送和回执请求。下表是要实现邮件群发,将使用到TIdSMTP组件的基本属性和方法:

表1 TIdSMTP组件的基本属性和方法

方法名 功能描述
Connect () 连接SMTP服务器
Disconnect () 关闭SMTP会话
Send (Amsg: IdMessage) 发送邮件
Connected () 判断是否与SMTP服务器连接
Disconnected () 判断是否与SMTP服务器断开连接
属性名 功能描述
Host SMTP服务器地址,可以使用IP地址或域名,如:Smtp.sohu.com
Port 与SMTP服务器建立TCP连接使用的端口,一般为25
Authentication Type 与SMTP服务器认证的类型,目前版本只提供LOGIN方式
UserID 邮箱用户名
Password 邮箱密码

在TIdSMTP中执行邮件发送的是Send()方法,它的参数是一个TIdMessage类的实例,所以要实现完整的邮件发送TIdSMTP组件还必须配合INDY中的TIdMessage组件使

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号