基于vc与word、outlook对象模型的email实现--免费毕业论文、毕业论文范文、毕业论文格式、毕业论文提纲,毕业论文网,提供计算机应用论文,计算机论文,工学论文毕业论文提纲、毕业论文范文、毕业论文格式等.
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
网站地图
合作联系
收藏本站

首 页 经济学论文 财政税收 证券金融 管理学论文 会计审计 工商管理 财务管理 公共管理 法学论文 理学论文 医药学论文
政治论文 社会学论文 文学论文 教育类论文 工学论文 计算机论文 艺术类论文 哲学论文 文化论文 英语论文 应用文 论文写作指导
邮电通信

   
 ·推荐免费论文
·2007县委办公室先进性教育活动工
·用科学发展观统领农业和农村经济
·计算机实习报告范文
·调查报告:大学生眼中的电子商务
·当前农村初中生学习心理的调查报
·求职信的格式和写作要点 
·英文简历写作的注意事项 
·毕业论文写作的基本要求
·计算机软件许可证协议书
 ·最近更新论文
·在电子商务中如何正确的使用数据
·大型ORACLE数据库优化设计方案
·在VB6.0数据库程序开发中使用ADO
·浅谈VFP报表打印问题
·通用网页查询函数的设计与应用
·构建校园网页面电子邮件系统
·Delphi中画布应用两则
·利用RCM2200实现以太网与异步串口
·Oracle数据库的优化
 ·推荐链接
   当前位置:首页 > 计算机论文 > 计算机应用 > 论文正文
联系我们 客户反馈

基于vc与word、outlook对象模型的email实现

来源:  [ 2007-3-8 22:23:08 ]  作者:佚名  编辑:
收藏到VIVI | 收藏到365KEY | 收藏到YOUNOTE | 收藏到博采| 收藏到天极网摘 | 收藏到和讯网摘

摘要: 分析了三种不同的实现邮件发送方法, 通过vc可视化开发环境,结合word及outlook对象模型,实现将word格式以及其他文件格式的文件作为email的邮件体,从而利用word的强大编辑能力构成与发送丰富多彩的邮件。

关键词:SMTP协议   MAPI编程接口    对象模型    动态链接库   电子邮件

随着信息技术的飞速发展,电子邮件作为一种通讯手段,在日常生活和办公领域中发挥着巨大的作用,一些行业需要以邮件为载体,实现信息的实交互、反馈、统计等功能。Visual c++作为功能强大的可视化编程工具正在日益得到广泛的应用。使用vc开发可以实现多线程,支持面向对象、模块化、等特点,大大提高软件的开发效率,同时结合 word、excel、outlook等office 对象模型,从而有望实现含多格式邮件体的邮件定时、批量的发送及其信息反馈的自动处理。本文提出了一种利用vc实现邮件发送的方法,并且实现了将word、html文档插入到邮件体,从而达到即有web网页的生动,又具有邮件的快捷、方便的效果。
1.      基于vc的email功能实现
在vc环境下有三种方法可以实现邮件的发送,下面分别介绍:
(1):使用SMTP进行设计。电子邮件系统所应用的传输协议包括SMTP和POP协议。SMTP即简单邮件传输协议,属于TCP/IP协议族,.使用SMTP设计基于以下通讯模型:针对用户的邮件请求,发送SMTP与接受SMTP之间建立一个双向通道。一旦传送通道建立,SMTP发送者发送mail命令指明邮件发送者。如果SMTP接受者接受,则返回OK应答。SMTP发送者再发出RCPT命令确认邮件是否接受到。故在vc环境下,基于SMTP协议的邮件发送流程为:
 
SMTP协议也有自身的局限性,它只能传输ASCAII文本文件,但对于一些二进制数据文件需要进行编码后才能传输。
(2)使用MAPI进行设计。MAPI是一系列的编程接口规范,而不是应用程序、动态链接库或系统服务程序。它们可以将任何用于电子邮件或工作组的应用程序与适应MAPI的消息服务天衣无缝地连接在一起。在这个规范中详细说明了用户的应用程序和服务提供应用程序是如何通过API实现交互的。MAPI体系包括以下几部分:①MAPI的用户应用程序接口。包括简单的MAPI、CMC9(通用信报调用)、扩展MAPI和Active/OLE报文接口。②MAPI支持的客户应用程序的类型。包括报文感知应用程序、报文激活应用程序和基于报文的应用程序。③MAPI的服务供应程序。包括地址提供者、报文提供者、传输提供者。使用vc开发程序首先需要装载动态链接库文件MAPI32.DLL,然后是得到程序将会使用到的各个函数的地址常用的函数为:MAPILogon(建立会话函数)、MAPILogoff(结束会话函数)、MAPIFreeBuffer(释放缓冲内存函数)、MAPISendMail(信报发送函数)。通过调用以上函数即可实现邮件的发送。
  由于MFC对MAPI进行了很好的封装,使开发信报应用程序的工作大大简化,同时MAPI提供了大量的函数和接口,可以提供丰富的信报功能,然而却很难在邮件体里插入多种格式的文件,只能包含在附件里,对于某些基于邮件的市场活动等,很难吸引邮件接受者的注意,故而达不到满意的效果。
