Показать сообщение отдельно
Старый 16.06.2008, 11:03   #4  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Спасибо конечно за пример на VBA но мне бы разобраться как это сделать на аксапте.
Пробую вот так. Говорит что нет метода objCDOMsg.sender()
X++:
static void maks_getMail_FromOutlook_(Args _args)
{
    #SysOutlookCOMDEF
    SysOutlookApplication       outlook = new SysOutlookApplication();
    SysOutlookRecipients        recipients;
    SysOutlookRecipient         recipientsItem;
    SysOutlookFormDescription   formDescription;
    SysOutlook_Items            collection;
    SysOutlook_NameSpace        nameSpace;
    SysOutlookMapiFolder        inboxFolder;
    SysOutlookMailItem          mailItem;
    COM                         nextItem;
    COM                         objSession;
    COM                         objCDOMsg;
    COM                         sender;
    ;

    namespace  = outlook.getNameSpace('MAPI');
    objSession = outlook.CreateObject("MAPI.Session");
    objSession.logon("", "", false, false);

    inboxFolder = namespace.getDefaultFolder(#OlDefaultFolders_olFolderInbox);
    collection = inboxFolder.items();

    nextItem = collection.GetFirst();
    while (nextItem)
    {
        mailItem        = new SysOutlookMailItem(nextItem);
        recipients      = mailItem.Recipients();
        recipientsItem  = recipients.Item(COMVariant::createFromInt(1));

        objCDOMsg = objSession.GetMessage(mailItem.EntryID());//, mailItem.Parent().StoreID());
        sender = objCDOMsg.sender();
        info(sender.address());

        info("??: "   + mailItem.SenderName());
        info("????: " + recipientsItem.Address());

        info("????: " + mailItem.Subject());
//        info(mailItem.HTMLBody());
        info("====================");
        nextItem = collection.GetNext();
    }
}