Skip to content

Commit 485fc57

Browse files
committed
edb2mt: new utility
1 parent aa0a649 commit 485fc57

File tree

6 files changed

+737
-2
lines changed

6 files changed

+737
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Makefile.in
3737
/gromox-dbop
3838
/gromox-dscli
3939
/gromox-e2ghelper
40+
/gromox-edb2mt
4041
/gromox-eml2mbox
4142
/gromox-eml2mt
4243
/gromox-exm2eml

Makefile.am

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ exchange_plugins = \
5353
libgxs_mysql_adaptor.la \
5454
libgxs_user_filter.la
5555
sbin_PROGRAMS = gromox-abktconv gromox-compress gromox-dbop gromox-dscli gromox-e2ghelper gromox-eml2mbox gromox-eml2mt gromox-exm2eml gromox-mailq gromox-mbop gromox-mkmidb gromox-mkprivate gromox-mkpublic gromox-kdb2mt gromox-mt2exm
56+
if HAVE_ESEDB
57+
sbin_PROGRAMS += gromox-edb2mt
58+
endif
5659
if HAVE_OLECF
5760
sbin_PROGRAMS += gromox-oxm2mt
5861
endif
@@ -214,6 +217,8 @@ gromox_dscli_SOURCES = tools/dscli.cpp
214217
gromox_dscli_LDADD = ${curl_LIBS} ${HX_LIBS} ${resolv_LIBS} ${tinyxml_LIBS}
215218
gromox_e2ghelper_SOURCES = tools/e2ghelper.cpp
216219
gromox_e2ghelper_LDADD = ${HX_LIBS}
220+
gromox_edb2mt_SOURCES = tools/genimport.cpp tools/genimport.hpp tools/edb2mt.cpp tools/edb_pack.cpp
221+
gromox_edb2mt_LDADD = ${HX_LIBS} ${esedb_LIBS} ${iconv_LIBS} ${mysql_LIBS} libgromox_common.la libgromox_cplus.la libgromox_exrpc.la libgromox_mapi.la
217222
gromox_eml2mbox_SOURCES = tools/eml2mbox.cpp
218223
gromox_eml2mbox_LDADD = ${HX_LIBS}
219224
gromox_eml2mt_SOURCES = lib/svc_loader.cpp tools/eml2mt.cpp tools/genimport.cpp tools/genimport.hpp
@@ -312,6 +317,9 @@ dist_man_MANS = \
312317
doc/pam_gromox.4gx doc/pop3.8gx doc/rtf2html.1gx \
313318
doc/user_filter.4gx \
314319
doc/timer.8gx doc/timer_agent.4gx doc/zcore.8gx
320+
if HAVE_ESEDB
321+
dist_man_MANS += doc/gromox-edb2mt.8
322+
endif
315323
if HAVE_OLECF
316324
dist_man_MANS += doc/gromox-oxm2mt.8
317325
endif

