Конференция "Corba" » Как прочитать из Delphi действия польз в Outlook [WinXP]
 
  • JuliaMat (17.05.11 10:15) [0]
    Доброе время суток всем! Ситуация: в программе по кнопке "Отправить сообщение" появляется на экране окно c сообщением  Outlook c заполенным текстом сообщения, но получателя пользователь указывает сам, после чего он должен отправить сообщение, но, строго говоря может этого и не делать, просто закрыв окно Outlook. Как мне из Delphi понять, отправил-таки пользователь сообщение или нет? Это нужно чтоб в БД проставлять признак - типа "по данному документу уведомление отправлено
    Отправка реализ при помощи конструктора TOutlookObject.Create(Tema,Text:string);


    unit AOutlook;

    interface

    uses
    Windows, Classes, ActiveX, Outlook2000;

    type
    TOutlookObject = class
    private
    FOutlookApp:OutlookApplication;
    public
    constructor Create(Tema,Text:string);
    destructor Destroy; override;
    property Application:OutlookApplication read FOutlookApp;
    end;

    implementation

    uses
    ComObj, Variants;

    { TOutlookObject implementation }

    constructor TOutlookObject.Create(Tema,Text:string);
    var
    Mail:_MailItem;
    begin
    FOutlookApp:=CoOutlookApplication.Create;
    Mail:=FOutlookApp.CreateItem(olMailItem) as _MailItem;
    Mail.Body:=Text;
    Mail.Subject:=Tema;
    end;

    destructor TOutlookObject.Destroy;
    begin
    try
    except
    end;
    inherited Destroy;
    end;

    end.


  • Palladin © (17.05.11 14:34) [1]
    я конечно с аутлуком не работал, но предполагаю, что у созданного маилитем существует идентификатор и статус, и что вот так вот обращатся "создали и выкинули" с ссылкой не стОит...
  • JuliaMat (17.05.11 15:21) [2]
    спасибо за совет но не понятно что значит
    > вот так вот обращатся "создали и выкинули" с ссылкой не
    > стОит
  • Медвежонок Пятачок © (17.05.11 15:32) [3]
    это значит, что даже если ты узнаешь, что письмо ушло, то остается вопрос кому оно ушло. И можно ли при этом считать что все ок, если письмо ушло не тому кому оно должно было уйти.
  • Медвежонок Пятачок © (17.05.11 15:34) [4]
    Причем еще и текст письма (а не только получатель) мог быть заменен на текст с башорга. Руками пользователя.
  • Медвежонок Пятачок © (17.05.11 15:38) [5]
    Это нужно чтоб в БД проставлять признак - типа "по данному документу уведомление отправлено

    Юзеру показали окно аутлука с текстом письма "бабушка приехала", которое должно было уйти Пете.
    В результате действий юзера письмо уходит не Пете, а Васе, и с текстом "Вася, слухай, а пойдем после работы бухать в чебуречную?"

    А программа увидев, что письмо ушло, ставит в БД признак, что по данному документу уведомление о приехавшей бабушке успешно отправлено.
  • Palladin © (17.05.11 15:41) [6]

    constructor TOutlookObject.Create(Tema,Text:string);
    var
    Mail:_MailItem; // ссылка на маилитем, существует только во время выполнения конструктора
    begin
    FOutlookApp:=CoOutlookApplication.Create;
    Mail:=FOutlookApp.CreateItem(olMailItem) as _MailItem;
    Mail.Body:=Text;
    Mail.Subject:=Tema;
    end;

  • int64 © (17.05.11 16:37) [7]
    Подключиться к событиям можно через IConnectionPointContainer.

    http://www.techvanguards.com/products/eventsinkimp/
    В первом архиве есть компоненты и демо для Outlook2000.
  • DVM © (17.05.11 18:23) [8]

    > Delphi понять, отправил-таки пользователь сообщение или
    > нет?

    Используя Extended MAPI и его механизм уведомлений, можно узнать о любых манипуляциях с письмами в папках пользователя на сервере, так что и попадание письма в Отправленные можно проследить тоже. Но это довольно трудоемко.
  • JuliaMat (18.05.11 06:04) [9]
    спасибо всем кто откликнулся буду рыть дальше
 
Конференция "Corba" » Как прочитать из Delphi действия польз в Outlook [WinXP]
Есть новые Нет новых   [118456   +51][b:0][p:0.002]