UPD: Статья устарела и ценна на данный момент благодаря обсуждению в комментариях. См. следующий пост.

windows mail win10-1709

В последнем на момент написания накопительном обновлении Windows 10 - «Осеннее обновление для дизайнеров» ("Fall Creators Update"), версия 1709 - Microsoft наконец сделал то, чего так боялись любители теплого лампового Outlook Express и его последующей реинкарнации - Windows Mail: выкорчевал его из файловой системы и реестра Виндов. Если до версии 1703 включительно срабатывал хак, описанный здесь, то теперь восстановить неактивный почтовик этим методом стало невозможно - за его отсутствием в ОС. Но очередная попытка мелкомягких переупрямить гиков закончилась так же как и предыдущие: был найден способ внедрения почтовика обратно в систему.

Человек с ником Дмитрий77 провел титаническую работу и вернул WinMail почти полную функциональность в 1709. Почти - поскольку восстановить клиенты MAPI в рабочем состоянии пока не удается. Но, надеюсь, совместными усилиями мы поборем и это.

Дмитрий любезно согласился поделиться результатами своих исследований. Я потестировал и, как мне кажется, нашел тот необходимый минимум изменений в файлах и реестре, который достаточен для восстановления работы всех функций почтовика (исключая MAPI). С разрешения Дмитрия, предоставляю результат на суд общественности.

Дисклеймер: методика новая, поэтому рекомендуется ее обкатать вначале не на основной системе, а на тестовых. И, конечно же, начать с создания резервных копий персональных настроек: хранилища почты, учетных записей, настроек пользователя. Претензий мы с Дмитрием не принимаем; благодарности - запросто. При этом свою часть благодарностей, если они будут, я заранее переадресую Дмитрию.

Итак, к делу.

Скачайте один из zip-архивов, соответствующий разрядности вашей операционной системы.

UPD: Самые свежие на данный момент архивы вместе с руководстводством - в следующей статье.

Последовательность действий для обеих разрядностей одинакова:

  1. В папке почтовика %ProgramFiles%\Windows Mail в 1709 остаются только 4 файла адресной книги и пустые подпапки языков интерфейса. Восстанавливаем файлы почтовика, копируя туда содержимое папки Windows Mail из скачанного архива.

    Если вы используете локализацию Windows отличную от русской, копировать подпапку ru-RU не нужно. Для английского языка хватит фолдера en-US; для прочих языков придется восстановить соответствующие файлы локализации из рабочих копий WinMail на Висте.

  2. Копируем содержимое папки system32 из архива в одноименную папку системной директории - %SystemRoot%\system32.

  3. Запускаем файл WinMailEdit.reg. Он добавляет в реестр функционал, описанный в Разборе полетов, но теперь в код файла добавился маленький по объему, но ключевой по сути кусочек:

    ; WinMail Class Register -------------------------------------------------------
    [HKEY_CLASSES_ROOT\CLSID\{39AE2AEA-D4D5-4DA0-AE47-C020E1BE4BE5}]
    @="CLSID_JetDatabaseSession"
     
    [HKEY_CLASSES_ROOT\CLSID\{39AE2AEA-D4D5-4DA0-AE47-C020E1BE4BE5}\InprocServer32]
    @=hex(2):25,00,50,00,72,00,6f,00,67,00,72,00,61,00,6d,00,46,00,69,00,6c,00,65,\
      00,73,00,25,00,5c,00,57,00,69,00,6e,00,64,00,6f,00,77,00,73,00,20,00,4d,00,\
      61,00,69,00,6c,00,5c,00,6d,00,73,00,6f,00,65,00,2e,00,64,00,6c,00,6c,00,00,\
      00
    "ThreadingModel"="Both"
     
    ; WinMail Cur User -------------------------------------------------------------
    [HKEY_CURRENT_USER\Software\Microsoft\Windows Mail Setup]
    "DelayStartTime"=hex:fa,71,45,36,d1,cd,cf,01
    "DelayInitialized"=dword:00000004
     

    Он восстанавливает регистрацию класса WinMail и инициализирует пару настроек текущего пользователя. Без первого программа просто не запустится; без второго - запустится, но перед этим обнаружит "сломанное хранилище" и якобы починит его. Оба же вместе заставят почтовик стартовать гладко.

Теперь Windows Mail должен стабильно запускаться и корректно работать.

Надеюсь, методика, как и ранее, дополнится результатами вашего тестирования. Пишите, пожалуйста, в комментариях.

UPD: Вторая серия: Внедрение Windows Mail в Windows 10 версии 1709. MAPI восстановлен!.

Комментарии  

Дмитрий77
0 # Дмитрий77 14.05.2018 08:21
Предположительно, те же действия что в 1709.
У меня как раз тест-система счас качает 1803.
Обновлю, скажу.
Но судя по посту dadreamer все должно быть OK.
Дмитрий77
0 # Дмитрий77 14.05.2018 12:03
Да вроде без проблем.
Процедура восстановления та же что и на 1709 (хотя я не уверен что она у Ogri полностью корректна с учетом крайних комментариев). Оно кажется еще нагло удаляет настройки в Current User, но БД вроде не трогает.
dadreamer
-1 # dadreamer 14.05.2018 13:17
Вроде бы, пока он не поправил свои. Да, кое каких параметров не хватает. Чтобы не заниматься анализом, я бы взял reg-файлы endeavor, да совместил с архивом ogri. Можно, конечно, покопаться, но уж слишком этих ключей много. А так, всё работает, мелкие баги есть, но не мешают, в общем-то. Может, займусь этим через какое-то время.
Ogri
+1 # Ogri 14.05.2018 14:03
Закрутился малехо, отстал. Прочитал всю крайнюю переписку, буду вносить изменения и добавления.
Дмитрий77
0 # Дмитрий77 16.05.2018 12:54
На 1803 мелкий глюк обнаружил.
Вставка -> Гиперссылка
либо
-> Свойства
текстовое поле URL неправильных размеров
на 1709 такого не было, хотя оно и раньше по ширине иногда "скакало" с перекрытием кнопок.
dadreamer
-1 # dadreamer 16.06.2018 07:48
Не могу ничего сказать о размерах этого поля, т.к. практически не приходилось пользоваться. У меня на 1803 вот так сейчас выглядит:
Дмитрий77
+1 # Дмитрий77 16.06.2018 11:00
Цитирую dadreamer:
У меня на 1803 вот так сейчас выглядит:

Да, я про него. Нижнее поле должно быть почти до конца рамки. Я как раз часто пользуюсь, это один из способов скопировать e-mail из текста письма. И целиться чтоб скопировать адрес без приставки mailto: стало оч. некомфортно.
Но это баг не в WinMail. Воспроизводится еще так: запускаем "Факсы и сканирование", кликаем "Создать факс", в теле факса печатаем "Факс для типа", когда выделится, из его меню выбираем "Свойства", вылезет то же самое окно "Гиперссылка" с кастрированным на 1803 нижним полем.
Предположительно в какой-то системной dll (не чисто WinMail-овской) сидит ресурс с этим диалоговым окном, где либо ширина (текст)бокса жестко задана, либо перестал работать код, кот. эту ширину устанавливает. Скорее всего на 1803 отображается "дефолт", дефолт можно как минимум поменять (если это действительно ресурс). Методом тыка через Resource Hacker я пока не нашел где зарыта собака.
Я согласен что это ерунда, но как отметил выше, меня это задело, т.к. e-mail-ы клиентов я копирую часто, даже когда просто пересылаешь письмо.
В Fax and Scan эта "фича" как бы вообще лишнее, но как бы баг в действующей "официально живой" программе.
dadreamer
0 # dadreamer 16.06.2018 18:41
WinSpy говорит, что это окошко имеет класс Internet Explorer_TridentDlgFrame. Может, ieframe.dll? Имеет смысл прошерстить IE и его либы.
Дмитрий77
0 # Дмитрий77 16.06.2018 20:29
Потыкался, вроде ничего не нашел. Но если это не диалог в ресурсах, концы очень тяжело найти.
Здесь еще момент. IE сам он как бы современно выглядит. А окошко ну очень древнее, оно на стиль Висты даже не тянет, суди по размеру контролов и шрифты там не Segoe UI 9. В Win2003 счас глянул, те же шрифты и внешний вид. Возьмем напр. chm-справку, там тоже к примеру "IE", но только очень древней версии. IE IE рознь, это где угодно в системе может быть закопано.
dadreamer
0 # dadreamer 23.06.2018 03:15
Цитирую Дмитрий77:
Но если это не диалог в ресурсах, концы очень тяжело найти.

Так и есть. Дня 4 наверно разбирался, как это работает. Если очень коротко, то этот редактор, который при создании письма открывается, это ActiveX контрол Windows Mail (или Outlook Express на XP) Mime Editor, причём он там как-то по-хитрому встраивается (в собственных прогах я не смог его встроить) и сам в процессе много чего создаёт. Либа, отвечающая за контрол - inetcomm.dll. Редактор до кучи ещё и веб-браузер. При встраивании ссылки вызывается функция ShowHTMLDialog (showModalDialog) из mshtml.dll, отображающая диалог с HTML-контентом (через URL или через путь к htm(l)-файлу). Дальше уже вызывается COM-сервер WebBrowser'а и отображает страничку в привычном виде внутри диалога. Я это попробовал в своей программе, в принципе механизм рабочий.
Конкретно WM подгружает диалог EdLink.dlg из mshtmler.dll, хотя сам диалог содержится в mshtmled.dll, а в первой только несколько жаба-скриптов :lol: Всё это дело легко извлекается с помощью ResourcesExtract или банально через 7-Zip. Я думаю, интересовать должна вот эта строчка:

Можно найти в обычном хекс-редакторе через поиск по юникоду. Заменить тоже можно, только сохранять обратно не даёт, нет доступа. Я изменил владельца файла на себя, заменил файл в system32, открыл снова в WinHex, снова стало 35 вместо нового. Видимо, в целях безопасности меняет файл на оригинал. Дальше не стал копаться, надоело уже. Уверен, дойдёте дальше до конца с помощью этой инфы. ;-) Расскажаете потом, как перманентно поменять ширину поля, попробую.
Дмитрий77
0 # Дмитрий77 16.05.2018 13:01
Цитата:
To invoke the old "Set your default programs" interface in 1709: control /name Microsoft.DefaultPrograms /page pageDefaultProgram To invoke the old "Associate a file type or protocol with a program" interface in 1709: control /name Microsoft.DefaultPrograms /page pageFileAssoc
Выпилили в 1803, запускается модерн (через задницу). Но это как раз следовало ожидать.
dadreamer
+1 # dadreamer 16.06.2018 07:50
Есть такое, к сожалению. Ну ладно, починили MAPI, теперь эти старые панели не нужны, по большому счёту.

Оставлять комментарии могут только зарегистрированные пользователи.

Работая с этим сайтом, вы даете свое согласие на использование файлов cookie, необходимых для сохранения выбранных вами настроек, а также для нормального функционирования сервисов Google.