(3)使用outlook对象模型进行设计。使用outlook对象模型可以在vc开发环境下实现outlook所有的信报功能,结合vc语言的多线程、模块化设计与outlook的强大的信报处理功能,从而可以实现邮件的自动、定时发送,并可以实现多格式邮件体,在实现过程中相对以上两种方法更加简单易行,本文重点介绍如何利用outlook来实现。
2.      Outlook、word对象模型的简单介绍
Microsoft office 通过一个对象的等级系统和被称为对象模型的对象集合,将其功能提供给VBA语言,一个程序包含两个基本要素:内容和功能。内容指的是程序所包含的信息,也就是文档等信息;功能指的应用程序内容的所有方式,例如打开、关闭、删除等。组成程序的内容和功能以离散的单元提交给VBA,称为对象。大部分情况下,程序提供给VBA的对象集同所有工作需要的对象对应。程序提供的对象根据相关性以等级关系组织起来。最高级对象为Application,在其底下又有许多的子对象,如Excel中的Workbook对象,word中的Document对象,通过使用对象的属性和方法,可以使用office提供的所有功能。
   以下简单介绍在本文使用的对象。
(1)      outlook对象模型:
application对象。该对象是outlook的核心对象,即根对象,它提供了对其它所有对象的访问。
Namespace对象。该对象是outlook数据源的一个抽象根,虽然该对象不被使用,它还是提供了对在对象树底层上排在自己下面的对象的访问。
Item对象。Outlook中最基本的信息单元。本文将使用mailitem对象。
Explorer对象。文件夹中项目的可视化表示,outlook用explorer显示item对象。
Impector对象。用来显示项目的outlook窗体。Inspector之于项目,如同explorer之于文件夹。
(2)      word对象模型
application对象。 Word的根对象。
Document对象。该对象为word中的文档对象,相对于word中的某一具体文档。
Range对象    document对象的某一特定区块,可以通过不同的参数指定,比如一个段落、一个表格等。
3. 使用outlook对象模型进行设计
使用outlook对象模型,需要在程序中包含对office对象的引用,获得命名空间,然后调用对象的属性和方法,以下列出了部分程序代码。
  (1)在stdafx.h 文件,加入以下语句:

#import "c:\program files\Microsoft Office\Office\msoutl9.olb"  /*outlook对象引用文件*/
#import "c:\program files\Microsoft Office\Office\msword9.OLB" \
 rename_namespace("WD")  /*word对象引用文件*/
#import <mshtml.tlb> rename_namespace("HTML")   /*加入对html对象的引用*/
(2)      邮件发送函数
             BOOL CProject::SendMail()
{
         WD::_ApplicationPtr pWD;
     WD::_DocumentPtr pWordDoc;
     WD::RangePtr pMainStory;
     WD::_DocumentPtr pWordEditor;
     HTML::IHTMLDocument2Ptr pHtmlEditor;    /* 定义word对象和html对象指针*
     Outlook::_ApplicationPtr pOL;
           Outlook::_MailItemPtr pMail;
           Outlook::_InspectorPtr pInspector;      /*  定义outlook对象指针*/
           TESTHR(pOL.CreateInstance(L"Outlook.Application"));  /*创建outlook对象*/
           pMail = pOL->CreateItem(Outlook::olMailItem);     /*创建邮件对象*/
           pMail->Display();
           pMail->To  = m_SendPerson;
           pMail->CC  = m_CopyPerson;
           pMail->Subject = m_bstrSubject;
           pInspector = pMail->GetInspector;          /*建立邮件对象的发送人和主题*/     
           //以下为将现存的word或html文件插入到邮件体里
           if(m_lngBodyFileSize>0)
           {
                 TESTHR(pWD.CreateInstance(L"Word.Application"));
                 _variant_t varBodyFileName=(pApp->m_BodyFilePathName).AllocSysString();
                 pWordDoc = (pWD->Documents)->Open(&varBodyFileName);    /*变量m_BodyFilePathName为所需插入邮件体的word或者html文件所在的路径*/
                 pMainStory = pWordDoc->Content;
                 pMainStory->Copy();
                 pWordDoc->Close();
                 pWD->Quit();
                 pWordDoc = NULL;
                 pWD = NULL;

                 if((BOOL)(pInspector->IsWordMail()))              /*检查是word格式还是html格式*/
                 {
                       pWordEditor = pInspector->WordEditor;
                       (pWordEditor->Content)->Paste();
                 }else
                 {
                       pHtmlEditor = pInspector->HTMLEditor;
                       pHtmlEditor->execCommand("Paste",VARIANT_FALSE);
                 }
           pMail->Send();
}
以上简单的介绍了如何实现邮件体的发送,真正的邮件程序,还有许多其它的工作,在这不再详叙了,通过以上方法,可以实现多种格式邮件体的发送,本文给出了部分程序代码。

本论文共2页,当前在第1页  1  2  

论文首页】【设为主页】【字体: 加入收藏】【打印本文】【回到顶部
 
上篇文章: 基于MapX的多字段专题饼图的设计  下篇文章: 超市事务数据库挖掘关联规则的设计
网站首页 - 友情链接 - 网站地图 - 加入收藏

声明:中国论文网毕业论文资料来源于网络,如有侵犯您的权益,请立即告知,我们将删除!
联系方式: E-mail:Laozhanga@QQ.COM QQ:75931341
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
冀ICP备07000828号