使用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(); } 以上简单的介绍了如何实现邮件体的发送,真正的邮件程序,还有许多其它的工作,在这不再详叙了,通过以上方法,可以实现多种格式邮件体的发送,本文给出了部分程序代码。
参考文献: 1 J. Klensin. SMTP Service Extensions.RFC1869, November 1995 2 G. Vaudreuil. SMTP Service Extensions for Transmission of Large and Binary MIME Messages. RFC1830. August 199 3 microsoft. Microsoft Powerpoint 2000,Outlook 2000和FrontPage 2000 language reference.August 1999 4 博嘉科技.Visual c++6.0/Internet Programming Instance.北京希望电子出版社.2001年6月
上一页 [1] [2]
Tags:
|