Вопрос или проблема
Многие люди в моей организации не используют функции контактов в Outlook, поэтому у них нечего экспортировать. Вместо этого они полагаются на список автозаполнения. Я не спрашиваю, как перенести этот список в неизменном виде, например, при получении новой рабочей станции. Иногда нам нужны эти списки в текстовом формате. Файлов .nk2
нет, так как учетные записи используют IMAP, и Outlook хранит данные внутренне (как описано в связанной помощи). Есть ли простой способ получить их?
Я не думаю, что у меня самое эффективное решение, но оно сработало. У меня Linux-станция, поэтому я извлек текст, используя известные мне инструменты. Возможно, вы сможете сделать то же самое с версиями для Windows и/или с оболочкой BASH, которая идет с Git для Windows, если у вас нет других подходящих программ для обработки файлов.
-
Используйте MFCMAPI на исходной машине, чтобы извлечь файл
IPM.Configuration.Autocomplete
как TXT файл. Вне области этой статьи, но вы можете выполнить первую часть инструкции по переносу, связанной в вопросе. -
Откройте файл в текстовом редакторе, он должен быть в формате XML, в кодировке UTF-16 с отметкой порядка байтов. Перейдите к
<property>
, который содержитPR_ROAMING_BINARYSTREAM
, и сохраните только длинную шестнадцатеричную строку (0DF0...
) в<Value>
как отдельный текстовый файл, например,automplete-dump-hex.txt
. Сохраните его в формате ASCII/UTF-8, без отметки порядка байтов. -
Преобразуйте этот файл с шестнадцатеричным потоком в бинарный. Я использовал такую команду:
xxd -r -p < automplete-dump-hex.txt > automplete-dump-raw.bin
-
Этот бинарный файл содержит части обычного текста, опять в кодировке UTF-16, с разделением строк null байтами. Вы можете открыть его в редакторе и поступить своим образом. Я извлек их, используя следующее:
strings --encoding=l automplete-dump-raw.bin | grep -vE '^SMTP$' > automplete-dump.txt
Вы можете передать вывод команды
strings
черезsort -u
для уменьшения дубликатов, но это нарушает связи имен на одной строке, последовавшей за адресом электронной почты на следующей. Не все адреса были отформатированы какName <[email protected]>
, так что возможно вам придется сохранить эту ассоциацию. -
Затем я привел в порядок последний выходной файл в более дружелюбный формат (TSV):
- Преобразовал некоторые сгруппированные строки в формат
Name <[email protected]>
, чтобы сохранить ассоциацию имени и адреса; - Преобразовал все строки
Name <[email protected]>
в два отдельных поля; - Удалил все строки без адреса;
- Удалил одинарные кавычки, окружающие некоторые имена;
- Удалил дублированные строки по адресу, предпочитая строки с именем; и
- Заполнил имена в строках без них, используя первую часть их адреса электронной почты.
- Преобразовал некоторые сгруппированные строки в формат
Это успешно сгенерировало списки с сотнями уникальных адресов, которыми я был удовлетворен.
Ответ или решение
Чтобы извлечь автозаполняемые адреса электронной почты, сохраненные в Outlook, и преобразовать их в текстовый формат, следуйте приведенному ниже подробному руководству. Это решение позволит вам создать список адресов электронной почты, который можно использовать для различных нужд, таких как маркетинг или внутренние коммуникации. Мы используем инструменты, доступные на Linux, и вы можете адаптировать процесс для работы на Windows.
Шаг 1: Извлечение файла с помощью MFCMAPI
Сначала воспользуйтесь инструментом MFCMAPI на исходном компьютере, чтобы извлечь файл конфигурации IPM.Configuration.Autocomplete
. Сохраните его как текстовый файл (TXT). Чтобы найти инструкции по использованию MFCMAPI, можете обратиться к официальной документации или использовать справочные ресурсы онлайн.
Шаг 2: Извлечение шестнадцатеричной строки
Откройте извлеченный файл в текстовом редакторе. Он должен быть в формате XML, кодированном в UTF-16 с меткой порядка байтов. Найдите элемент <property>
, содержащий PR_ROAMING_BINARYSTREAM
, и скопируйте длинную шестнадцатеричную строку (0DF0...
) из <Value>
, сохранив ее в отдельном текстовом файле, например, autocomplete-dump-hex.txt
. Используйте кодировку ASCII/UTF-8 без метки порядка байтов.
Шаг 3: Конвертация в бинарный формат
Для конвертации шестнадцатеричной строки в бинарный формат, используйте команду:
xxd -r -p < automplete-dump-hex.txt > automplete-dump-raw.bin
Шаг 4: Извлечение текста из бинарного файла
Откройте бинарный файл в текстовом редакторе или используйте команду для извлечения текстовых строк:
strings --encoding=l automplete-dump-raw.bin | grep -vE '^SMTP$' > automplete-dump.txt
Это извлечет строки, закодированные в UTF-16 с разделителями в виде нулевых байтов.
Шаг 5: Обработка и форматирование данных
Теперь обработайте полученные данные, чтобы получить удобочитаемый текстовый файл:
- Преобразуйте строки в формат
Имя <[email protected]>
, чтобы сохранить ассоциации имен и адресов. - Разделите строки на два поля: имя и электронная почта.
- Удалите строки без адреса электронной почты.
- Уберите одинарные кавычки вокруг имен.
- Удалите дубликаты по адресу, предпочтительно оставляя строки с именем.
- Заполните пробелы в именах, используя первую часть их адреса электронной почты.
Заключение
Этот метод позволяет вам получить список уникальных адресов электронной почты, который может быть полезен для различных нужд вашей организации. Преобразование автозаполняемых адресов электронной почты в текстовый формат — это задача, требующая внимания к деталям, но она обеспечит чистый и структурированный список контактов.