![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Приветствую всех и каждого!
Пишу простейшую программу, которая отсылает через MS Outlook 2010 письмо. Делаю это следующим образом: Код:
uses ComObj; var OutlookApp, SpamNameSpace, MyLetter: OleVariant; procedure TForm1.SendMail(Subject, Body, RecvAddress: string; Attachs: array of string); begin try OutlookApp := GetActiveOleObject('Outlook.Application'); except OutlookApp := CreateOleObject('Outlook.Application'); end; try SpamNameSpace := OutlookApp.GetNameSpace('MAPI'); MyLetter := OutlookApp.CreateItem(0); MyLetter.To := RecvAddress; MyLetter.Body := Body; MyLetter.Subject := Subject; MyLetter.Attachments.Add(paramstr(0)); //MyLetter.DeleteAfterSubmit := True; MyLetter.Send; finally OutlookApp.Quit; end; end; На строке Код:
OutlookApp := GetActiveOleObject('Outlook.Application'); Код:
Exception class EOleSysError with message 'Недопустимая строка с указанием класса, ProgID: "Outlook.Application"' |
#2
|
||||
|
||||
![]() удалить try..except и оставить CreateOleObject('Outlook.Application');
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Цитата:
Все равно ругается той же ошибкой на той же строке. Такое ощущение, что в новом 2010 оутлуке как-то по другому процесс называется |
#4
|
||||
|
||||
![]() в реестре глянь
Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() Цитата:
Если не затруднит, подскажи, где конкретно посмотреть? Ветку реестра назвать можешь? |
#6
|
||||
|
||||
![]() ну должна быть HKEY_CLASSES_ROOT\Outlook.Application
Пишу программы за еду. __________________ |
#7
|
|||
|
|||
![]() Цитата:
Судя по скрину, все вроде норм |
#8
|
||||
|
||||
![]() наоборот ничего хорошего
![]() попробуй: Код:
try OutlookApp := GetActiveOleObject('Outlook.Application.14'); except OutlookApp := CreateOleObject('Outlook.Application.14'); end; Пишу программы за еду. __________________ |
#9
|
|||
|
|||
![]() Изменил код на:
Код:
try OutlookApp := GetActiveOleObject('Outlook.Application.14'); except end; if OutlookApp = Unassigned then try OutlookApp := CreateOleObject('Outlook.Application.14'); except Exit end; try SpamNameSpace := OutlookApp.GetNameSpace('MAPI'); MyLetter := OutlookApp.CreateItem(0); MyLetter.To := RecvAddress; MyLetter.Body := Body; MyLetter.Subject := Subject; MyLetter.Attachments.Add(paramstr(0)); //MyLetter.DeleteAfterSubmit := True; MyLetter.Send; finally OutlookApp.Quit; end; Получил следующее: Код:
Exception class EVariantInvalidOpError with message 'Invalid variant operation' |