OVH Cloud OVH Cloud

Dossiers d'Outlook Express

36 réponses
Avatar
Aski
Bonjour,

Il semblerait que les références, utilisées par le registre pour repérer les
dossiers créés dans Outlook Express, se trouvent dans le fichiers
Folderx.dbx.
Savez vous s'il existe des articles décrivant la structure de ce fichier ou
des API pour le lire ?
Une recherche sur MSDN, Google et CodeVB n'a rien donné, mais je n'ai
peut-être pas utilisé les bons mots-clefs.
Merci

Aski

10 réponses

1 2 3 4
Avatar
Mike Gagnon
Non, je ne crois pas que FoxPro peut ouvrir des fichier .dbx.
Il existe plusieurs programmes qui ouvre des fichiers .dbx
http://www.oemailrecovery.com/outlook-express-recovery.html
http://www.oemailrecovery.com/faq-repair-dbx-files.html

Et si l'utilisateur veut juste lire les courriels dans le fichier inbox.dbx,
voici du code gatieusete de www.news2news.com
Le code va creer un cursor qui va contenir tous les mails du inbox.



DO decl
#DEFINE SUCCESS_SUCCESS 0

PRIVATE hSession
hSession = getNewSession()

IF hSession = 0
? "Unable to log on."
ELSE
* resulting cursor
CREATE CURSOR csResult (;
origname C(50), origaddr C(50), subj C(200), msg M)

= ScanningMessages()

* it takes some time
= MAPILogoff (hSession, 0, 0, 0)

GO TOP
BROWSE NORMAL NOWAIT
ENDIF
* end of main

PROCEDURE ScanningMessages
#DEFINE MAPI_LONG_MSGID 16384
#DEFINE MAPI_UNREAD_ONLY 32

LOCAL lcBuffer, lnResult, lcMsgId, lnMsgCount
lcBuffer = Repli(Chr(0), 1024)

* retrieving message identifiers
lcMsgId = .Null.
lnMsgCount = 0

DO WHILE .T.
lnResult = MAPIFindNext (hSession, 0, .Null., lcMsgId,;
MAPI_LONG_MSGID, 0, @lcBuffer)

IF lnResult = SUCCESS_SUCCESS
lnMsgCount = lnMsgCount + 1
lcMsgId = SUBSTR(lcBuffer, 1,AT(Chr(0),lcBuffer)-1)
= ReadMessage(lcMsgId)
ELSE
EXIT
ENDIF
ENDDO
RETURN

PROCEDURE ReadMessage(lcMsgId)
#DEFINE MAPI_PEEK 128
#DEFINE MAPI_SUPPRESS_ATTACH 2048

LOCAL lnResult, lnMemPtr
lnMemPtr = 0

lnResult = MAPIReadMail (hSession, 0, lcMsgId,;
MAPI_PEEK+MAPI_SUPPRESS_ATTACH, 0,;
@lnMemPtr)

IF lnResult = SUCCESS_SUCCESS
= SaveMessage(lnMemPtr)
= MAPIFreeBuffer(lnMemPtr)
ENDIF
RETURN

PROCEDURE SaveMessage(lnMemPtr)
*| typedef struct {
*| ULONG ulReserved; 0:4
*| LPTSTR lpszSubject; 4:4
*| LPTSTR lpszNoteText; 8:4
*| LPTSTR lpszMessageType; 12:4
*| LPTSTR lpszDateReceived; 16:4
*| LPTSTR lpszConversationID; 20:4
*| FLAGS flFlags; 24:4
*| lpMapiRecipDesc lpOrigin; 28:4
*| ULONG nRecipCount; 32:4
*| lpMapiRecipDesc lpRecips; 36:4
*| ULONG nFileCount; 40:4
*| lpMapiFileDesc lpFiles; 44:4
*| } MapiMessage, FAR *lpMapiMessage; total = 48 bytes
#DEFINE MAPIMESSAGE_STRU_SIZE 48

LOCAL lcBuffer, lcSubject, lcNoteTxt

lcBuffer = Repli(Chr(0), MAPIMESSAGE_STRU_SIZE)
= Heap2Str(@lcBuffer, lnMemPtr, MAPIMESSAGE_STRU_SIZE)

lcSubject = GetStruParam(@lcBuffer, 5)
lcNoteTxt = GetStruParam(@lcBuffer, 9)

