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


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


Пример отсылки письма используя 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
http://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 didn''
t 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





DELPHI FAQ




EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100