R
Rudy Hentzen
Hi,
I know this is a VB Group, however, i am at a brick wall now. Essentially i
am trying to send an email with an Embedded image via Outlook.
I have been told that this cannot be done via the Outlook Object Model and
that i should use CDO or Extended MAPI. I got some VB Code from
http://www.outlookcode.com/d/code/htmlimg.htm and tried to translate it to
Delphi code (see below). I also have an EE thread
(http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_23938025.html.) also and will update either accordingly when i have a solution.
So far i have created a type library to the CDO.dll and have managed to get
the image attached but cannot get it embedded.
Test Code
procedure TForm1.Button1Click(Sender: TObject);
var
objApp, l_Msg, colAttach, l_Attach, oSession, oMsg, colFields, oField,
oAttachs, oAttach : OLEVariant;
strEntryID : String;
begin
objApp := CreateOLEObject('Outlook.Application');
l_Msg := objApp.CreateItem(olMailItem);
colAttach := l_Msg.Attachments;
l_attach := colAttach.Add('C:\logo.jpg', olByValue, 1, 'logo.jpg');
l_Msg.Close(olSave);
strEntryID := l_Msg.EntryID;
l_Msg := NULL;
colAttach := NULL;
l_attach := NULL;
oSession := CreateOleObject('MAPI.Session');
oSession.Logon('', '', False, False);
oMsg := oSession.GetMessage(strEntryID);
oAttachs := oMsg.Attachments;
oAttach := oAttachs.Item[1];
colFields := oAttach.Fields;
oField := colFields.Add(CdoPR_ATTACH_MIME_TAG, 'image/jpeg');
oField := colFields.Add($3712001E, 'myident');
oMsg.Fields.Add('{0820060000000000C000000000000046}0x8514', 11, True);
oMsg.Update;
l_Msg := objApp.GetNamespace('MAPI').GetItemFromID(strEntryID);
l_Msg.HTMLBody := '<IMG align=baseline border=0 hspace=0 src=cid:myident>';
l_Msg.Close(olSave);
l_Msg.Display(False);
end;
Many thanks
Rudy
I know this is a VB Group, however, i am at a brick wall now. Essentially i
am trying to send an email with an Embedded image via Outlook.
I have been told that this cannot be done via the Outlook Object Model and
that i should use CDO or Extended MAPI. I got some VB Code from
http://www.outlookcode.com/d/code/htmlimg.htm and tried to translate it to
Delphi code (see below). I also have an EE thread
(http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_23938025.html.) also and will update either accordingly when i have a solution.
So far i have created a type library to the CDO.dll and have managed to get
the image attached but cannot get it embedded.
Test Code
procedure TForm1.Button1Click(Sender: TObject);
var
objApp, l_Msg, colAttach, l_Attach, oSession, oMsg, colFields, oField,
oAttachs, oAttach : OLEVariant;
strEntryID : String;
begin
objApp := CreateOLEObject('Outlook.Application');
l_Msg := objApp.CreateItem(olMailItem);
colAttach := l_Msg.Attachments;
l_attach := colAttach.Add('C:\logo.jpg', olByValue, 1, 'logo.jpg');
l_Msg.Close(olSave);
strEntryID := l_Msg.EntryID;
l_Msg := NULL;
colAttach := NULL;
l_attach := NULL;
oSession := CreateOleObject('MAPI.Session');
oSession.Logon('', '', False, False);
oMsg := oSession.GetMessage(strEntryID);
oAttachs := oMsg.Attachments;
oAttach := oAttachs.Item[1];
colFields := oAttach.Fields;
oField := colFields.Add(CdoPR_ATTACH_MIME_TAG, 'image/jpeg');
oField := colFields.Add($3712001E, 'myident');
oMsg.Fields.Add('{0820060000000000C000000000000046}0x8514', 11, True);
oMsg.Update;
l_Msg := objApp.GetNamespace('MAPI').GetItemFromID(strEntryID);
l_Msg.HTMLBody := '<IMG align=baseline border=0 hspace=0 src=cid:myident>';
l_Msg.Close(olSave);
l_Msg.Display(False);
end;
Many thanks
Rudy