Description des fichiers de données de DreamMailv 4.6.5.5

omen999

Description détaillée de la manière dont le client DreamMail structure et stocke ses données.

Vous pouvez également poser vos questions et laisser vos commentaires et suggestions sur le forum : Commentez

- Titre : Description des fichiers de données de DreamMailv 4.6.5.5

- Auteur : omen999

- Parution : 28 avril 2010

- Licence : Copyright ® 2010 omen999. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- 1. Introduction

- 2. Quoi de neuf

- 3. Identification et emplacements

- 3-A. MultUser

- 3-B. DmData

- 3-C. Fichiers dmd ou eml

- 4. Structure interne

- 4-A. Fichier MultUser.dao (table unique)

- 4-A-1. Table multuser (7 champs) - Paramètres des comptes utilisateurs

- 4-B. Fichier DmData.dao (13 tables)

- 4-B-1. Table Account (23 + 28 champs) - Paramètres des comptes mails

- 4-B-2. Table Assign (4 champs) - Paramètres des signatures

- 4-B-3. Table BakUidl (8 champs) - Gestion des UIDL (Unique IDentification Listing)

- 4-B-4. Table Contact (81 champs) - Paramètres des contacts

- 4-B-5. Table ContactGroup (6 champs) - Paramètres des groupes

- 4-B-6. Table ContactInGroup (4 champs) - Table de liaison N à N Contact/ContactGroup

- 4-B-7. Table ContactPicture (9 champs) - Paramètres des images contacts

- 4-B-8. Table Email (49 champs) - Paramètres des messages

- 4-B-9. Table EmailBox (9 champs) - Paramètres des dossiers

- 4-B-10. Table FileList (5 champs) - Paramètres des fichiers

- 4-B-11. Table Filter (28 champs) - Paramètres des règles de messages

- 4-B-12. Table OtherInfo (10 + 4 champs) - Divers

- 4-B-13. Table VirtualBox (7 + 34 champs) - Dossiers virtuels

- 5. Conclusion

- 6. Liens

- 7. Remerciements

1 - Introduction

DreamMail (en abrégé DM) est un client mail gratuit d'origine chinoise, développé depuis plusieurs années par une petite équipe conduite par Zeng Xiquan [1]. Malheureusement, comme souvent en pareil cas, la documentation est la première victime de ce projet aux moyens limités.

Si la plupart des fonctions de ce logiciel sont triviales à mettre en oeuvre, une connaissance plus approfondie de la manière dont DM manipule et conserve ses données peut se révéler utile, autant pour en rétablir l'intégrité que pour y accéder en contournant le logiciel lui-même.

C'est donc à une visite - under the hood - que je vous convie, en gardant toutefois à l'esprit le principe fondateur que tout utilisateur devrait s'imprimer au fer rouge sur la main : « SAUVEZ-LES »

2 - Quoi de neuf

