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

Пример отсылки письма используя 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;
Author: Vit
Source: Vingrad.ru http://forum.vingrad.ru
ID: 03402
----
Пример использует 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;
Author: Eddie Shipman
ID: 03403
Category:Связь
Category:Электронная почта