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 :

Image non disponible

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

7. Remerciements

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