Google, куда ты дел моё место в GMail? А вы точно знаете, как в GMail работают ярлыки? Как восстановить удаленные (или архивные) сообщения электронной почты в Gmail

После недавней аварии в моей школе, когда из-за повреждения рейда на сервере пропало много важной информации, я серьезно задумался, насколько безопасно мое любимое место хранения — Gmail?
C одной стороны, храня важные документы в «облаке» онлайн, я обезопасил себя от дисковых сбоев, вирусов и пр. нечисти (я рассчитываю, что специалисты в Google достаточно квалифицированы, чтобы справляться с этими неприятностями).
С другой — никто не застрахован от взлома почтового ящика, его элементарного «увода» путем смены пароля. И -страшно подумать — в случае взлома моего почтового ящика Gmail я могу потерять все, что нажито за последние несколько лет! В последнее время я часто получаю письма от коллег, сообщающих, что их ящик взломан. Конечно, в большинстве случаев взлом почтового ящика становится возможным исключительно благодаря невнимательности его владельца (обычно это делается путем фишинга — показа фальшивой страницы, похожей на настоящую, куда требуется ввести пароль), но где гарантия, что при тестировании сотен новых сервисов, которыми я занимаюсь каждый день, не найдется один, очень хорошо замаскированный воришка?

Чтобы обезопасить себя от такого развития ситуации, нужно делать бекап.

Кстати, у бекапа есть и еще один плюс, вовсе не очевидный. В бекапе сохраняются все письма, в том числе и удаленные мной из основного аккаунта. То есть, если я удалю случайно какое-то важное письмо, я всегда смогу найти его в своем бекапе.

Ну, и еще одно — если почта Gmail находится в дауне (такое, хоть и очень редко, но все же случается) — вы всегда сможете просмотреть свои письма и отправить новые.
Для создания бекапа есть два пути — создавать бекап на своем локальном компьютере или держать его онлайн.
Самый простой способ сохранить Gmail на своем компьютере — это настроить почтовый клиент — такой как Thunderbird или Microsoft Outlook.есть и более удобное решение — ю Это утилита, которая умеет не просто делать моментальный снимок почтового архива на дату бекапа, но и добавлять к нему новые письма по мере их поступления.
Мне, однако, очень не хотелось держать многогигабайтный архив на своем локальном диске. К тому же архив, скачанный очень неудобно потом читать — это именно архив, предназначенный для хранения, а не для работы с ним.

И вот какой способ я для себя обнаружил.

Почту Gmail поможет сохранить сам Gmail

Что вам мешает завести еще один аккаунт Gmail и копировать на него почту с основного?

Ничего. Нужно только включить доступ к вашему основному почтовому ящику по POP3 и настроить сбор почты через POP3 на резервном почтовом ящике

Создайте новую учетную запись Gmail и в меню Настройки -> Аккаунты и импорт -> Сбор почты с других аккаунтов -> Добавить учетную запись POP3 электронной почты, введите адрес электронной почты вашего основного аккаунта Gmail, резервную копию которого вы хотите создать.

В течение часа или около того, онлайновый будет «вытягивать» сообщения с вашего основного аккаунта Gmail и копировать их на новый «резервный» аккаунт.

Будьте осторожны при настройке этого способа. Не забудьте при сборе почты включить галочку «

Честно говоря, после двух безуспешных попыток я оставил надежду настроить этот способ бекапа Gmail? хотя, наверное, можно было поиграться с IMAP или иными серверами.

Но зачем, если

Почту Gmail поможет сохранить его злейший друг Microsoft.

Microsoft предлагает для своих пользователей бесплатную почту Windows Live Hotmail. По своему функционалу и объему, доступному для хранения почты Hotmail сравнима с Gmail. Но самое главное, создание бекапа в Hotmail проходит без сучка и без задоринки.

Хотя вы можете добавить сбор почты Gmail в аккаунт Hotmail, используя POP3 (точно такой же, как сборщик писем в Gmail), есть гораздо лучший и надежный вариант для копирования писем Gmail в Hotmail. Это сервс, который называется .

Просто сообщите этому сервису пароли от ваших обоих почтовых ящиков, и он немедленно начнет копирование.

