Page 1 of 2

Come beccare i messaggi da un file DBX di Outlook Express

Posted: Wed Apr 18, 2007 5:52 pm
by Romeo
Ciao a tutti,
mi occorrerebbe un'idea (se esiste) x prelevare singolarmente e in automatico i messaggi da un file DBX di Outlook Express x poterli processare poi.

C'e' qualcosa che posso usare/utilizzare ?
Grazie
Ho prima postato questa richiesta sul forum internazionale poi mi sono accorto che EMG aveva gia' risposto ad un quesito similare (almeno mi pareva)

Re: Come beccare i messaggi da un file DBX di Outlook Expres

Posted: Wed Apr 18, 2007 9:19 pm
by Enrico Maria Giordano
Sì, puoi usare, appunto, OLE:

Code: Select all

#define olFolderInbox 6


FUNCTION MAIN()

    LOCAL oOutlook := CREATEOBJECT( "Outlook.Application" )
    LOCAL oNameSpace := oOutlook:GetNameSpace("MAPI")
    LOCAL oInbox := oNameSpace:GetDefaultFolder( olFolderInbox )

    LOCAL i

    FOR i = 1 TO oInbox:Items:Count
        ? oInbox:Items[ i ]:Body
        ?
    NEXT

    oOutlook:Quit()

    INKEY( 0 )

    RETURN NIL
EMG

Posted: Thu Apr 19, 2007 8:57 am
by Romeo
Ho provato il seg. esempio:

*************************
#include "FiveWin.ch"
#define olFolderInbox 6


FUNCTION MAIN()

LOCAL oOutlook := CREATEOBJECT( "Outlook.Application" )
LOCAL oNameSpace := oOutlook:GetNameSpace("MAPI")
LOCAL oInbox := oNameSpace:GetDefaultFolder( olFolderInbox )

LOCAL i

FOR i = 1 TO oInbox:Items:Count
? oInbox:Items[ i ]:Body
?
NEXT

oOutlook:Quit()

INKEY( 0 )

return nil

******************
con FWH24 e mi fa partire intanto il Microsoft Outlook (ma io i messaggi ce l'ho in OutLook Express)

ma subito mi da il seg errore:

Class: NIL has no exported method: BODY

Posso fare qualcosa ? Ma sopratutto posso leggere i Body (e magari anche gli eventuali codici di errore delle email, es: email non esistente,spazio esaurito,ecc) e io poi uso Outlook Express.

Grazie

Posted: Thu Apr 19, 2007 9:02 am
by Enrico Maria Giordano
Mi era sfuggito il fatto che tu parlavi di Outlook Express. OLE può essere utilizzato solo con Outlook di Office. Non ho nessuna idea su come fare quello che chiedi con OE.

EMG

Posted: Thu Apr 19, 2007 9:08 am
by Romeo
Ok, vorra' dire che passo a Microsoft Outlook.

Si riesce in questo caso a fare funzionare l'esempio sopre che mi hai mandato oppure ho bisogno di qualche libreria o aggiornamento delle mie FWH24 ?
Grazie

Posted: Thu Apr 19, 2007 9:50 am
by Romeo
Forse partendo da questo esempio trovat nelne news si riesce a risolvere il mio problema:

Code:
oOL := TOleAuto():New( "Outlook.Application" )
lOutlookOK := .T.
IF ! lOutlookOK
RETURN ( 0 )
ENDIF

oNameSpace = oOL:Get( "GetNameSpace", "MAPI" )
oContacts = oNameSpace:Get( "GetDefaultFolder", "6" ) // 6 = Inbox-Folder

FOR nContador = 1 TO oContacts:ITEMS:Count()
oNewContact = oContacts:ITEMS( nContador )
cSenderName := oNewContact:get( "SenderName" )
cSubject := oNewContact:get( "Subject" )

cBody := oNewContact:get( "Body" ) && questo l'ho inserito io grazie al tuo sempio e funziona

* quali sono tutte le altre informazioni che posso beccare ?
* ho provato a cercare nel web e nel mio pc il file: VBAOUTL?.CHM che mi poteva aiutare ma.... non ho trovato niente, per la verita' mi occorrerebbe qualche codice di risposta della email del tipo Non esestente,spazio email insuff, ecc...

NEXT nContador
RETURN NIL

Ci siamo quasi, un ultimo sforzo
Grazie

Posted: Thu Apr 19, 2007 10:32 am
by Enrico Maria Giordano
Romeo wrote:Ok, vorra' dire che passo a Microsoft Outlook.

Si riesce in questo caso a fare funzionare l'esempio sopre che mi hai mandato oppure ho bisogno di qualche libreria o aggiornamento delle mie FWH24 ?
Grazie
Sì, dovrebbe funzionare regolarmente.

EMG

Posted: Thu Apr 19, 2007 10:34 am
by Enrico Maria Giordano
Non capisco cosa ti serve. Se il mio esempio ti funziona credo che tu non abbia bisogno di altro.

EMG

Posted: Thu Apr 19, 2007 10:49 am
by Romeo
Ok l'esempio va bene e mi chiedevo se oltre al Body, posso avere anche altre variabili, ese: email di chi mi risponde, il codice di errore (se esiste).

certo potrei farlo analizzando riga x riga il body...ma se esistono le funzioni gia fatte e' meglio.

Il progrmma che devo relizzare dovra' mandare delle email (tantissime) e poi analizzare le risposte in maniera piu' automatico possibile.
Grazie

Posted: Thu Apr 19, 2007 11:40 am
by Enrico Maria Giordano
Cerca l'oggetto MailItem sulla documentazione e troverai tutte le sue proprietà disponibili.

EMG

Posted: Fri Apr 20, 2007 9:33 am
by Romeo
Ho cercato nelle cartelle e sottocartelle di fwh24 e nelle classi ma non ho trovato alcun riferimento a menuitem.

Forse ho una versione datata? (FWH24)
Grazie

Posted: Fri Apr 20, 2007 9:36 am
by Romeo
Ops, chiaramento cercato Mailitem

Mi viene un dubbio che io debba cercare nella documentazione del file VBAOUTL*.CHM di microsoft che io non ho !!

Romeo

Posted: Fri Apr 20, 2007 9:36 am
by Enrico Maria Giordano
FWH non c'entra niente. Devi cercare nella documentazione di Outlook (VBAOUTL*.CHM).

EMG

Posted: Fri Apr 20, 2007 9:40 am
by Enrico Maria Giordano
Romeo wrote:Ops, chiaramento cercato Mailitem

Mi viene un dubbio che io debba cercare nella documentazione del file VBAOUTL*.CHM di microsoft che io non ho !!

Romeo
Infatti. Ma se hai installato Office ce l'hai certamente, se non sull'hard disk sicuramente sul CD.

EMG

Posted: Fri Apr 20, 2007 11:11 am
by Romeo
Ho il cd rom di Office XP 2002 e non ho trovato il fiel VBAOUTL9.CHM ma l'ho trovato su office 97.
Ho provato a guardare Mailitem ma dopo un po di tentativi ho rinunciato a cercare le altre funzioni poiche' non le trovo, sicuramente ci sono ma non risco a trovarle!
Grazie comunque
Romeo