[ leka @ 15.02.2002. 16:28 ] @
Ovi moji u firmi izgleda obozavaju da me muce sa glupostima... Elem, napisem ja lepo deo projekta koji fantasticno "saradjuje" sa SMTP serverom, napisem modul koji salje neke fajlove (fajl po fajl treba da se salje, sa odredjenim naslovom, na odredjene adrese, sa odredjenim tekstom u telu poruke) - sve funkcionise lepo i bajno...

Instaliraju oni aplikaciju - slanje mejla ne radi! Zovu nas i kazu "eee ne radi nam slanje putem mejla..." i ja sedim zbunjen... Tek posle DVA DANA neko se seti da ih pita jel imaju SMTP server! - Nemaju, imaju fakin Exchange server!

Huh, meni vec mrak pao na oci ... :( Ne znam sta da radim, da li da koristim MAPI sa kojim koliko sam video mogu da se izborim i napravim isti modul koji sam napisao za SMTP, ali pomocu MAPI-ja? Ili da ubacim Outlook objekat u moju aplikaciju (sto znam da moze, ali ne znam kako se radi) i da preko njega saljem mejlove?

MOLIM Vas ako imate iskustva sa ovim da mi date savet/predlog/kod/ideju !

Naravno, u obzir dolazi C/C++, Delphi i VisualBASIC kod! Odatle cu lako da saznam sta mi je ciniti u mom Borland C++ Builder projektu.
[ Dragi Tata @ 15.02.2002. 16:34 ] @
Leko, care, koristi source:

http://www.codeproject.com/internet/#MAPI

Jeste da ovi manijaci koriste MFC, ali toga lako možeš da se oslobodiš.
[ leka @ 15.02.2002. 20:04 ] @
NT, koristio bih ja source kad bih ga imao... :( Najgore od svega je sto cak nemam ni Exchange server (da bih testirao software)!
[ Dragi Tata @ 15.02.2002. 20:26 ] @
Citat:
leka:
NT, koristio bih ja source kad bih ga imao... :( Najgore od svega je sto cak nemam ni Exchange server (da bih testirao software)!


Pa šta fali recimo ovome:

http://www.codeproject.com/internet/cmapi.asp

Samo ga malo preradi da ne koristi MFC.

Što je najlepše, možeš da ga testiraš i sa SMTP-om
[ leka @ 16.02.2002. 01:04 ] @
NT, izvini, nisam uopste komentarisao to sa CodeProject-a ... :) To ce sigurno da pomogne. Ima samo jedan problem - da li MAPI "zna" da umesto SMTP servera treba da koristi Exchange?
[ alex @ 16.02.2002. 22:09 ] @
Citat:
leka:
Huh, meni vec mrak pao na oci ... :( Ne znam sta da radim, da li da koristim MAPI sa kojim koliko sam video mogu da se izborim i napravim isti modul koji sam napisao za SMTP, ali pomocu MAPI-ja? Ili da ubacim Outlook objekat u moju aplikaciju (sto znam da moze, ali ne znam kako se radi) i da preko njega saljem mejlove?


Najjednostavnije ti je da koristis MAPI - u aplikaciji na kojoj ja radim sam to najjednostavnije resio pozivanjem MAPI SendMail() funkcije, koja lepo otvori New Message prozor od registrovanog default mail klijenta (Outlook, recimo), i od tog momenta na dalje, mail klijent resava slanje poruke.

Mada, imas i COM - pozovi lepo Outlook COM objekat i radi sta oces s njim.

Poz, alex.
[ alex @ 18.02.2002. 13:14 ] @
A evo i koda uz moju prethodnu poruku. Radi se o funkciji OnMail, koja se moze vezati za neku akciju:

Code:

void CPrintDlg::OnMail() 
{
    // TODO: Add your command handler code here
    const HINSTANCE hMAPILib = ::LoadLibrary("MAPI32.DLL");

    if (hMAPILib)
    {
        MAPIFUNC lpMAPISendMail = (MAPIFUNC) GetProcAddress(hMAPILib, "MAPISendMail");

        if (lpMAPISendMail != NULL)
        {
            static MapiMessage Msg;
            LPDISPATCH lpDispDoc = m_wndBrowser.GetDocument();
            IHTMLDocument2* pDoc;
            CString filename = "c:\\" + m_Which + ".htm";
            if(SUCCEEDED(lpDispDoc->QueryInterface(IID_IHTMLDocument2, (LPVOID*) &pDoc))) {
                IPersistFile* pDocFile = NULL;
                if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile, (LPVOID*) &pDocFile))) {
                    LPCOLESTR file = L"c:\\file.htm";
                    //LPTSTR file = filename
                    pDocFile->Save(file,TRUE);
                    pDocFile->Release();
                }
            }
            memset(&Msg, 0, sizeof(Msg));
            CString strSubject;
            strSubject.Format("PropertyID - %s", m_strPropID);
            Msg.lpszSubject  = strSubject.GetBuffer(1);
            Msg.lpszNoteText = "Edit the message.";
            
            MapiFileDesc attachment = {0,0,(ULONG)-1,"c:\\file.htm", NULL, NULL};
            Msg.lpFiles = &attachment;
            Msg.nFileCount = 1;
            lpMAPISendMail(NULL, NULL, &Msg, (FLAGS) (MAPI_LOGON_UI | MAPI_DIALOG), 0);
            lpDispDoc->Release();
        }
    }
    this->BringWindowToTop();
}