La version 4.6.5 a introduit la notion de dossiers virtuels qui permet de rassembler automatiquement des messages selon des critères pré-définis. Cette nouvelle fonction se traduit par l'apparition d'une table supplémentaire dans le fichier DmData.dao dénommée VirtualBox. Une modification mineure est également apportée à la table Email (ajout d'un champ et modification du rang de la clé primaire).

3 - Identification et emplacements

DM utilise pour gérer ses données le moteur MS Jet DB 4.0 qui est également le format natif de l'application MS Access® 2000 & 2003. DM est un client mail multi-utilisateurs ce qui a conduit les concepteurs à adopter la structure suivante :

3-A - MultUser

Un fichier racine dénommé MultUser.dao. Il est toujours situé dans le répertoire de l'exécutable.

3-B - DmData

Autant de fichiers dénommés DmData.dao qu'il existe d'utilisateurs définis dans le logiciel. L'emplacement est libre et peut être choisi lors de la création de l'utilisateur. Le chemin peut être retrouvé et modifié dans ses propriétés. (voir : Fichier | gestionnaire d'utilisateurs | propriétés | base de données).

Par défaut, il s'agira d'un sous-répertoire du sous-répertoire User du répertoire d'installation de DM. Ce sous-répertoire constituera le répertoire racine des sous-répertoires propres à l'utilisateur considéré.

3-C - Fichiers dmd ou eml

DM, comme la plupart des clients mails, est également multi-comptes. Chacun d'entre eux donne lieu à la création d'un sous-répertoire portant le nom de l'adresse mail correspondante. Chaque message du compte, quelque soit sa nature (envoyé, reçu, spam, brouillon, etc.) et son emplacement (dossier), sera stocké individuellement dans un sous-répertoire "mensuel" composé de l'année et du mois - AAAAMM - sous une forme compressée propriétaire dmd ou dans le format eml.

Afin d'assurer le caractère unique du nom de message, celui-ci est composé du jour et de l'instant de création du fichier, millisecondes comprises, soit JJHHMMSSLLL pour un total de onze caractères. Exemple d'un message reçu le 11 janvier 2010 à 15 heures 32 minutes 23 secondes 902 millisecondes : ..\201001\11153223902.dmd ou eml.

Schéma de l'arborescence :

4 - Structure interne

L'accès des fichiers dao est protégé par un mot de passe qui ne doit pas être confondu avec ceux qui protègent l'accès des comptes utilisateurs. Ce mot de passe d'une longueur de 20 caractères est indispensable pour accéder à l'organisation interne de ces fichiers dao : @i_10ve_U&^@^Rapid_?

4-A - Fichier MultUser.dao (table unique)

4-A-1 - Table multuser (7 champs) - Paramètres des comptes utilisateurs

nom champ

type

nature

Id

num

ID de l'utilisateur (incrément auto à partir de 1)

mUserName

ch150

nom de l'utilisateur

mPassword

ch50

mot de passe - encodé - (facultatif)

mIsDefault

num

flag utilisateur par défaut (activé : 1 ; inactif : 0)

mDBFileName*

ch255

nom complet de la base de données (avec son répertoire)

mQuestion

ch250

énoncé de la question en cas d'oubli du mdp (facultatif)

mAnswer

ch250

réponse (facultatif)

* ${DreamMail} désigne le répertoire d'installation du programme

Si le mot de passe est conservé codé, tel n'est pas le cas de la question de "rattrapage" dont le contenu figure en clair dans la base.
Conclusion : la protection est illusoire sauf s'il s'agit de protéger vos mails de votre petit neveu de cinq ans (et encore...)

4-B - Fichier DmData.dao (13 tables)

Observations générales (cet article est le résultat d'un travail de reverse qui peut comporter une part d'incertitude)

1. Toutes les tables ont une clé primaire numérique dénommée Id et un champ OrgId qui conserve peut-être la valeur de la clé d'origine en cas d'import.

2. Les champs indexés sont signalés par le caractère # suivi du nom de l'index (il n'y a pas de clés composées).

3. Sauf indication contraire, les items des listes memo sont séparés par des retours à la ligne.

4. Enfin, certains champs n'ont pas (encore) de fonction identifiée et sont signalés par le préfixe >.

4-B-1 - Table Account (23 + 28 champs) - Paramètres des comptes mails

nom champ - 23

type

nature

Id #

num

ID du compte mail (incrément auto à partir de 1)

OrgId

num

ID

aDisplayName

ch40

libellé du compte qui sera affiché dans les messages sortants

aEmailAddress

ch100

adresse mail

aReplyAddress

ch100

adresse de réponse pour le destinataire

aAccountIndex

num

index du compte

aPop3

ch200

adresse du serveur pop3

aPop3Port

num

port pop3 (messages entrants)

aSmtp

num

adresse du serveur smtp

aSmtpPort

num

port smtp (messages sortants)

aAccountName

ch60

nom du compte utilisateur du serveur pop3

aPassword

ch250

mot de passe - encodé

aIsVerifyAsPop3

num

mode authentification smtp - 1 : comme pop3 ; 0 : infos propre au smtp

aVerifyUserName

ch60

info propre à l'authentification smtp (nom utilisateur)

aVerifyPassword

ch250

info propre à l'authentification smtp (mot de passe)

aIsActive

num

flag compte actif - 0 : désactivé ; 1 : activé

aIsDelAfterRetr

num

flag « Laisser une copie sur le serveur » 0 : coché ; 1 : décoché

aAccountType

num

0 : compte smtp/pop3 ; 3 : compte webmail

aMailColor

num

info couleur par défaut de la police des messages du compte (RVB)

aAccountDisplayName

ch100

nom du compte affiché dans l'interface DM

aDelSrvBakMailDays

num

supprimé du serveur après n jours (si n=0 pas de suppression)

aDelSrvBakOnMailDel

num

suppprimé du serveur si corbeille - 0 : décoché ; 1 : coché

aOptions

memo

stockage de paramètres complémentaires (voir détail dans le tableau ci-dessous)

aOptions - 28 champs

format : nomparamètre=valeurparamètre

SumType

nom du groupe

> MailAssignID

par défaut valeur 1 ou -1

ProxyName

nom du proxy spécifique du compte (facultatif)

SpecialAutoReceive

vérification auto des nouveaux messages - 0 : décoché ; 1 : coché

AutoReceiveMin

nb de minutes entre chaque vérification

NewMailTemplet*

nom complet du modèle nouveau (facultatif)

ReplyMailTemplet*

nom complet du modèle réponse (facultatif)

FwMailTemplet*

nom complet du modèle transfert (facultatif)

FastReplyMailTemplet*

nom complet du modèle réponse rapide (facultatif)

UsedNewMailTemplet

utilisation d'un modèle nouveau - 0 : décoché ; 1 : coché

UsedReplyMailTemplet

nom complet du modèle réponse (facultatif)

UsedFwMailTemplet

utilisation d'un modèle transfert - 0 : décoché ; 1 : coché

UsedFastReplyMailTemplet

utilisation d'un modèle réponse rapide - 0 : décoché ; 1 : coché

NewMailUserDefAccount

utilisation du compte par défaut lors de l'envoi - 0 : décoché ; 1 : coché

POP3WithSSL

connexion au serveur pop3 avec ssl - 0 : décoché ; 1 : coché

SmtpWithSSL

connexion au serveur smtp avec ssl - 0 : décoché ; 1 : coché

> POP3SslType

par défaut valeur 1

> SmtpSslType

par défaut valeur 0

POP3LoginType

0 : nom user + mdp ; 1 : APOP ; 2 : SASL

SmtpLoginType

0 : aucun ; 1 : ESMTP ; 2 : SASL

SplitSendMail

découper automatiquement les messages - 0 : décoché ; 1 : coché

SplitSendMail_Size

limite de taille de découpage (ko)

SendVCardGuid

GUID de la vCard sélectionné pour l'envoi auto avec le message

WebMailDefURL

URL du login par défaut (compte webmail uniquement)

AutoReconnectOnSend

reconnexion auto limite serveur - 0 : décoché ; 1 : coché

AutoReconnectTimes

nb de messages avant reconnexion auto

> ReceiveHalfMail

par défaut valeur 0

> ListMailOnUnUsed

par défaut valeur 0

4-B-2 - Table Assign (4 champs) - Paramètres des signatures

nom champ - 4

type

nature

Id #

num

ID (incrément auto à partir de 1)

OrgId

num

ID

aName

ch100

nom de la signature

aHtml

memo

contenu de la signature (format html)

4-B-3 - Table BakUidl (8 champs) - Gestion des UIDL (Unique IDentification Listing)

nom champ

type

nature

Id #

num

ID de l'enregistrement Uidl (incrément auto à partir de 1)

OrgId

num

ID

sAccountID # BakAccountIDIndex

num

identifiant du compte mail concerné (cf champ Id de la table Account)

sReceiveDate

ch10

date de réception format AAAAMMJJHH

sUidl # BakUidlIndex

ch120

identifiant unique du message reçu format UIDL

> sMailSize

num

vide ne semble pas exploité ?

sIsDelete

num

flag indiquant si le mail a été supprimé du serveur (0 : non ; 1 : oui)

sNeverReceive

num

flag indiquant que le mail n'a pas été reçu (0 : reçu ; 1 : pas reçu)

4-B-4 - Table Contact (81 champs) - Paramètres des contacts

nom champ

type

nature

OrgId

num

ID

iMailCount # ContactMailCountIndex

num

nombre de mails associés à ce contact

Stars

num

évaluation du contact (0 à 5 étoiles comme les hôtels...)

FirstName

ch100

prénom

LastName

ch100

nom

ShowAsName # ContactShowAsNameIndex

ch100

nom affiché

> ShowAsModifyed

num

vide ?

Picture

blob

contenu de l'image associée au contact (photo identité)

PicFileName

ch200

nom complet du fichier image (photo identité)

Email1 # ContactEmail1Index

ch100

mail 1

Email2 # ContactEmail2Index

ch100

mail 2

Email3 # ContactEmail3Index

ch100

mail 3

Email4 # ContactEmail4Index

ch100

mail 4

Email5 # ContactEmail5Index

ch100

mail 5

QQ

ch100

identifiant QQ (ICQ sauce chinoise)

Msn

ch100

identifiant MSN

Icq

ch100

identifiant ICQ

Skype

ch100

identifiant Skype

Online1

ch100

identifiant 1 pour d'autres réseaux

Online2

ch100

identifiant 2 pour d'autres réseaux

CorpName

ch200

nom de l'entreprise

CorpDepartment

ch100

nom du service

CorpTitle

ch100

titre

CorpWebPage

ch200

page web de l'entreprise

CorpOffice

ch100

nom du bureau

CorpVocation

ch100

profession

CorpManagerName

ch100

nom du directeur

CorpAssistantName

ch100

nom de l'assistant

CorpPostCode

ch20

code postal travail

CorpProvince

ch100

département travail

CorpCity

ch100

ville travail

CorpStreet

ch250

rue travail

CorpCountry

ch100

pays travail

CorpAddressIsDef

num

flag adresse travail par défaut - 0 : décoché ; 1 : coché

PersnWebPage

ch200

page web perso

PersnPostCode

ch20

code postal perso

PersnProvince

ch100

département perso

PersnCity

ch100

ville perso

PersnStreet

ch250

rue perso

PersnCountry

ch100

pays perso

PersnAddressIsDef

num

flag adresse perso par défaut - 0: décoché ; 1 : coché

Memos

memo

contenu du champ mémo

NickName # ContactNickNameIndex

ch100

surnom

Appellation

ch100

titre (formule politesse)

Sex

ch10

sexe

PinYin # ContactPinYinIndex

ch1

initiale

PinYinModifyed

num

flag modification initiale - 0 : non ; 1 : oui

SearchPinYin

ch200

mots-clés recherche initiale

Lovely

ch200

préférences

OnesStrong

ch200

points forts

Birthday # ContactBirthdayIndex

ch20

date anniversaire

Specialday # ContactSpecialdayIndex

ch20

date spéciale à retenir

BirthRemind # ContactBirthRemindIndex

num

flag rappel de la date anniversaire - 0 : non ; 1 : oui

SpecialRemind # ContactSpecialRemindIndex

num

flag rappel de la date spéciale - 0 : non ; 1 : oui

FamilyNumber

ch200

n° assuré social

Consort

ch100

nom du conjoint

Code_CorpPhone1

ch100

tel 1 travail

Code_CorpPhone2

ch100

tel 2 travail

Code_HomePhone1

ch100

tel1 domicile

Code_HomePhone2

ch100

tel2 domicile

Code_MainPhone

ch100

tel principal

Code_OtherPhone

ch100

autre tel

Code_SmallLT

ch100

tel SmallLT

Code_CorpFax

ch100

n° télécopie travail

Code_OtherFax

ch100

autre n° de télécopie

Code_MobilePhone

ch100

tel portable

Code_Assistant

ch100

tel assistant

Code_ISDN

ch100

n° ISDN (ligne numérique spéciale)

Code_Telegraph

ch100

n° de télégraphe

Code_ReplyPhone

ch100

tel réponse

Code_CarPhone

ch100

tel voiture

Code_TTYTDD

ch100

n° téléscripteur

ContactList

memo

liste des ID des contacts liés

ModifyTime

ch20

date de la dernière modification

ModifyHistory

memo

historique des modifications apportées au contact depuis sa création

CardGUID

ch40

identifiant vCard

Custom1

ch100

perso1

Custom2

ch100

perso2

Custom3

ch100

perso3

Custom4

memo

commentaires

ID

num

ID du contact (incrément auto à partir de 1)

4-B-5 - Table ContactGroup (6 champs) - Paramètres des groupes

nom champ

type

nature

Id #

num

ID du groupe

OrgId

num

ID

sFatherID

num

ID du groupe de niveau supérieur (0 = groupe principal)

> sIndex

num

par défaut vide

sName

ch120

nom du groupe

sPinYin

ch20

initiale

4-B-6 - Table ContactInGroup (4 champs) - Table de liaison N à N Contact/ContactGroup

nom champ

type

nature

Id #

num

ID auto (incrément auto à partir de 1)

OrgId

num

ID

GroupID # AddrInGrpGroupIDIndex

num

ID du groupe de contacts

ContactID # AddrInGrpContactIDIndex

num

ID du contact

4-B-7 - Table ContactPicture (9 champs) - Paramètres des images contacts

nom champ

type

nature

Id #

num

ID auto (incrément auto à partir de 1)

OrgId

num

ID

ContactID # ContactPicContactIDIndex

num

ID du contact associé à l'image

PicFileName

ch200

nom simple du fichier image (sans le chemin)

SmallPicture

blob

stockage binaire de l'image réduite

LargePicture

blob

stockage binaire de l'image normale

Memos

ch200

mémo associé au contact

IsLink

num

flag image liée - oui : 1 ; non : 0

LinkUrl

ch250

nom complet ou url du fichier image

4-B-8 - Table Email (49 champs) - Paramètres des messages

nom champ

type

nature

ID #

num

ID auto (incrément auto à partir de 1)

OrgId

num

ID

mAccountID # EmAccountIdIndex

num

ID du compte

mMailBoxID # EmMailBoxIDIndex

num

ID du dossier (voir note en fin de tableau)

> mCustomID

num

par défaut vide

> mCaseID

num

par défaut vide

mDisplayColor

num

code couleur de la police du message (RVB)

mSize # EmSizeIndex

num

taille du message (octets)

mPriority # EmPriorityIndex

num

priorité 4 : basse ; 2 : normale ; 0 : haute

mIsRead # EmIsReadIndex

num

flag lecture faite - 0 : non ; 1 : oui

> mReplyMailID # ReplyMailIDIndex

num

par défaut 0

> mFwMailID # FwMailIDIndex

num

par défaut 0

> mIsFlag # EmIsFlagIndex

num

par défaut 0

> mMailType # EmMailTypeIndex

num

par défaut 0

> mMailType_Text1

ch100

par défaut vide

> mMailType_Text2

ch100

par défaut vide

> mIsAttrExists # EmIsAttrExistsIndex

num

par défaut 0

mIsAskReadReply

num

flag accusé réception demandé - 0 : non ; 1 : oui

mAskReadReplyAddress

ch200

adresse mail de retour de l'AR

mMessageID # EmMessageIDIndex

ch200

Message-ID (champ standard RFC 5322, voir note en fin de tableau)

mReferences # EmReferencesIndex

ch200

Références (champ standard facultatif)

mUidl # EMUidlIndex

ch50

UIDL voir table BakUidl (défini que pour les messages reçus)

mDate # EmDateIndex

ch100

date du message format : AAAA-MM-JJ, hh:mm:ss

mCreateDate # EmCreateDateIndex

ch30

date de création du message dans DM (même format)

mCharset

ch100

code du charset

mTrueFromIP # EmTrueFromIPIndex

ch255

inexploitable, censée contenir l'IP de l'expéditeur...

mSubject # EmSubjectIndex

ch250

sujet

mReplyTo

ch100

adresse mail à utiliser pour la réponse (entre guillemets)

mFrom # EmFromIndex

ch255

champ standard expéditeur normalement "nom"<adresse mail>

mFromShowName # EmFromShowNameIndex

ch255

nom de l'expéditeur

mFromShowAddr

ch255

adresse de l'expéditeur

mTo

memo

champ standard destinataire(s) séparés par une virgule

mToShowName # EmToShowNameIndex

ch255

nom de(s) destinataire(s) séparés par une virgule

mToShowAddr

ch255

adresse de(s) destinataire(s)

mCc

memo

champ standard copie(s) items séparés par une virgule

mCcShowName

ch255

nom destinataire(s) copie items séparés par une virgule

mCcShowAddr # EmCcShowAddrIndex

ch255

adresse destinataire(s) copie items séparés par une virgule

mHeaderMD5

ch32

valeur hash du header

mBcc

memo

champ standard copie(s) cachée(s) items séparés par une virgule

mWaitToSendTime # EmWaitToSendTimeIndex

ch50

date de l'envoi différé format : AAAA-MM-JJ, hh:mm:ss

mDisplayDecodeType

num

mode décodage du message (par défaut 0 : automatique)

mAttrList

memo

liste des fichiers attachés - format : nomfichier|taillefichier (en octets)

> mExtAttrList

memo

liste vide ?

mDetail

memo

commentaire associé au message

mZipText

blob

zip du contenu texte (utilisé par le volet prévisualisation)

mZipHtml

blob

zip du contenu html (utilisé par le volet prévisualisation)

mZipSource

blob

a priori vide remplacé par le fichier dmd ou eml depuis la v4

> mOtherInfo

memo

liste vide ?

mSourceSaveFile*

ch255

nom complet du fichier message (dmd ou eml)

mIsEditMail

num

flag édition - 0 : message non édité ; 1 : message édité

* ${DBPATH} désigne le répertoire racine des données de l'utilisateur (emplacement de DmData.dao).
Note mMailBoxID : 0 : « Dossier local » ; 1 : « Reçus » ; 2 : « Non-Envoyés » ; 3 : « Envoyés » ; 4 : « Corbeille » ; 5 : « Brouillons » ; 6 : « Spam » ;
1000 et > : dossiers créés
Note mMessageID : les messages créés depuis le client mail ont une valeur générique : DreamMailOutBox.

4-B-9 - Table EmailBox (9 champs) - Paramètres des dossiers

nom champ

type

nature

Id #

num

ID du dossier (voir mMailBoxID ci-dessus pour les valeurs)

OrgId

num

ID

> bAccountID

num

par défaut 0

bIndex

num

n° d'ordre du dossier (base 0) à son niveau d'arborescence

bName

ch120

libellé du dossier

bPassword

ch250

mot de passe d'accès au dossier

bAccountList

memo

ID du compte associé au dossier

> bRevAccountList

memo

liste vide ?

bParentid

num

ID du dossier parent (0 signifie pas de parent cad dossier local)

4-B-10 - Table FileList (5 champs) - Paramètres des fichiers

nom champ

type

nature

Id #

num

ID auto (incrément auto à partir de 1)

OrgId

num

ID

aFileType

num

type

aFileName

ch100

nom du fichier

aFileContent

blob

contenu binaire

4-B-11 - Table Filter (28 champs) - Paramètres des règles de messages

nom champ

type

nature

Id #

num

ID auto (incrément auto à partir de 1)

OrgId

num

ID

fName

ch100

nom de la règle

F_IN

num

flag réception - 0 : pas applicable à la réception ; 1 : applicable

F_OUT

num

flag envoi - 0 : pas applicable à l'envoi ; 1 : applicable

FAccountList

memo

liste des ID des comptes concernés par la règle (-1 : tous les comptes)

FConditionText

memo

liste des conditions définies pour cette règle (syntaxe voir note en fin de tableau)

FANDOR

num

toutes conditions (AND) : 0 - au moins une (OR) : 1

> fCaseSensi

num

flag casse ? par défaut 0

> fCopyToAccount

num

par défaut vide

fCopyTo

num

ID du compte vers lequel le msg sera copié (-1 si option non activée)

> fMoveToAccount

num

par défaut vide

fMoveTo

num

ID du compte vers lequel le msg sera déplacé (-1 si option non activée)

fAutoReply

num

flag réponse automatique - 0 : décochée ; 1 : cochée

fReTempletFile

ch255

nom complet du modèle utilisé pour cette réponse auto

fAutoFw

num

flag transmission auto - 0 : décochée ; 1 : cochée

fAutoFWList

memo

liste des adresses mails destinataires du transfert

fFwTempletFile

ch255

nom complet du modèle utilisé pour ce transfert auto

fAddFlag

num

marquer comme (syntaxe note en fin de tableau)

fPlaySnd

ch255

nom complet du fichier wav

fExecFile

ch255

nom complet de l'exécutable

fPassAfter

num

flag «ignorer les règles suivantes» - 0 : décochée ; 1 : cochée

fReject

num

flag « refuser la réception » - 0 : décochée ; 1 : cochée

fDelete

num

flag « effacer directement du serveur » - 0 : décochée ; 1 : cochée

fAllMail

num

flag « tous les messages » - 0 : décochée ; 1 : cochée

fIndex

num

position dans la liste affichée (base 0)

fMovetoAccountList

ch255

liste contenant la même info que fMoveTo

fCopytoAccountList

ch255

liste contenant la même info que fCopyTo

Note FConditionText :
son format est : élément_message|opérateur|item
élément_message et opérateur sont exprimés par un indice numérique, l'item est une chaine libre

valeur

élément_message

opérateur

1

De

Contient

2

A

Ne contient pas

3

CC

Est égal à

4

BCC

Différent de

5

Sujet

Débute par

6

Fichier joint

Termine par

7

En-tête

8

Contenu du message

9

Source

10

IP

11

Message en anglais

(combiné avec la valeur 255)

Note fAddFlag :

-88 : Supprimer plus tard

-89 : Intéressant

-90 : Romantique

-91 : Technologie

-92 : Business

-93 : Société

-94 : Ami

-95 : Important

-96 : Non-répondu

-97 : Dangereux

-98 : Liste noire

-99 : Normal

-100 : Tête de liste

4-B-12 - Table OtherInfo (10 + 4 champs) - Divers

nom champ

type

nature

Id #

num

ID

OrgId

num

ID

mVersion

ch40

date de version du logiciel

mUserInfo

memo

liste params du compte utilisateur (voir tableau suivant)

mBlackList

memo

liste noire

mWhiteList

memo

liste blanche

> mStationery

memo

liste vide ?

> mFolderList

memo

liste vide ?

> mProxyList

memo

liste vide ?

> mFolderAutoDelete

memo

liste des auto-purges des dossiers ?

mUserInfo - 4 champs

format : nomparamètre=valeurparamètre

Password

mot de passe encodé

Question

énoncé de la question en cas d'oubli du mdp (facultatif)

Answer

réponse (facultatif)

UserName

nom du compte utilisateur

4-B-13 - Table VirtualBox (7 + 34 champs) - Dossiers virtuels

nom champ

type

nature

Id #

num

ID incrément auto à partir de 200000

OrgId

num

ID par défaut vide

> bIndex

num

par défaut 0

bName

ch120

nom du dossier virtuel

RawText

memo

contient les paramètres de définition du dossier (voir tableau ci-dessous)

SQLText

memo

chaine de sélection en langage SQL

bParentid

num

ID du dossier parent (10 signifie pas de parent cad dossier virtuel racine)

RawText - 34 champs

format : nomparamètre=valeurparamètre

DynamicMailCount

flag Actualiser automatiquement le compteur - 0 : non coché ; 1 : coché

UnRead

flag Non-Lus - 0 : non coché ; 1 : coché

HasAttr

flag Fichier joint - 0 : non coché ; 1 : coché

UnReply

flag Non-Répondus - 0 : non coché ; 1 : coché

HasDetail

flag Commentaire - 0 : non coché ; 1 : coché

HasFlag

flag Catégorie - 0 : non coché ; 1 : coché

IsHighPriority

flag Priorité élevée - 0 : non coché ; 1 : coché

Attr

nom fichier joint

Detail

contenu commentaire

FlagIndex

indice de la catégorie (-1 : toutes)

IsIncludeFrom

flag "De" contient - 0 : non coché ; 1 : coché

IncludeFrom

contenu du champ expéditeur

IsIncludeSendTo

flag "A/CC" contient - 0 : non coché ; 1 : coché

IncludeSendTo

contenu du champ destinataire/copie

IsIncludeSubject

flag "Sujet" contient - 0 : non coché ; 1 : coché

IncludeSubject

contenu du sujet

IsIncludeSize

flag Plus grand que - 0 : non coché ; 1 : coché

IncludeSize

taille (en Ko)

IsIncludeTime

flag En fonction de la date - 0 : non coché ; 1 : coché

TimeToday

flag Aujourd'hui - 0 : non activé ; 1 : activé

TimeLast3

flag Moins de 3 jours - 0 : non activé ; 1 : activé

TimeLast7

flag Une semaine - 0 : non activé ; 1 : activé

TimeLastOther

flag Autre - 0 : non activé ; 1 : activé

TimeLastOtherDay

nombre de jours

TimeOtherRange

flag Du .. Au .. - 0 : non activé ; 1 : activé

TimeOtherBegin

date début - format : jj/mm/yyyy hh:mm:ss

TimeOtherEnd

date fin - format : jj/mm/yyyy hh:mm:ss

TimeRangeType

flag date - 1 : par date d'envoi/réception ; 2 : par date de création du message

Cond_IsOr

flag Traitement - 0 : toutes conditions remplies ; 1 : au moins une condition remplie

ExcludeDeleteBox

flag Ne pas traiter Corbeille - 0 : non coché ; 1 : coché

ExcludeBulkBox

flag Ne pas traiter Spam (Indésirables) - 0 : non coché ; 1 : coché

ExcludeInMails

flag Ne pas traiter Reçus - 0 : non coché ; 1 : coché

ExcludeOutMails

flag Ne pas traiter Envoyés - 0 : non coché ; 1 : coché

ExcludeEncyptFolder

flag Ne pas traiter Dossiers chiffrés - 0 : non coché ; 1 : coché

5 - Conclusion

La connaissance précise de l'organisation des données du programme permet de réaliser des tâches utiles comme le rétablissement de l'intégrité de la base en cas de corruption ou une sauvegarde plus sélective que celle proposée par DM. Des tâches plus originales, comme l'envoi de mails par injection directe dans la base de données, donneront lieu à des exemples en Vbscript.

6 - Liens

Site officiel (chinois)
Site DreamMail français

7 - Remerciements

Je tiens à remercier airballman et jacques jean pour leur relecture attentive et leurs observations pertinentes.