Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Использование COM-объекта Outlook

01.01.2007

Пример отсылки письма используя COM объект Outlook

uses Outlook_TLB;
 

 
 
var outlook : _application;
 
Procedure Init;
begin
  outlook
:= Coapplication_.Create;
end;
 
procedure
SendEmail;
begin
 
with Outlook.CreateItem(olMailItem) as mailitem do
   
begin
      To_
:= 'email@email.com';
      cc
:='email2@email.com';
     
Subject := 'This is subject line';
     
Attachments.Add('FileName',1,1,'This is attachment');
     
Body :='This is email body';
     
Send;
   
end;
end;

Автор: Vit

Взято с Vingrad.ru https://forum.vingrad.ru


Автор: Eddie Shipman

Пример использует VB Script для Outlook, который позволяет произвести такую операцию. Создаётся OLE-объект - 'Outlook.Application' и в него передаётся скрипт.

Совместимость: все версии Delphi

Измените recipientaddress@recipienthost.com на Ваш собственный e-mail

адресс. У Вас должен быть проинсталирован Outlook,

{Я не уверен, что это будет работать в Outlook Express.}

Примечание Vit: Это точно не будет работать в  Outlook Express

uses ComObj; {Delphi 5} 
 
procedure TForm1
.Button1Click(Sender: TObject);
Const
 
// константы OlItemType
  olMailItem
= 0;
  olAppointmentItem
= 1;
  olContactItem
= 2;
  olTaskItem  
= 3;
  olJournalItem
= 4;
  olNoteItem
= 5;
  olPostItem
= 6;
 
// константы OlAttachmentType
  olByValue
= 1;
  olByReference
= 4;
  olEmbeddedItem
= 5;
  olOLE
= 6;
 
var
  myOlApp
, myItem, myRecipient, myAttachments: OleVariant;
begin
 
// файл VBScript для создания почтового сообщения и прикрепления к нему файла
  myOlApp
:= CreateOLEObject('Outlook.Application');
  myItem
:= myOlApp.CreateItem(olMailItem);
  myItem
.Subject := 'This is the Subject';
  myRecipient
:= myItem.Recipients.Add('recipientaddress@recipienthost.com');
  myItem
.Body := #13;
  myItem
.Body := myItem.Body + #13;
  myItem
.Body := myItem.Body + 'Hello,' + #13;
  myItem
.Body := myItem.Body + 'This code created this message and '+
                               
' sent it and I didnt even have' + #13;
  myItem
.Body := myItem.Body + 'to click the send button!!!' + #13;
  myItem
.Body := myItem.Body + #13;
  myItem
.Body := myItem.Body + 'If you have any more problems, let me know' +
#13;
  myItem
.Body := myItem.Body + 'rename to blah.vbs and run like this:' + #13;
  myItem
.Body := myItem.Body + 'wscript c:\blah.vbs' + #13;
  myItem
.Body := myItem.Body + #13;
  myItem
.Body := myItem.Body + 'Eddie' + #13;
  myItem
.Body := myItem.Body + #13;
  myItem
.Body := myItem.Body + #13;
  myItem
.Body := myItem.Body + 'const'+ #13;
  myItem
.Body := myItem.Body + '  // константы OlItemType'+ #13;
  myItem
.Body := myItem.Body + '  olMailItem = 0;'+ #13;
  myItem
.Body := myItem.Body + '  olAppointmentItem = 1;'+ #13;
  myItem
.Body := myItem.Body + '  olContactItem = 2;'+ #13;
  myItem
.Body := myItem.Body + '  olTaskItem  = 3;'+ #13;
  myItem
.Body := myItem.Body + '  olJournalItem = 4;'+ #13;
  myItem
.Body := myItem.Body + '  olNoteItem = 5;'+ #13;
  myItem
.Body := myItem.Body + '  olPostItem = 6;'+ #13;
  myItem
.Body := myItem.Body + '  // OlAttachmentType constants'+ #13;
  myItem
.Body := myItem.Body + '  olByValue = 1;'+ #13;
  myItem
.Body := myItem.Body + '  olByReference = 4;'+ #13;
  myItem
.Body := myItem.Body + '  olEmbeddedItem = 5;'+ #13;
  myItem
.Body := myItem.Body + '  olOLE = 6;'+ #13;
  myItem
.Body := myItem.Body + #13;
  myItem
.Body := myItem.Body + 'var'+ #13;
  myItem
.Body := myItem.Body + '  myOlApp, myItem, myRecipient, myAttachments:
OleVariant;'
+ #13;
  myItem
.Body := myItem.Body + 'begin'+ #13;
  myItem
.Body := myItem.Body + '  myOlApp := CreateObject(''Outlook.Application'')' + #13;
  myItem
.Body := myItem.Body + '  myItem := myOlApp.CreateItem(olMailItem)' + #13;
  myItem
.Body := myItem.Body + '  myItem.Subject := ''This is the Subject''' + #13;
  myItem
.Body := myItem.Body + '  myItem.Body := ''This is the body''' + #13;  
  myItem
.Body := myItem.Body + '  myRecipient := myItem.Recipients.Add(''recipientaddress@recipienthost.com'')' + #13;
  myItem
.Body := myItem.Body + '  myAttachments := myItem.Attachments' + #13;
  myItem
.Body := myItem.Body + '  // Теперь прикрепим файлы...' + #13;
  myItem
.Body := myItem.Body + '  myAttachments.Add ''C:\blah.txt'', olByValue,
1, ''Blah.txt Attachment'''
+ #13;
  myItem
.Body := myItem.Body + '  myItem.Send' + #13;
  myItem
.Body := myItem.Body + '  myOlApp := VarNull;' + #13;
  myItem
.Body := myItem.Body + '  myItem := VarNull;' + #13;
  myItem
.Body := myItem.Body + '  myRecipient := VarNull;' + #13;
  myItem
.Body := myItem.Body + '  myAttachments := VarNull;' + #13;
  myItem
.Body := myItem.Body + 'end;' + #13;
 
// Теперь прикрепим файлы...
  myAttachments
:= myItem.Attachments;
  myAttachments
.Add('C:\blah.txt', olByValue, 1, 'Blah.txt Attachment');
  myItem
.Send
  myOlApp
:= VarNull;
  myItem
:= VarNull;
  myRecipient
:= VarNull;
  myAttachments
:= VarNull;
End;