| Platform SDK: CDO for Windows 2000 |
The following task example demonstrates how to create a common MIME hierarchy for a message that contains two alternate representations of the message text: text/plain and text/html. The steps are as follows:
' Reference to Microsoft ActiveX Data Objects 2.5 Library
' Reference to Microsoft CDO for Windows 2000 Library
Dim iMsg As New CDO.Message
Dim iBp As CDO.IBodyPart
Dim iBp1 As CDO.IBodyPart
Dim Flds As ADODB.Fields
Dim Stm As ADODB.Stream
' Get IBodyPart on the Message object
Set iBp = iMsg
' TEXT BODYPART
' Add the body part for the text/plain part of message
Set iBp1 = iBp.AddBodyPart
' set the fields here
Set Flds = iBp1.Fields
Flds("urn:schemas:mailheader:content-type") = "text/plain; charset=""iso-8859-1"""
Flds.Update
' get the stream and add the message
Set Stm = iBp1.GetDecodedContentStream
Stm.WriteText "this is the message in text format"
Stm.Flush
' HTML BODYPART
' Do the HTML part here
Set iBp1 = iBp.AddBodyPart
' set the content-type field here
Set Flds = iBp1.Fields
Flds("urn:schemas:mailheader:content-type") = "text/html"
Flds.Update
' get the stream and add message HTML text to it
Set Stm = iBp1.GetDecodedContentStream
Stm.WriteText "<HTML><H1>this is some content for the body part object</H1></HTML>"
Stm.Flush
' Now set the Message object's Content-Type header
' to multipart/alternative
Set Flds = iBp.Fields
Flds("urn:schemas:mailheader:content-type") = "multipart/alternative"
Flds.Update
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace
#import <cdosys.dll> no_namespace
// ...
IMessagePtr iMsg(__uuidof(Message));
IBodyPartPtr iBp;
IBodyPartPtr iBp1;
FieldsPtr Flds;
_StreamPtr Stm;
// Get IBodyPart on the Message object
iBp = iMsg;
// TEXT BODYPART
// Add the body part for the text/plain part of message
iBp1 = iBp->AddBodyPart(-1);
' set the fields here
Flds = iBp1->Fields();
Flds->Item["urn:schemas:mailheader:content-type"]->Value
= _variant_t("text/plain; charset=""iso-8859-1""");
Flds->Update();
// get the stream and add the message
Stm = iBp1->GetDecodedContentStream();
Stm->WriteText("this is the message in text format",adWriteLine);
Stm->Flush();
// HTML BODYPART
// Do the HTML part here
iBp1 = iBp->AddBodyPart(-1);
// set the content-type field here
Flds = iBp1->Fields;
Flds->Item["urn:schemas:mailheader:content-type"]->Value
= _variant_t("text/html");
Flds->Update();
// get the stream and add message HTML text to it
Stm = iBp1->GetDecodedContentStream();
Stm->WriteText("<HTML><H1>this is some content for the body part object</H1></HTML>",adWriteLine);
Stm->Flush();
// Now set the Message object's Content-Type header
// to multipart/alternative
Flds = iBp->Fields;
Flds->Item["urn:schemas:mailheader:content-type"]->Value
= _variant_t("multipart/alternative");
Flds->Update();
Const g_Debug = True
Dim iMsg
Dim iBp
Dim iBp1
Dim Flds
Dim Stm
Set iMsg = CreateObject("CDO.Message")
' Get IBodyPart on the Message object
Set iBp = iMsg.BodyPart
' TEXT BODYPART
' Add the body part for the text/plain part of message
Set iBp1 = iBp.AddBodyPart
' set the fields here
Set Flds = iBp1.Fields
Flds("urn:schemas:mailheader:content-type") = "text/plain; charset=""iso-8859-1"""
Flds.Update
' get the stream and add the message
Set Stm = iBp1.GetDecodedContentStream
Stm.WriteText "this is the message in text format"
Stm.Flush
' HTML BODYPART
' Do the HTML part here
Set iBp1 = iBp.AddBodyPart
' set the content-type field here
Set Flds = iBp1.Fields
Flds("urn:schemas:mailheader:content-type") = "text/html"
Flds.Update
' get the stream and add message HTML text to it
Set Stm = iBp1.GetDecodedContentStream
Stm.WriteText "<HTML><H1>this is some content for the body part object</H1></HTML>"
Stm.Flush
' Now set the Message object's Content-Type header
' to multipart/alternative
Set Flds = iBp.Fields
Flds("urn:schemas:mailheader:content-type") = "multipart/alternative"
Flds.Update
If g_Debug Then
MsgBox iMsg.GetStream.ReadText
End If