Конечно, тот факт, что при этом нужно дать стороннему сервису свой пароль от самого святого, слегка напрягает. Успокаивает одно — передача данных идет по верифицированному защищенному соединению, а сам сервис представлен солидной компанией, имеющей офис в Нью Йорке.

При бекапе копируются все письма, включая вложения и метки, на стартовой странице пользователя специально успокаивают, что ни одно письмо из старого почтового ящика не пропадет. Это радует.

Мой трехгигабайтный архив копировался около суток. По окончании пришло письмо, что все готово. Мелочь, а приятно.


Все метки Gmail прекрасно импортировались и превратились в папки Hotmail. Не изменился даде статус писем — те, что были непрочитанными на Gmail, остались таковыми и на Hotmail’e.

Обращаю внимание на одну мелочь, которая очень важна. По умолчанию при импорте в анкете стоит налочка «Оповестить всех адресатов из адресно книги о новом почтовом ящике» (Tell your contacts about your Hotmail address).

Это нужно, если вы меняете адрес Gmail на Live.Hotmail. Если же вы собираетесь продолжать работать с Gmail, а Hotmail использовать только в качестве архива, галочку эту надо снять. Я вообще очень негативно отношусь к подобным автоматическим рассылкам по всей адресной книги. Нормальная реакция человека, который получает сгенерированное роботом автоматическое письмо, пусть даже и от знакомого адресата — отправить его в спам, не читая.

Предыдущая статья была посвящена удалению и восстановлению сообщений. Но что делать, если имеется письмо, например, с контактными данными отправителя, и эта информация может быть востребована в будущем? Оставлять сообщение во «Входящих» не имеет смысла или не хочется, но и удалить письмо нельзя. В этом случае удобно архивировать письма . Сообщения как бы убираются в «дальний ящик». В котором, при желании, вы всегда их можете найти, но при этом они перестают отображаться в папке «Входящие» не отвлекая ваше внимание.

Рассмотрим технические моменты этой процедуры.

Ручное архивирование сообщений

В архив можно помещать как отдельные сообщения, так и целые группы писем. Для этого необходимо:

  1. В папке «Входящие» отметить письма, которые вы желаете архивировать.
    Для одиночных сообщений установите флажок слева.
    Чтобы отобрать серию сообщений, объединённых общим признаком, воспользуйтесь фильтрами (о фильтрах читайте ) и нажмите кнопку «Выбрать».

Щелкните по кнопке «Архивировать».

Обработанные письма исчезнут из папки «Входящие», но к ним, по прежнему, можно получить доступ.

Автоматическое архивирование

Как найти архивированное сообщение?

Мы поместили письмо в архив. Прошел год, и тут нам срочно понадобилось посмотреть, что было в том самом сообщении. Что делать?

  1. Идем в раздел «Еще – Вся почта».
  2. Находим в списке нужное письмо. Для этого можно воспользоваться фильтром.
    Я предлагаю применить операторы расширенного поиска и вставить в строку поиска следующее выражение: «has:nouserlabels -label:inbox -label:trash -label:spam». Оно означает, что необходимо показать все сообщения без пользовательских меток, исключив письма из папок «Входящие», «Корзина», «Спам». Таким образом, мы увидим только те письма, которые находятся в архиве.
  3. Письма в архиве можно просматривать, удалять, помечать и т.д.

Как извлечь письмо из архива?