Inace, da se ne zbuni neko, ova funkcija takodje odradjuje i attachment, koji vadi iz IHTMLDocument klase, te ako vam to ne treba, slobodno obrisite taj deo koda.

Poz, alex.
[ leka @ 18.02.2002. 14:17 ] @
Alex, legendo, meni je MAPI zapravo prvo pao na pamet, ali ja sam hteo da "uvezem" TOutlookApplicaion (takodje COM) u moju aplikaciju i da se igram sa time... Nazlost to je mnogo manje dokumentovano nego MAPI... VEC imam MAPI kod, prilepicu ga ovde da bi i drugi mogli da ga koriste (BorlandC++ Builder specific stvar je u pitanju :)

Svejedno dao sam ti "peticu" ;)
[ alex @ 18.02.2002. 14:34 ] @
Citat:
leka:
...ali ja sam hteo da "uvezem" TOutlookApplicaion (takodje COM) u moju aplikaciju i da se igram sa time... Nazlost to je mnogo manje dokumentovano nego MAPI...


Generalno, COM je strasno slabo dokumentovan. Znam da ce sad neki da skoce da opovrgnu ovu moju tvrdnju, ali je stvarno tako.

Ja, recimo, za COM i istrazivanje istog koristim Python i win32com biblioteku koja ide uz istu - narocito makepy.py program koji kreira Python objekat (sa svim metodama) od COM objekta koji izaberete iz spiska svih postojecih COM objekata na sistemu. Fenomenalna stvar!

Poznavajuci Python, VEOMA je lako portovati taj kod u C++ i koristiti COM na isti nacin.

Recimo, MS Word COM objekat ima 900Kb deklaracija metoda u Python-u. Od toga, ni trecina nije dokumentovana.

Poz, alex.
[ leka @ 05.03.2002. 20:35 ] @
Alex, probaj da u taj svoj MAPI kod ubacis da se recimo mail salje na "[email protected]" . Pozeljno za primer bi bilo da recimo taj mejl nemas medju OutLook kontaktima... Nema sanse da se natera da radi... ResolveName ne radi, nista ne radi... Poludeh!
[ Ivan Tanasic @ 05.03.2002. 21:58 ] @
E sada bih ja hteo da uskocim u raspravu i da pitam da li se MAPI moze iskoristiti za nesto drugo osim za mail (ime mu nije EMAPI :PPPP)

Naime interesuje me da li se moze iskoristit za slanje poruka izmedju dva programa (ali poruka, ne mailova), ili je za takvo komuniciranje bolje da opletem po klasicnim socketima??? (tj ne bas klasicnim, u ovom slucaju winsock :P)
[ Gojko Vujovic @ 05.03.2002. 23:38 ] @
Leko aj' lakše sa tim ocenjivanjem i deljenjem petica?
[ leka @ 06.03.2002. 02:48 ] @
Kome god sam dao "peticu" zaslužio ju je po mom mišljenju... A ono šta ja mislim o ocenjivanju koje si ovde napravio... To ću da kažem na drugom mestu (za par minuta)...