doc/gromox-edb2mt.8

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
.TH gromox\-edb2mt 8 "" "Gromox" "Gromox admin reference"
2+
.SH Name
3+
gromox\-edb2mt \(em Utility for analysis of Exchange .edb files
4+
.SH Synopsis
5+
\fBgromox\-edb2mt\fP \fB\-l\fP \fImdb01.edb\fP
6+
.PP
7+
\fBgromox\-edb2mt\fP [\fB\-pt\fP] \fImdb01.edb\fP \fB\-x\fP \fImbid\fP
8+
.SH Description
9+
gromox\-edb2mt reads one mailbox from an Exchange .edb file, and dumps the
10+
structure to stderr with \-t/\-p.
11+
.PP
12+
edb2mt is not currently suitable for import of mailbox data, see also
13+
<https://github.com/libyal/libesedb/issues/68>.
14+
.SH Options
15+
.TP
16+
\fB\-l\fP
17+
Show the mailbox table from the .edb file.
18+
.TP
19+
\fB\-p\fP
20+
Show properties in detail (enhances \fB\-t\fP).
21+
.TP
22+
\fB\-t\fP
23+
Show a diagnostic tree view of the source data as it is being read.
24+
.TP
25+
\fB\-x\fP \fImbid\fP
26+
Extract the given mailbox from the .edb file.
27+
.SH Obtaining edb files
28+
On the Exchange server, stop the service known as "Microsoft Exchange
29+
Information Store" (as reported in services.msc) or
30+
"Microsoft.Exchange.Store.exe" (as reported in Task Manager). This will release
31+
file locks on edb files so that they can be copied elsewhere.
32+
.SH See also
33+
\fBgromox\fP(7), \fBgromox\-mt2exm\fP(8gx)

include/gromox/mapitags.hpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ enum {
272272
// PR_REPL_COPIEDFROM_VERSIONHISTORY = PROP_TAG(PT_BINARY, 0x0E3C), /* PidTagReplCopiedfromVersionhistory */
273273
// PR_REPL_COPIEDFROM_ITEMID = PROP_TAG(PT_BINARY, 0x0E3D), /* PidTagReplCopiedfromItemid */
274274
PR_CREATOR_SID = PROP_TAG(PT_BINARY, 0x0E58),
275+
PR_LAST_MODIFIER_SID = PROP_TAG(PT_BINARY, 0x0E59),
275276
PR_READ = PROP_TAG(PT_BOOLEAN, 0x0E69), /* PidTagRead */
276277
PR_NT_SECURITY_DESCRIPTOR_AS_XML = PROP_TAG(PT_UNICODE, 0x0E6A), /* PidTagSecurityDescriptorAsXml */
277278
PR_TRUST_SENDER = PROP_TAG(PT_LONG, 0x0E79), /* PidTagTrustSender */
@@ -858,8 +859,8 @@ enum {
858859
PR_DELETED_ASSOC_MESSAGE_SIZE_EXTENDED = PROP_TAG(PT_I8, 0x669D), /* MS-OXPROPS v0.2 §2.569 PidTagDeletedAssociatedMessageSizeExtended */
859860
PR_LOCALE_ID = PROP_TAG(PT_LONG, 0x66A1), /* PidTagLocaleId */
860861
PR_FOLDER_FLAGS = PROP_TAG(PT_LONG, 0x66A8), /* PidTagFolderFlags */
861-
// PR_NORMAL_MSG_W_ATTACH_COUNT = PROP_TAG(PT_LONG, 0x66AD),
862-
// PR_ASSOC_MSG_W_ATTACH_COUNT = PROP_TAG(PT_LONG, 0x66AE),
862+
PR_NORMAL_MSG_W_ATTACH_COUNT = PROP_TAG(PT_LONG, 0x66AD),
863+
PR_ASSOC_MSG_W_ATTACH_COUNT = PROP_TAG(PT_LONG, 0x66AE),
863864
PR_NORMAL_MESSAGE_SIZE = PROP_TAG(PT_LONG, 0x66B3), /* MS-OXPROPS v0.2 §2.719 PidTagNormalMessageSize */
864865
PR_NORMAL_MESSAGE_SIZE_EXTENDED = PROP_TAG(PT_I8, 0x66B3), /* PidTagNormalMessageSize */
865866
PR_ASSOC_MESSAGE_SIZE = PROP_TAG(PT_LONG, 0x66B4),
@@ -908,6 +909,8 @@ enum {
908909
PR_EC_EXTERNAL_REPLY = PROP_TAG(PT_UNICODE, 0x6767),
909910
PR_EC_EXTERNAL_SUBJECT = PROP_TAG(PT_UNICODE, 0x6768),
910911
PR_EC_WEBACCESS_SETTINGS_JSON = PROP_TAG(PT_UNICODE, 0x6772),
912+
pidTagReservedCnCounterRangeUpperLimit = PROP_TAG(PT_I8, 0x677E),
913+
pidTagReservedIdCounterRangeUpperLimit = PROP_TAG(PT_I8, 0x677F),
911914
// ? = PROP_TAG(PT_LONG, 0x6780), /* EXCH2019: number of ReceiveFolderTable entries pointing to this folder */
912915
// PR_EC_OUTGOING_FLAGS = PROP_TAG(PT_LONG, 0x6780),
913916
PR_EC_IMAP_ID = PROP_TAG(PT_LONG, 0x6782),
@@ -994,6 +997,7 @@ enum {
994997
// PR_SCHDINFO_AUTO_ACCEPT_APPTS = PROP_TAG(PT_BOOLEAN, 0x686D), /* PidTagScheduleInfoAutoAcceptAppointments */
995998
// PR_SCHDINFO_DISALLOW_RECURRING_APPTS = PROP_TAG(PT_BOOLEAN, 0x686E), /* PidTagScheduleInfoDisallowRecurringAppts */
996999
// PR_SCHDINFO_DISALLOW_OVERLAPPING_APPTS = PROP_TAG(PT_BOOLEAN, 0x686F), /* PidTagScheduleInfoDisallowOverlappingAppts */
1000+
pidTagConversationContentCount = PROP_TAG(PT_LONG, 0x688E),
9971001
// PR_WLINK_CLIENTID = PROP_TAG(PT_BINARY, 0x6890), /* PidTagWlinkClientID */
9981002
// PR_WLINK_AB_EXSTOREEID = PROP_TAG(PT_BINARY, 0x6891), /* PidTagWlinkAddressBookStoreEID */
9991003
// PR_WLINK_RO_GROUP_TYPE = PROP_TAG(PT_LONG, 0x6892), /* PidTagWlinkROGroupType */

0 commit comments

Comments
 (0)