*| typedef struct {
*| ULONG ulReserved 0:4
*| ULONG ulRecipClass; 4:4
*| LPTSTR lpszName; 8:4
*| LPTSTR lpszAddress; 12:4
*| ULONG ulEIDSize; 16:4
*| LPVOID lpEntryID; 20:4
*| } MapiRecipDesc, FAR *lpMapiRecipDesc; total = 24 bytes
#DEFINE MAPIRECIPDESC_STRU_SIZE 24

LOCAL lnOrigPtr, lcOrigBuf, lcOrigName, lcOrigAddr
lnOrigPtr = buf2dword(SUBSTR(lcBuffer, 29,4))

lcOrigBuf = Repli(Chr(0), MAPIRECIPDESC_STRU_SIZE)
= Heap2Str(@lcOrigBuf, lnOrigPtr, MAPIRECIPDESC_STRU_SIZE)

lcOrigName = GetStruParam(@lcOrigBuf, 9)
lcOrigAddr = GetStruParam(@lcOrigBuf, 13)

INSERT INTO csResult VALUES (m.lcOrigName, m.lcOrigAddr,;
m.lcSubject, m.lcNoteTxt)
RETURN

FUNCTION GetStruParam (lcBuffer, lnOffs)
LOCAL lnPtr, lcResult
lnPtr = buf2dword(SUBSTR(lcBuffer, lnOffs,4))
RETURN Iif(lnPtr=0, "", mem2str(lnPtr))

FUNCTION getNewSession()
#DEFINE MAPI_LOGON_UI 1
#DEFINE MAPI_NEW_SESSION 2
#DEFINE MAPI_USE_DEFAULT 64
#DEFINE MAPI_FORCE_DOWNLOAD 4096 && 0x1000
#DEFINE MAPI_PASSWORD_UI 131072 && 0x20000

WAIT WINDOW "Creating a new MAPI session..." NOWAIT
LOCAL lnResult, lnSession, lcStoredPath
lcStoredPath = SYS(5) + SYS(2003)
lnSession = 0

* lnResult = MAPILogon (0, "Novell Default Settings", .Null.,;
MAPI_USE_DEFAULT+MAPI_NEW_SESSION, 0, @lnSession)

lnResult = MAPILogon (0, "", .Null.,;
MAPI_USE_DEFAULT+MAPI_NEW_SESSION, 0, @lnSession)

* sometimes you need to restore default path - Outlook Express
SET DEFAULT TO (lcStoredPath)
WAIT CLEAR
RETURN Iif(lnResult=SUCCESS_SUCCESS, lnSession, 0)

FUNCTION mem2str(lnMemBlock)
#DEFINE BUFFER_SIZE 16
#DEFINE EMPTY_BUFFER Repli(Chr(0), BUFFER_SIZE)
LOCAL lnPtr, lcResult, lcBuffer, lnPos
lnPtr = lnMemBlock
lcResult = ""

DO WHILE .T.
lcBuffer = EMPTY_BUFFER
= Heap2Str (@lcBuffer, lnPtr, BUFFER_SIZE)
lnPos = AT(Chr(0), lcBuffer)

IF lnPos > 0
lcResult = lcResult + SUBSTR(lcBuffer, 1, lnPos-1)
RETURN lcResult
ELSE
lcResult = lcResult + lcBuffer
lnPtr = lnPtr + BUFFER_SIZE
ENDIF
ENDDO

FUNCTION buf2dword (lcBuffer)
RETURN Asc(SUBSTR(lcBuffer, 1,1)) + ;
Asc(SUBSTR(lcBuffer, 2,1)) * 256 +;
Asc(SUBSTR(lcBuffer, 3,1)) * 65536 +;
Asc(SUBSTR(lcBuffer, 4,1)) * 16777216

PROCEDURE decl
DECLARE INTEGER MAPILogon IN mapi32;
INTEGER ulUIParam, STRING lpszProfileName,;
STRING lpszPassword, INTEGER flFlags,;
INTEGER ulReserved, INTEGER @lplhSession

DECLARE INTEGER MAPILogoff IN mapi32;
INTEGER lhSession, INTEGER ulUIParam,;
INTEGER flFlags, INTEGER ulReserved