Работа с сообщениями в архиве ничем не отличается от работы с другими письмами. Но если вы решили восстановить архивированное письмо в папке «Входящие» в это нет ничего сложного. Достаточно выполнить несколько простых шагов:

  1. Зайти в раздел «Еще – Вся почта».
  2. Найти письмо как это описано выше. Отметить сообщение с помощью флажка слева.
  3. Нажать кнопку «Поместить во входящие».

  • MongoDB
  • Стал я замечать, что из 15 гигабайт бесплатного месте, предоставленного Google, у меня почта занимает уже почти 12 гигабайт. И такая тенденция меня не радует.
    С другой стороны я в качестве почтового клиента использую Thunderbird с полной синхронизацией. Т.е. все письма должны быть закачены. Так вот папка Thunderbird со всеми письмами и индексами занимает всего 3 гигабайта. Хотя по логике вещей размер должен не просто более менее совпадать с занятым местом на GMail, а быть побольше, т.к. Thunderbird не архивирует письма, а хранит как есть и еще индексы строит для ускорения поиска.
    Проблема на лицо! Начинаем докапываться до сути.

    Начал я того, что зашёл в ярлык (да, в случае с GMail правильно говорить именно ярлык, а не папка, подробности ) «Вся почта» и увидел, что у меня чуть больше 500 тысяч сообщений. Ситуация усложнялась тем, что у меня порядка 100 ярлыков! А ярлыки в GMail - это типичные папки в Thunderbird. Как быстро посчитать общее количество писем в Thunderbird я не нашел. Но забегая вперед скажу, что в нем у меня их порядка 200 тысяч. Отсюда становится понятно, почему на диске место занимается меньше.
    Но остается все равно все тот же вопрос: что это за такие 300 тысяч сообщений в GMail, которые не видны в Thunderbird, но занимают место на GMail?

    Пытливость ума + желание не поспать ночью + желание пощупать Go на реальной задаче привели меня к решению, что нужно взять компилятор Go, изучить GMail API и посмотреть, что же там под капотом у GMail.

    Совсем коротко о впечатлениях о Go

    Только самый ленивый не писал про обработку ошибок в Go. Только на них я и обратил внимание более пристально.
    В остальном:

    • Начал писать на следующий вечер
    • Еще один язык
    • Жизнь заставит - буду писать и на Go
    • Для меня и C/C++, Python, Java (и PHP тоже) - тоже себе языки для своих ниш
    • Наверное я просто всеядный
    Да и статья не про Go.

    Как я выше отметил, у меня порядка сотни ярлыков. Письма обычно имеют один ярлык. И мне захотелось выяснить, сколько писем у меня помечены каждым ярлыком и сколько они суммарно занимают места.
    Я не нашел способа узнать в web-интерфейсе GMail размеры ярлыков (объём писем, помеченных тем или иным ярлыком).
    Засучил рукава, установил компилятор Go, поднял в Docker контейнере MongoDB (Да, я такой вот извращенец! Но это мой pet project и что хочу, то и использую, особенно в учебных целях) и стал говнокодить творить.
    Дальше я буду ссылаться на вот этот мой проект .
    Забираю все свои метки с GMail и складываю их в базу Users.labels: list :
    GMailMessagesSize -importLabels -mongoConnectionString 10.211.55.5 Imported labels: 112
    Забираю ID всех сообщений, которые имеются в ящике Users.messages: list :
    GMailMessagesSize -mongoConnectionString 10.211.55.5 -importMessages Processed 100 messages Processed 200 messages Processed 300 messages ....... Processed 523100 messages Processed 523115 messages
    Забирается конечно не быстро, но как тут распараллелиться я не нашел (API не позволяет).
    Пока у нас есть только список ID сообщений, а нам нужно про каждое сообщение знать его ярлыки и размер. Для этого есть метод Users.messages: get . Но отрабатывает он не быстро, даже не смотря на то, что в запросе я указываю какие именно поля меня интересуют (internalDate, labelIds, sizeEstimate).
    Реализацию Batching Requests я что-то не нашел.
    Но я же пишу на Go и грех не использовать горутины! Сказано - сделано. Тянем информацию в количество потоков (сколько захотим, но я поставил ограничение в 50). Если интернет быстрый и комп не тупит, то начинаем быстро упираться в лимит рейта запросов от Google. Скрипт можно остановить и продолжить, а можно просто упорно ждать, т.к. при срабатывании лимита горутины спят по 5 секунд и потом продолжают мучить Google. Да, можно было бы каждый раз увеличивать время сна, например, в два раза и не забыть про ограничение сверху. Но в этом случае простые 5 секунд вполне себе решение.
    Я свои 500 тысяч писем обработал суммарно, кажется, примерно за 3 часа. В общем время вменяемое.
    GMailMessagesSize -mongoConnectionString 10.211.55.5 -processMessages -procNum 20 ............................Procecced 100 messages ............................Procecced 200 messages ............................Procecced 300 messages .... ............................Processed 523100 messages ............................Processed 523115 messages
    Там не только точки выскакивали. Если упереться в лимит, то вместо точки S (sleep) или может быть сообщение уже было удалено, то NF (NotFound).
    В результате всех перечисленных выше страданий в MongoDB имеется коллекция ярлыков и коллекция сообщений:
    { "SizeEstimate" : NumberLong(63422), "_id" : ObjectId("5677188d2afd90a80e5e06f2"), "id" : "136b83b1ff739dec", "internaldate" : ISODate("2012-04-15T22:47:51.000+0000"), "labelids" : [ "CATEGORY_PROMOTIONS" ], "processed" : true }
    Теперь под рукой есть все данные, чтобы начать их анализировать.
    Сначала я решил экспортировать в CSV информацию по ярлыкам, количеству сообщений и их суммарный размер.
    GMailMessagesSize -mongoConnectionString 10.211.55.5 -showSizes LabelId;Label name;Messages size;Messages count Label_11;Archives;21279;4 Label_12;Archives/2012;18684;3 CATEGORY_FORUMS;CATEGORY_FORUMS;519396295;30038 CATEGORY_PERSONAL;CATEGORY_PERSONAL;5040188875;268116 CATEGORY_PROMOTIONS;CATEGORY_PROMOTIONS;2990655727;36508 CATEGORY_SOCIAL;CATEGORY_SOCIAL;205976374;6553 CATEGORY_UPDATES;CATEGORY_UPDATES;2769764066;180729 CHAT;CHAT;0;0 DRAFT;DRAFT;82817;6 IMPORTANT;IMPORTANT;6600492209;159268 INBOX;INBOX;40306538;334 UNREAD;UNREAD;479586429;11678 ..... Label_97;INBOX/Coursera;6021524;151 Label_77;INBOX/Временная;1077571;28 Label_63;INBOX/Ответить!!!;6195999;12 Label_67;INBOX/Поездка в США;1693366;11
    Это CSV, который мне было удобно открыть в Excel и поизучать (посортировать и фильтровать).


    И вот на этом этапе я серьезно задумался. Что такое 6 гигов каких-то важных (с ярлыком IMPORTANT) сообщений? Что такое 11678 непрочитанных сообщений (с ярлыком UNREAD)? У меня (как я думал) все сообщения прочитаны! Даже если в строке поиска GMail ввести label:unread, то он выводит всего 106 непрочитанных сообщений! Что происходит?

    Гугление данной ситуации привело к форумам, где другие задавались вопросом - почему удаленные в Thunderbird сообщения не удаляются в GMail? Ну там много разных случаев. Я вам расскажу о самом, на мой взгляд, печальном.

    На этом месте те, кто пользуется GMail"ом исключительно в браузере могут пожалеть, что начали читать эту статью. НО!!! Вы возможно читаете почту в том числе с мобильного. И возможно у вас там не родной клиент GMail. В таком случае, возможно у вас такая же проблема, как и у меня!

    1. Приходит письмо в GMail
    2. Письму назначается ярлыки INBOX, UNREAD и (вот тут важно ) возможно еще какой-нибудь дополнительный ярлык, например CATEGORY_PROMOTIONS
    3. В почтовом клиенте вы открыли письмо. Ярлык UNREAD снялся.
    4. В почтовом клиенте вы удалили письмо
    5. Барабанная дробь: ярлык INBOX снялся. И… все, больше ничего
    6. У сообщения остался ярлык CATEGORY_PROMOTIONS
    Сообщения с ярлыком CATEGORY_PROMOTIONS отображаются, если в поиске набрать: category:promotions Часто вы так делаете?
    Если уж совсем коротко, то письма просто не удаляются! Я их удаляю, а они остаются на GMail.
    Тут самое время вспомнить про архивацию писем . И похоже, что это тот самый случай!
    Когда в Thunderbird удаление настроено через «Пометить на удаление», потом «Сжатие»:


    И то, что стоит галка помещать в корзину:


    То происходит ВСЕ РАВНО архивация !
    Итого: письма уходят в архив. А архив с точки зрения GMail - это письма, которые не имеют видимых ярлыков и не побывали в корзине.
    С одной стороны - ничего страшного. Зато письма всегда можно будет найти через поиск.
    А что если я не хочу так? Что мне теперь делать?
    Как найти и удалить все сообщения из архива? Вот неплохой ответ. Но я что-то не рискнул вот так вот удалять все и сразу.
    Кстати, в строке поиска я так и не нашел способа показать сообщения, которые имеют только один конкретный ярлык. Т.е. например, я решил удалить все сообщения, которые имеют ярлык CATEGORY_PROMOTIONS и никакой другой. Эти рекламные письма в архиве мне точно не нужны. Кстати, а сколько их там?
    GMailMessagesSize -mongoConnectionString 10.211.55.5 -showSizes -l CATEGORY_PROMOTIONS -onlyThisLabel LabelId;Label name;Messages size;Messages count CATEGORY_PROMOTIONS;CATEGORY_PROMOTIONS;1197364170;14618
    У меня их там на гигабайт накопилось.
    -onlyThisLabel важная опция, которая как раз и позволяет найти только те сообщения, которые имеют этот единственный ярлык.
    GMailMessagesSize -mongoConnectionString 10.211.55.5 -showSizes -l CATEGORY_PROMOTIONS -l IMPORTANT -onlyThisLabel LabelId;Label name;Messages size;Messages count CATEGORY_PROMOTIONS;CATEGORY_PROMOTIONS;1197364170;14618
    Да у меня еще на полтора гигабайта «важных рекламных» сообщений:) Обратите внимание, что это в дополнение к просто гигабайту неважной рекламы.
    Руки сразу зачесались все это удалить!
    GMailMessagesSize -mongoConnectionString 10.211.55.5 -deleteMessages -l CATEGORY_PROMOTIONS -l IMPORTANT -onlyThisLabel -procNum 10
    На самом деле письма не удаляются, а помещаются в корзину. Там они через 30 дней либо удалятся совсем, либо можно пойти и вручную почистить самому.

    ИТОГО: Если вы удаляете сообщения не через Web-интерфейс GMail, а через сторонний клиент (возможно мобильный), то есть вероятность, что сообщения у вас не удаляются, а архивируются. Для некоторых это даже хорошо. А у кого-то это приводит к тому, что ящик просто неприлично распухает.
    И дело даже не в 2 баксах в месяц. Можно и 100 гигов скушать и дальше больше. Хотелось именно разобраться в сути вопроса.

    ВНИМАНИЕ!!! Проект писался лично для себя. Это моя первая программа на Go. За сохранность ваших писем я не отвечаю! Но если не пользоваться опцией -deleteMessages, то ничего с вашим ящиком не случится.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите , пожалуйста.

    На днях передо мной встал такой вопрос: как сохранить письмо из электронной почты Gmail на компьютер? Я искал различные способы решения этой задачи, в итоге нашел один более-менее действенный. О нем и пойдет речь ниже.

    Почему же я озадачился этим вопросом? Просто его мне задал один сотрудник с моей работы. Формулировка была примерно такой: «Анатолий, вот я могу сохранить письмо из почты Outlook на свой компьютер. Как мне сделать то же самое с письмом в Gmail?».

    И я начал искать ответ. Насколько я понял, раньше в Gmail можно было сохранить письмо в формате Microsoft Word, но сейчас я такой функции не нашел. Включалась она в настройках почты на вкладке «Лаборатория», и письма сохранялись следующим образом:

    Второй способ сохранить письмо из почты Gmail на компьютер еще проще. Чтобы сохранить письмо, мы открываем его и ищем кнопку с треугольником, указывающим вершиной вниз (кнопка располагается сверху справа рядом со стрелкой), и вы выпадающем меню выбираем кнопку «Печать».

    Откроется привычное окно печати, видим слева надпись «Принтер» и нажимаем кнопку «Изменить» под ней. Нам нужно выбрать пункт «Сохранить как PDF». После этого нажимаем кнопку «Сохранить» и выбираем папку на нашем компьютере, куда сохранится этот файл. Мы получим обычный PDF-файл с текстом из нашего письма.



    Просмотров