Message CoClass
Message CoClass
The Message Component Object Model (COM) class defines an object that represents a message.
- CLSID
CD000001-8B95-11D1-82DB-00C04FB1625D
- ProgID
CDO.Message
- Type Library
Microsoft CDO for Windows 2000 Library
- Inproc Server
CDOSYS.DLL
- Threading Model
Both
Implemented Interfaces
Fields
The following fields can be used with instances of the Message COM class.
Name | Description |
---|---|
urn:schemas:mailheader: namespace |
All fields defined within this namespace. |
urn:schemas:httpmail: namespace |
All fields defined within this namespace. |
The Sensitivity header field for the message (an enumerated value in this namespace). |
|
Simple Mail Transfer Protocol (SMTP) transport event sinks only. Contained in the IMessage.EnvelopeFields collection. |
|
Network News Transfer Protocol (NNTP) transport event sinks only. Contained in the IMessage.EnvelopeFields collection. |
Remarks
Instances of the Message COM class represent a complete message. The primary and default interface on a Message object is the IMessageinterface. You use this interface to access the functionality of the object that is specific to messaging, including addressing and adding content to the message; and sending, posting, or responding to the message.
The IMessage interface provides a set of top-level methods and properties that are designed to make creating the most common message content a simple and intuitive process. Methods include CreateMHTMLBody, AddBodyPart, and AddAttachment. Properties include TextBody and HTMLBody.
For messages formatted in Multipurpose Internet Mail Extensions (MIME), the Message object acts as the root body part of the MIME body part hierarchy. This functionality is provided through the exposed IBodyPart interface on the object. The IMessage interface provides the BodyPart property that returns this interface on the object. You can use the BodyPart property, the GetInterface method, or standard mechanisms such as Set in Microsoft® Visual Basic®, and QueryInterface in C++ to navigate to this interface.
To facilitate the easy transfer of message data to and from other objects, the Message object provides an implementation of the IDataSource interface. Using methods and properties on this interface, you can access messages that are embedded in other messages, and you can also embed messages in other messages. The IMessage interface provides the DataSource property to aid in navigating to the IDataSource interface on the object.
Example
Dim iMsg as new CDO.Message
Dim iBp as CDO.IBodyPart
Dim iConf as New CDO.Configuration
Dim Flds as ADODB.Fields
Set Flds = iConf.Fields
' Use string constants for field names.
Flds(cdoSendUsingMethod) = cdoSendUsingPickup
Flds(cdoSMTPServerPickupDirectory) = "c:\\Inetpub\\mailroot\\Pickup"
Flds(cdoURLProxyServer) = "server"
Flds(cdoURLProxyBypass) = "<local>"
Flds(cdoURLGetLatestVersion) = True
Flds.Update
Set iMsg.Configuration = iConf
Set Flds = Msg.Fields
With Flds
.Item("urn:schemas:mailheader:to") = "example@example.com"
.Item("urn:schemas:mailheader:from") = "example@example.com,another@example.com"
.Item("urn:schemas:mailheader:sender") = "example@example.com"
.Item("urn:schemas:mailheader:subject")= "Check this stuff out."
.Update
End With
With iMsg
.AddAttachment("c:\somefile.ext")
.AddAttachment("c:\anotherfile.ext2")
.CreateMHTMLBody "http://server.example.com/page.html", cdoSuppressNone
.Send
End With
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace raw_interfaces_only
#import <cdosys.dll> no_namespace raw_interfaces_only
#include <cdosysstr.h> // string constants in this file
#include <iostream.h>
main(){
CoInitialize(NULL); // single-threaded apartment
IMessage* pMsg = NULL;
/*
** Create an instance of the Message COM class.
*/
HRESULT hr = CoCreateInstance(__uuidof(Message),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IMessage),
reinterpret_cast<void**>(&pMsg));
assert(SUCCEEDED(hr));
Fields* pFlds = NULL;
pMsg->get_Fields(&pFlds);
Field* pFld = NULL;
pFlds->get_Item(_variant_t("urn:schemas:mailheader:to"),&pFld);
pFld->put_Value(_variant_t("example@example.com"));
pFld->Release();
pFlds->get_Item(_variant_t("urn:schemas:mailheader:from"),&pFld);
pFld->put_Value(_variant_t("example@example.com,another@example.com"));
pFld->Release();
pFlds->get_Item(_variant_t("urn:schemas:mailheader:sender"),&pFld);
pFld->put_Value(_variant_t("example@example.com"));
pFld->Release();
pFlds->get_Item(_variant_t("urn:schemas:mailheader:subject"),&pFld);
pFld->put_Value(_variant_t("Check this stuff out"));
pFld->Release();
pFlds->Update();
pFlds->Release();
IBodyPart* pBP = NULL;
pMsg->AddAttachment(L"c:\somefile.ext",&pBP);
pBP->Release();
pBP = NULL;
pMsg->AddAttachment(L"c:\anotherfile.ext2",&pBP);
pBP->Release();
pBP = NULL;
pMsg->CreateMHTMLBody(L"http://server.example.com/page.html");
pMsg->Send();
pMsg->Release();
CoUninitialize();
return 0;
}
See Also
Concepts
IMessage Interface
IBodyPart Interface
IDataSource Interface