DECLARE INTEGER MAPIReadMail IN mapi32;
INTEGER lhSession, INTEGER ulUIParam,;
STRING lpszMessageID, INTEGER flFlags,;
INTEGER ulReserved, INTEGER @lppMessage

DECLARE INTEGER MAPIFreeBuffer IN mapi32 INTEGER pv

DECLARE INTEGER MAPIFindNext IN mapi32;
INTEGER lhSession, INTEGER ulUIParam,;
STRING lpszMsgType, STRING lpszSeedMsgID,;
INTEGER flFlags, INTEGER ulReserved, STRING @lpszMsgID

DECLARE RtlMoveMemory IN kernel32 As Heap2Str;
STRING @, INTEGER, INTEGER




"Zoury" <yanick_lefebvre at hotmail dot com> wrote in message
news:#RpP$
Bonjour ou bonsoir à toutes et à tous!

et bienvenue au groupe Fox Pro et Outlook Express 6
que je viens d'ajouter à la conversation!! (yeah!) :O)


Il me semble que Fox Pro supporte le type de fichier .DBX.
Il me semble même que le type de fichier .DBX représente une table Fox


Pro.
Nos confrères peuvent-ils éclairer nos lanterne sur le sujet ?


pour Aski :
tu souhaites modifier ce fichier par code ou simplement l'ouvrir pour


y
apporter une modification ?

--
Cordialement
Yanick
MVP pour Visual Basic
"Aski" a écrit dans le message de
news:%23O3$
> Bonjour,
>
> Il semblerait que les références, utilisées par le registre pour repérer
les
> dossiers créés dans Outlook Express, se trouvent dans le fichiers
> Folderx.dbx.
> Savez vous s'il existe des articles décrivant la structure de ce fichier
ou
> des API pour le lire ?
> Une recherche sur MSDN, Google et CodeVB n'a rien donné, mais je n'ai
> peut-être pas utilisé les bons mots-clefs.
> Merci
>
> Aski
>
>




Avatar
Mike Gagnon
> Les DBX sont des formats d'index sur des DBF (de tete),



Correction, le DBX n'est pas un fichier index de DBF, CDX (ou IDX) est un
index d'un DBF.


"YannX" wrote in message
news:
Houlalala... attention, ce n''st pas parce que l'extension est la meme
que...
Les DBX sont des formats d'index sur des DBF (de tete),
mais je n'ai jamais entendu dire que cela ressemblat
au format spécifique d'Outlook !
Sinon, Access saurait lire Outlook !

Bonne année à tous / Bloavez mad
Y@+

PS: La Piste trouvée par Aski me parait plus prometteuse
(quoique ce source utilise des templates ATL standards en C++ : good !)

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:%23RpP$
> Bonjour ou bonsoir à toutes et à tous!
>
> et bienvenue au groupe Fox Pro et Outlook Express 6
> que je viens d'ajouter à la conversation!! (yeah!) :O)
>
>
> Il me semble que Fox Pro supporte le type de fichier .DBX.
> Il me semble même que le type de fichier .DBX représente une table Fox
Pro.
> Nos confrères peuvent-ils éclairer nos lanterne sur le sujet ?
>
>
> pour Aski :
> tu souhaites modifier ce fichier par code ou simplement l'ouvrir


pour
y
> apporter une modification ?
>
> --
> Cordialement
> Yanick
> MVP pour Visual Basic
> "Aski" a écrit dans le message de
> news:%23O3$
> > Bonjour,
> >
> > Il semblerait que les références, utilisées par le registre pour


repérer
> les
> > dossiers créés dans Outlook Express, se trouvent dans le fichiers
> > Folderx.dbx.
> > Savez vous s'il existe des articles décrivant la structure de ce


fichier
> ou
> > des API pour le lire ?
> > Une recherche sur MSDN, Google et CodeVB n'a rien donné, mais je n'ai
> > peut-être pas utilisé les bons mots-clefs.
> > Merci
> >
> > Aski
> >
> >
>
>




Avatar
Jceel
"Mike Gagnon" a écrit dans le message de news:

Non, je ne crois pas que FoxPro peut ouvrir des fichier .dbx.
Il existe plusieurs programmes qui ouvre des fichiers .dbx
http://www.oemailrecovery.com/outlook-express-recovery.html
http://www.oemailrecovery.com/faq-repair-dbx-files.html



