Без электронной почты в наше время обойтись сложно. Практически любое действие в сети, будь то регистрация на развлекательном портале, совершение покупок или обмен деловой информацией, не обходится без использования электронного почтового ящика. Почта служит не только средством коммуникации пользователя или идентификации его в той или иной системе, но также и своеобразным хранилищем, благодаря которому вы всегда можете вспомнить, чем завершилась ваша последняя беседа с партнером или знакомым, «поднять» необходимую информацию по сделкам или получить доступ к любому ранее пересылаемому файлу с любого доступного вам устройства. Поэтому потеря даже небольшой части данных, хранящихся в почтовом ящике, может стать серьёзной проблемой. А это, к сожалению, может произойти, и причины могут быть самые разнообразные, от неудачного обновления или апгрейда системы или сбоев в работе почтового клиента до случайного или необдуманного удаления почты самим пользователем.
В последнем случае всё может оказаться не так уж и трагично, и проблему удастся решить несколькими простыми действиями. По умолчанию, при добавлении новой учётной записи почты в Mail она настраивается таким образом, что удаленные сообщения сначала перемещаются в ящик «Корзина» и ещё месяц хранятся на сервере. Таким образом, если вы заметили пропажу недавно и уверены, что месяца с момента удаления того или иного письма не прошло, есть шанс, что при входе на веб-интерфейс вашего почтового ящика вы сможете его найти в папке «Корзина». В этом случае вам достаточно просто переместить нужные вам письма в папку «Входящие» и при следующей синхронизации с сервером они появятся в почтовых клиентах на ваших устройствах.
Если же вы меняли настройки почты, или письма пропали по другой причине (например, после апгрейда системы), вы всё ещё можете их восстановить, если у вас есть резервная копия Time Machine (а мы очень надеемся, что она есть). В этом случае у вас есть несколько вариантов.
Вы можете запустить Mail и открыть Time Machine. Это можно сделать, кликнув по соответствующей иконке на панели меню и выбрав пункт «Войти в Time Machine»(если значок в панели меню не отображается, в можете его добавить, перейдя в меню Системные настройки → Time Machine и поставив галочку напротив пункта «Показывать Time Machine в строке меню»). После этого, в интерфейсе Time Machine вы можете «отмотать» Mail до состояния, когда потерянные письма ещё отображаются, выбрать их и нажать кнопку «Восстановить». Однако, этот способ приемлем, если писем немного, в противном случае он может оказаться не слишком удобным.
Вы также можете полностью откатить систему на дату, когда вся почта была на месте, загрузив Mac в режиме восстановления (зажав клавиши ⌘Command + R при включении) и выбрав пункт «Восстановить из резервной копии Time Machine». Но этот вариант тоже удобным назвать сложно. Восстановление займет внушительное количество времени, а в результате вы можете потерять данные, которые были сохранены после создания выбранной вами резервной копии.
Последний же вариант, который может оказаться самым эффективным, — восстановить папку с почтой из резервной копии при помощи Finder вручную.
Mail хранит все данные в папке Macintosh HD → <Имя пользователя> → Библиотека (она же Library) → Mail. Вы можете попробовать перейти в папку «Libray» в Finder (для этого, открыв меню «Перейти», зажмите клавишу ⌥Alt/Option и выберите появившийся пункт «Библиотека»), и затем, открыв Time Machine, восстановить папку «Mail». Однако, несмотря на то, что папка будет видна в интерфейсе Time Machine, вероятнее всего, кнопка «Восстановить» для неё будет неактивна.
Чтобы обойти это ограничение, вы можете восстановить папку вручную, вместе с файлом настроек Mail.
- Завершите работу Mail.
- Откройте в Finder диск, который вы используете для резервного копирования.
- Перейдите в папку с резервной копией вашей папки «Библиотеки». Найти её вы сможете перейдя по следующему пути: Backups.backupdb → <Имя компьютера> → Latest → Macintosh HD → Users → <Имя пользователя> → Library
В данном случае мы выбрали папку «Latest», в которой хранится самая последняя резервная копия системы. Вы же можете вместо неё выбрать папку с нужной вам датой. Дальнейший путь останется неизменным
- Выберите папку «Mail» и нажмите сочетание ⌘Command + C чтобы скопировать её.
- Перейдите в папку «Библиотека» на вашем компьютере (для этого, открыв меню «Перейти», зажмите клавишу ⌥Alt/Option и выберите появившийся пункт «Библиотека») и переименуйте уже существующую папку «Mail» в «Mail-old».
- Нажмите сочетание клавиш ⇧Shift + ⌥Alt/Option + ⌘Command +V, чтобы вставить скопированную вами из резервной копии папку «как есть», с сохранением всех настроек прав доступа. При необходимости введите имя и пароль от учётной записи с правами администратора.
Скопированная папка должна содержать в себе все ваши письма письма, но, к сожалению, это ещё не конец. Если вы попытаетесь запустить Mail, то, вероятнее всего, увидите сообщение об ошибке, в котором говорится, что клиент Mail не может быть запущен, так как у него нет прав доступа к папке, в которой он хранит данные.
Это происходит из-за того, что Time Machine прикрепляет к файлам специальные настройки прав доступа, которые называются ACL (access control lists), чтобы предотвратить их изменение на диске с резервной копией, запретив доступ группе everyone, о роли которой мы упоминали в предыдущей статье. Когда мы скопировали папку из резервной копии, мы также скопировали и её ACL, который имеет примерно следующее содержание:
1 2 |
0: group:everyone deny write,delete,append,writeattr,writeextattr,chown 0: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr,writeextattr,chown |
Несколько сбивает с толку тот факт, что если вы выделите папку Mail и нажмете сочетание клавиш ⌘Command + I, чтобы посмотреть информацию о ней, то увидите, что в разделе «Общий доступ и права доступа», вам даны права на чтение и запись. Это объясняется тем, что Finder видит только старые, более простые настройки доступа, а ACL ему недоступны. Чтобы Mail получил доступ к своей папке, нам необходимо избавиться от ACL для неё и всех содержащихся в ней файлов. Для этого запустите Терминал из папки «Утилиты» и введите команду chmod -R -N ~/Library/Mail
После этого нам осталось только восстановить файл настроек Mail, который содержит информацию об учётных записях почты и соответствующих им ящиках. Это необходимо для того, чтобы почтовый клиент нашёл все письма и ящики и ничего не пропустил. Например, если потеря данных связана с удалением каких-либо папок (или учётной записи целиком), то ваш текущий файл настроек не будет иметь данных о них, и, соответственно, они не отобразятся. Старый же файл укажет почтовому клиенту, что эти папки существуют.
- Снова откройте директорию с нужной вам резервной копией и перейдите в ней в папку Containers → com.apple.mail → Data → Library → Preferences
- Найдите файл «com.apple.mail.plist» и скопируйте его сочетанием клавиш ⌘Command + C
- Ещё раз перейдите в Библиотеку на вашем компьютере и найдите в ней папку Containers → com.apple.mail → Data → Library → Preferences
- Нажмите сочетание клавиш ⌘Command + V, чтобы вставить скопированный вами файл и нажмите кнопку «Заменить» в окне с предупреждением.
После этого вы можете запустить клиент Mail, который, руководствуясь старым файлом настроек, отобразит всю почту, включая утерянные письма. После первой синхронизации клиент получит недостающие новые письма, а в веб-интерфейсе отобразятся старые. После того как вы проверите и убедитесь, что всё находится на своих местах, папку, которую мы переименовали в «Mail-old» можно будет удалить.
Огромное спасибо Кристоферу Кесслеру за оригинальный материал, послуживший основой для написания данной статьи.