Возникла задача генерировать новое письмо в Lotus Notes из собственного приложения. Желательно, без отправки письма - чтобы пользователь мог проверить содержимое перед нажатием "Отправить" . ( Т.е. необходимо проверить запущен ли Lotus, если нет запустить его и подождать ввода пароля пользователем, далее создать новое письмо, заполнить поля кому, тема, тело письма. ).
При выполнении следующего кода ничего не происходит. В чем ошибка? Заранее благодарен!
| Код | procedure TForm1.Button1Click(Sender: TObject); var ServerIsRunning : Boolean; Unknown : IUnknown; Result : HResult; AppProgID : String; App : Variant; LotusDataBase: OLEVariant; notesDocument: OLEVariant; NotesRichTextItem: OLEVariant;
begin AppProgID := 'Notes.Notessession'; ServerIsRunning := False; Result := GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown); if (Result = MK_E_UNAVAILABLE) then begin // Создать один экземпляр сервера App := CreateOleObject(AppProgID); end else begin // Соединиться с уже запущенной копией сервера App := GetActiveOleObject(AppProgID); ServerIsRunning := True; end;
//Используем дефолтный аккаунт Lotus LotusDataBase := App.getdatabase('', '');
if not LotusDataBase.IsOpen then LotusDataBase.OpenMail();
notesDocument:=LotusDataBase.CreateDocument; notesDocument.Form := 'Memo'; notesDocument.Subject := 'Hello';
NotesRichTextItem := notesDocument.CreateRichTextItem('Body'); NotesRichTextItem.AppendText('Here comes the body of the mail'); NotesDocument.SendTo := '[email protected]';
NotesDocument.Save(TRUE, FALSE ,TRUE);
notesDocument.Send(FALSE);
if not ServerIsRunning then App.Quit; App:= Unassigned;
end;
|
|