les .DBX sont le format sous lequel sont archivés les DBX par Outlook
express et avec lequel on les lit
mais il existe des logiciels gratuits pour les extraire dont WOE5extract sur
mon site
http://jceel.free.fr/WOE5EXTRACT.ZIP
ils sont extraits en .EML ou.NWS et il suffit de les renommer en .MHT pour
les lire avec internet explorer
il y a aussi un lecteur de DBX chez
http:www.mitec.cz

--
@++++Jceel

En vérité je te le dis mais sous O E
internaute indécis pour le HacheuTeuMeuLeu
seul le click droit Control+F deux
la lumière t'apportera C'est ce qu'il y a de mieux
netevangile..selon Jceel.livre du windows.psaume alt-255..verset ÿp
Jceel http://jceel.free.fr l'hyper du gratuit du net
Founding Chairman of the International Pebkac Busters Company
Avatar
Bernard Barrier
Salut,

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news:
|> Les DBX sont des formats d'index sur des DBF (de tete),
|
| aahh oui!! c'était des .DBF, et bien désolé pour ma confusion. :O)
|

Même si l'extension des fichiers dbx d'Outlook express est la même que celle
des index de dbase II/III, le format et le contenu n'ont strictement rien à
voir !

bb
Avatar
Aski
Bonjour Yanick,,

pour Aski :
tu souhaites modifier ce fichier par code ou simplement l'ouvrir pour y
apporter une modification ?



Je voudrais simplement lol trouver comment, en VB ou sinon en C, lire ce
fichiers afin d'y trouver la référence inscrite pour chacun des dossiers de
stockage dbx.
En effet, en scrutant le fichier Folders.dbx, j'ai constaté (sauf erreur de
ma part) que cette référence (07 00 pour éléments supprimés, par exemple)
était celle utilisée dans les règles de courrier (base de registre).
Merci de t'intéresser à ce problème ..

Aski

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de
news: %23RpP$
Bonjour ou bonsoir à toutes et à tous!

et bienvenue au groupe Fox Pro et Outlook Express 6
que je viens d'ajouter à la conversation!! (yeah!) :O)


Il me semble que Fox Pro supporte le type de fichier .DBX.
Il me semble même que le type de fichier .DBX représente une table Fox
Pro.
Nos confrères peuvent-ils éclairer nos lanterne sur le sujet ?


pour Aski :
tu souhaites modifier ce fichier par code ou simplement l'ouvrir pour y
apporter une modification ?

--
Cordialement
Yanick
MVP pour Visual Basic
"Aski" a écrit dans le message de
news:%23O3$
Bonjour,

Il semblerait que les références, utilisées par le registre pour repérer


les
dossiers créés dans Outlook Express, se trouvent dans le fichiers
Folderx.dbx.
Savez vous s'il existe des articles décrivant la structure de ce fichier


ou
des API pour le lire ?
Une recherche sur MSDN, Google et CodeVB n'a rien donné, mais je n'ai
peut-être pas utilisé les bons mots-clefs.
Merci

Aski








Avatar
Patrick Philippot
YannX wrote:
Il est sans doute possible de trouver des informations
sur www.ghisler.com, car Total Commander propose un plug-in
capable de lire les DBX comme des fichiers Archives...
Et d'autres programmes analogues existent en source.
Donc par la bande.....



Il y a effectivement beaucoup d'utilitaires et d'exemples de code
capables de lire certaines parties d'un DBX. Par contre, personne (à ma
connaissance) ne sait les modifier parce qu'il y a trop d'inconnues sur
la structure du fichier.

Et comme Microsoft refuse de donner la moindre information sur le
sujet...

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Aski
Bonjour Jceel,

Je pense que tous, ou presque, connaissent ces utilitaires très commodes,
mais, comme tu peux le lire sur mon post précédent, je m'intéresse à
d'autres choses qu'aux messages contenus.

Aski

"Jceel" <Médor@ rofl .Ouah.Ouah.org> a écrit dans le message de news:

"Mike Gagnon" a écrit dans le message de news:

Non, je ne crois pas que FoxPro peut ouvrir des fichier .dbx.
Il existe plusieurs programmes qui ouvre des fichiers .dbx
http://www.oemailrecovery.com/outlook-express-recovery.html
http://www.oemailrecovery.com/faq-repair-dbx-files.html



les .DBX sont le format sous lequel sont archivés les DBX par Outlook
express et avec lequel on les lit
mais il existe des logiciels gratuits pour les extraire dont WOE5extract
sur mon site
http://jceel.free.fr/WOE5EXTRACT.ZIP
ils sont extraits en .EML ou.NWS et il suffit de les renommer en .MHT pour
les lire avec internet explorer
il y a aussi un lecteur de DBX chez
http:www.mitec.cz

--
@++++Jceel

En vérité je te le dis mais sous O E
internaute indécis pour le HacheuTeuMeuLeu
seul le click droit Control+F deux
la lumière t'apportera C'est ce qu'il y a de mieux
netevangile..selon Jceel.livre du windows.psaume alt-255..verset ÿp
Jceel http://jceel.free.fr l'hyper du gratuit du net
Founding Chairman of the International Pebkac Busters Company




Avatar
Aski
Bonjour,

Apparemment, Total Commander, qui est un de mes utilitaires préférés, ne
sait pas reconnaître les dbx.
Des informations sur les sites Delphi ? Je vais rechercher.
Merci

Aski

"YannX" a écrit dans le message de news:

Bnsr,

Il est sans doute possible de trouver des informations
sur www.ghisler.com, car Total Commander propose un plug-in
capable de lire les DBX comme des fichiers Archives...
Et d'autres programmes analogues existent en source.
Donc par la bande.....
Bonne recherche.
Bonne Année
YannX
PS je me souviens que la plupart des programmes qui portaient
sur ce thème étaient ecrits en delphi .......

"Patrick Philippot" a écrit dans le
message de news:%
Aski wrote:
> Il semblerait que les références, utilisées par le registre pour
> repérer les dossiers créés dans Outlook Express, se trouvent dans le
> fichiers Folderx.dbx.
> Savez vous s'il existe des articles décrivant la structure de ce
> fichier ou des API pour le lire ?
> Une recherche sur MSDN, Google et CodeVB n'a rien donné, mais je n'ai
> peut-être pas utilisé les bons mots-clefs.

Bonjour,

Pour avoir cherché également assez longtemps, je pense qu'il n'y a
aucune information complète disponible sur ce sujet. Même si certains
software commerciaux ont visiblement bien avancé sur le sujet (en ce qui
concerne la lecture).

En ce qui me concerne, je souhaitais intervenir sur folders.dbx afin
d'en éliminer les groupes superflus qui ne servent à rien qu'à ralentir
le programme.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr








Avatar
Mike Gagnon
le fait que DBX est listé comme étant un Table Visual FoxPro est un erreur.
http://www.seniormag.com/compcorner/definitions/ext/biglistd.htm


"Zoury" <yanick_lefebvre at hotmail dot com> wrote in message
news:%23RpP$
Bonjour ou bonsoir à toutes et à tous!

et bienvenue au groupe Fox Pro et Outlook Express 6
que je viens d'ajouter à la conversation!! (yeah!) :O)


Il me semble que Fox Pro supporte le type de fichier .DBX.
Il me semble même que le type de fichier .DBX représente une table Fox
Pro.
Nos confrères peuvent-ils éclairer nos lanterne sur le sujet ?


pour Aski :
tu souhaites modifier ce fichier par code ou simplement l'ouvrir pour y
apporter une modification ?

--
Cordialement
Yanick
MVP pour Visual Basic
"Aski" a écrit dans le message de
news:%23O3$
Bonjour,

Il semblerait que les références, utilisées par le registre pour repérer


les
dossiers créés dans Outlook Express, se trouvent dans le fichiers
Folderx.dbx.
Savez vous s'il existe des articles décrivant la structure de ce fichier


ou
des API pour le lire ?
Une recherche sur MSDN, Google et CodeVB n'a rien donné, mais je n'ai
peut-être pas utilisé les bons mots-clefs.
Merci

Aski








Avatar
Patrick Philippot
Aski wrote:
Je voudrais simplement lol trouver comment, en VB ou sinon en C, lire
ce fichiers afin d'y trouver la référence inscrite pour chacun des
dossiers de stockage dbx.



Voir WOTSIT : http://www.wotsit.org/ (entrez DBX dans le formulaire de
recherche)

(si personne n'en a encore parlé).

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
1 2 3 4